From 1d18db3439d6bc54f4407baa09f5d2c4fbd89349 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Aug 2021 15:49:57 -0500 Subject: [PATCH] AccountTimeline: column settings UI --- .../features/account_timeline/index.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/app/soapbox/features/account_timeline/index.js b/app/soapbox/features/account_timeline/index.js index c3ce2f645..d84d3b703 100644 --- a/app/soapbox/features/account_timeline/index.js +++ b/app/soapbox/features/account_timeline/index.js @@ -4,9 +4,11 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import { fetchAccount, fetchAccountByUsername } from '../../actions/accounts'; import { expandAccountFeaturedTimeline, expandAccountTimeline } from '../../actions/timelines'; +import Icon from 'soapbox/components/icon'; import StatusList from '../../components/status_list'; import LoadingIndicator from '../../components/loading_indicator'; import Column from '../ui/components/column'; +import ColumnSettingsContainer from './containers/column_settings_container'; import { OrderedSet as ImmutableOrderedSet } from 'immutable'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { FormattedMessage } from 'react-intl'; @@ -16,6 +18,7 @@ import { NavLink } from 'react-router-dom'; import { fetchPatronAccount } from '../../actions/patron'; import { getSoapboxConfig } from 'soapbox/actions/soapbox'; import { makeGetStatusIds } from 'soapbox/selectors'; +import classNames from 'classnames'; const makeMapStateToProps = () => { const getStatusIds = makeGetStatusIds(); @@ -77,6 +80,11 @@ class AccountTimeline extends ImmutablePureComponent { unavailable: PropTypes.bool, }; + state = { + collapsed: true, + animating: false, + } + componentDidMount() { const { params: { username }, accountId, accountApId, withReplies, me, patronEnabled } = this.props; @@ -122,8 +130,18 @@ class AccountTimeline extends ImmutablePureComponent { } } + handleToggleClick = (e) => { + e.stopPropagation(); + this.setState({ collapsed: !this.state.collapsed, animating: true }); + } + + handleTransitionEnd = () => { + this.setState({ animating: false }); + } + render() { const { statusIds, featuredStatusIds, isLoading, hasMore, isAccount, accountId, unavailable, accountUsername } = this.props; + const { collapsed, animating } = this.state; if (!isAccount && accountId !== -1) { return ( @@ -163,6 +181,16 @@ class AccountTimeline extends ImmutablePureComponent { +
+ +
+ +
+
+ +