]>
cat aescling's git repositories - mastodon.git/blob - app/javascript/flavours/glitch/features/list_adder/index.js
1 import React
from 'react';
2 import PropTypes
from 'prop-types';
3 import ImmutablePropTypes
from 'react-immutable-proptypes';
4 import { connect
} from 'react-redux';
5 import ImmutablePureComponent
from 'react-immutable-pure-component';
6 import { injectIntl
} from 'react-intl';
7 import { setupListAdder
, resetListAdder
} from '../../actions/lists';
8 import { createSelector
} from 'reselect';
9 import List
from './components/list';
10 import Account
from './components/account';
11 import NewListForm
from '../lists/components/new_list_form';
14 const getOrderedLists
= createSelector([state
=> state
.get('lists')], lists
=> {
19 return lists
.toList().filter(item
=> !!item
).sort((a
, b
) => a
.get('title').localeCompare(b
.get('title')));
22 const mapStateToProps
= state
=> ({
23 listIds: getOrderedLists(state
).map(list
=>list
.get('id')),
26 const mapDispatchToProps
= dispatch
=> ({
27 onInitialize: accountId
=> dispatch(setupListAdder(accountId
)),
28 onReset: () => dispatch(resetListAdder()),
31 export default @connect(mapStateToProps
, mapDispatchToProps
)
33 class ListAdder
extends ImmutablePureComponent
{
36 accountId: PropTypes
.string
.isRequired
,
37 onClose: PropTypes
.func
.isRequired
,
38 intl: PropTypes
.object
.isRequired
,
39 onInitialize: PropTypes
.func
.isRequired
,
40 onReset: PropTypes
.func
.isRequired
,
41 listIds: ImmutablePropTypes
.list
.isRequired
,
44 componentDidMount () {
45 const { onInitialize
, accountId
} = this.props
;
46 onInitialize(accountId
);
49 componentWillUnmount () {
50 const { onReset
} = this.props
;
55 const { accountId
, listIds
} = this.props
;
58 <div className
='modal-root__modal list-adder'>
59 <div className
='list-adder__account'>
60 <Account accountId
={accountId
} />
66 <div className
='list-adder__lists'>
67 {listIds
.map(ListId
=> <List key
={ListId
} listId
={ListId
} />)}
This page took 0.104089 seconds and 4 git commands to generate.