1 line
8 KiB
Plaintext
1 line
8 KiB
Plaintext
{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/lists/components/new_list_form.js","webpack:///./app/javascript/mastodon/features/lists/index.js"],"names":["messages","Object","index_es","label","id","defaultMessage","title","new_list_form_NewListForm","es","state","value","getIn","disabled","dispatch","onChange","actions_lists","onSubmit","handleChange","e","_this","props","target","handleSubmit","preventDefault","handleClick","render","_props","this","intl","formatMessage","jsx_default","className","style","display","placeholder","icon_button","icon","onClick","react_default","a","PureComponent","lists_messages","heading","subheading","getOrderedLists","lib","get","lists","toList","filter","item","sort","b","localeCompare","lists_Lists","componentWillMount","shouldUpdateScroll","column","loading_indicator","emptyMessage","column_back_button_slim","column_subheading","text","scrollable_list","scrollKey","map","list","column_link","to","react_immutable_pure_component_es","propTypes","params","prop_types_default","object","isRequired","func","ImmutablePropTypes_default"],"mappings":"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","file":"features/lists.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { changeListEditorTitle, submitListEditor } from '../../../actions/lists';\nimport IconButton from '../../../components/icon_button';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nconst messages = defineMessages({\n label: { id: 'lists.new.title_placeholder', defaultMessage: 'New list title' },\n title: { id: 'lists.new.create', defaultMessage: 'Add list' },\n});\n\nconst mapStateToProps = state => ({\n value: state.getIn(['listEditor', 'title']),\n disabled: state.getIn(['listEditor', 'isSubmitting']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n onChange: value => dispatch(changeListEditorTitle(value)),\n onSubmit: () => dispatch(submitListEditor(true)),\n});\n\n@connect(mapStateToProps, mapDispatchToProps)\n@injectIntl\nexport default class NewListForm extends React.PureComponent {\n\n static propTypes = {\n value: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n };\n\n handleChange = e => {\n this.props.onChange(e.target.value);\n }\n\n handleSubmit = e => {\n e.preventDefault();\n this.props.onSubmit();\n }\n\n handleClick = () => {\n this.props.onSubmit();\n }\n\n render () {\n const { value, disabled, intl } = this.props;\n\n const label = intl.formatMessage(messages.label);\n const title = intl.formatMessage(messages.title);\n\n return (\n <form className='column-inline-form' onSubmit={this.handleSubmit}>\n <label>\n <span style={{ display: 'none' }}>{label}</span>\n\n <input\n className='setting-text'\n value={value}\n disabled={disabled}\n onChange={this.handleChange}\n placeholder={label}\n />\n </label>\n\n <IconButton\n disabled={disabled}\n icon='plus'\n title={title}\n onClick={this.handleClick}\n />\n </form>\n );\n }\n\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport LoadingIndicator from '../../components/loading_indicator';\nimport Column from '../ui/components/column';\nimport ColumnBackButtonSlim from '../../components/column_back_button_slim';\nimport { fetchLists } from '../../actions/lists';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport ColumnLink from '../ui/components/column_link';\nimport ColumnSubheading from '../ui/components/column_subheading';\nimport NewListForm from './components/new_list_form';\nimport { createSelector } from 'reselect';\nimport ScrollableList from '../../components/scrollable_list';\n\nconst messages = defineMessages({\n heading: { id: 'column.lists', defaultMessage: 'Lists' },\n subheading: { id: 'lists.subheading', defaultMessage: 'Your lists' },\n});\n\nconst getOrderedLists = createSelector([state => state.get('lists')], lists => {\n if (!lists) {\n return lists;\n }\n\n return lists.toList().filter(item => !!item).sort((a, b) => a.get('title').localeCompare(b.get('title')));\n});\n\nconst mapStateToProps = state => ({\n lists: getOrderedLists(state),\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class Lists extends ImmutablePureComponent {\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n lists: ImmutablePropTypes.list,\n intl: PropTypes.object.isRequired,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchLists());\n }\n\n render () {\n const { intl, shouldUpdateScroll, lists } = this.props;\n\n if (!lists) {\n return (\n <Column>\n <LoadingIndicator />\n </Column>\n );\n }\n\n const emptyMessage = <FormattedMessage id='empty_column.lists' defaultMessage=\"You don't have any lists yet. When you create one, it will show up here.\" />;\n\n return (\n <Column icon='list-ul' heading={intl.formatMessage(messages.heading)}>\n <ColumnBackButtonSlim />\n\n <NewListForm />\n\n <ColumnSubheading text={intl.formatMessage(messages.subheading)} />\n <ScrollableList\n scrollKey='lists'\n shouldUpdateScroll={shouldUpdateScroll}\n emptyMessage={emptyMessage}\n >\n {lists.map(list =>\n <ColumnLink key={list.get('id')} to={`/timelines/list/${list.get('id')}`} icon='list-ul' text={list.get('title')} />\n )}\n </ScrollableList>\n </Column>\n );\n }\n\n}\n"],"sourceRoot":""} |