Merge branch 'features/download-mastofe-build' into 'develop'
[akkoma] / priv / static / packs / flavours / glitch / async / list_timeline.js.map
index f305a5d6c24e19f56c6a8a48c955332153bfa26d..b5ddf2f3b2334a857743f0bdf4a1cb2f7d87a3c7 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///app/javascript/seagate/sources/git/hacktivis.me/git/mastofe/app/javascript/flavours/glitch/features/list_timeline/index.js"],"names":["messages","defineMessages","deleteMessage","id","defaultMessage","deleteConfirm","all_replies","no_replies","list_replies","ListTimeline","connect","state","props","list","getIn","params","hasUnread","injectIntl","_this$props","_this","columnId","dispatch","removeColumn","addColumn","context","router","history","push","dir","_this$props2","moveColumn","column","scrollTop","c","maxId","expandListTimeline","openModal","listId","_this$props3","intl","message","formatMessage","confirm","onConfirm","deleteList","_ref","target","_this$props4","updateList","undefined","value","componentDidMount","this","fetchList","disconnect","connectListStream","componentWillUnmount","render","_this2","_this$props5","multiColumn","pinned","title","get","replies_policy","Object","_babel_runtime_helpers_esm_jsx__WEBPACK_IMPORTED_MODULE_0__","flavours_glitch_components_column__WEBPACK_IMPORTED_MODULE_8__","className","flavours_glitch_components_loading_indicator__WEBPACK_IMPORTED_MODULE_17__","flavours_glitch_components_missing_indicator__WEBPACK_IMPORTED_MODULE_16__","react__WEBPACK_IMPORTED_MODULE_4___default","a","createElement","ref","setRef","label","flavours_glitch_components_column_header__WEBPACK_IMPORTED_MODULE_9__","icon","active","onPin","handlePin","onMove","handleMove","onClick","handleHeaderClick","tabIndex","handleEditClick","react_intl__WEBPACK_IMPORTED_MODULE_11__","handleDeleteClick","map","policy","join","type","checked","onChange","handleRepliesPolicyChange","htmlFor","flavours_glitch_features_ui_containers_status_list_container__WEBPACK_IMPORTED_MODULE_7__","trackScroll","scrollKey","timelineId","onLoadMore","handleLoadMore","emptyMessage","React","PureComponent","PropTypes","object"],"mappings":"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","file":"flavours/glitch/async/list_timeline.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';\nimport Column from 'flavours/glitch/components/column';\nimport ColumnHeader from 'flavours/glitch/components/column_header';\nimport { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport { connectListStream } from 'flavours/glitch/actions/streaming';\nimport { expandListTimeline } from 'flavours/glitch/actions/timelines';\nimport { fetchList, deleteList, updateList } from 'flavours/glitch/actions/lists';\nimport { openModal } from 'flavours/glitch/actions/modal';\nimport MissingIndicator from 'flavours/glitch/components/missing_indicator';\nimport LoadingIndicator from 'flavours/glitch/components/loading_indicator';\n\nconst messages = defineMessages({\n  deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' },\n  deleteConfirm: { id: 'confirmations.delete_list.confirm', defaultMessage: 'Delete' },\n  all_replies:   { id: 'lists.replies_policy.all_replies', defaultMessage: 'any followed user' },\n  no_replies:    { id: 'lists.replies_policy.no_replies', defaultMessage: 'no one' },\n  list_replies:  { id: 'lists.replies_policy.list_replies', defaultMessage: 'members of the list' },\n});\n\nconst mapStateToProps = (state, props) => ({\n  list: state.getIn(['lists', props.params.id]),\n  hasUnread: state.getIn(['timelines', `list:${props.params.id}`, 'unread']) > 0,\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class ListTimeline extends React.PureComponent {\n\n  static contextTypes = {\n    router: PropTypes.object,\n  };\n\n  static propTypes = {\n    params: PropTypes.object.isRequired,\n    dispatch: PropTypes.func.isRequired,\n    columnId: PropTypes.string,\n    hasUnread: PropTypes.bool,\n    multiColumn: PropTypes.bool,\n    list: PropTypes.oneOfType([ImmutablePropTypes.map, PropTypes.bool]),\n    intl: PropTypes.object.isRequired,\n  };\n\n  handlePin = () => {\n    const { columnId, dispatch } = this.props;\n\n    if (columnId) {\n      dispatch(removeColumn(columnId));\n    } else {\n      dispatch(addColumn('LIST', { id: this.props.params.id }));\n      this.context.router.history.push('/');\n    }\n  }\n\n  handleMove = (dir) => {\n    const { columnId, dispatch } = this.props;\n    dispatch(moveColumn(columnId, dir));\n  }\n\n  handleHeaderClick = () => {\n    this.column.scrollTop();\n  }\n\n  componentDidMount () {\n    const { dispatch } = this.props;\n    const { id } = this.props.params;\n\n    dispatch(fetchList(id));\n    dispatch(expandListTimeline(id));\n\n    this.disconnect = dispatch(connectListStream(id));\n  }\n\n  componentWillUnmount () {\n    if (this.disconnect) {\n      this.disconnect();\n      this.disconnect = null;\n    }\n  }\n\n  setRef = c => {\n    this.column = c;\n  }\n\n  handleLoadMore = maxId => {\n    const { id } = this.props.params;\n    this.props.dispatch(expandListTimeline(id, { maxId }));\n  }\n\n  handleEditClick = () => {\n    this.props.dispatch(openModal('LIST_EDITOR', { listId: this.props.params.id }));\n  }\n\n  handleDeleteClick = () => {\n    const { dispatch, columnId, intl } = this.props;\n    const { id } = this.props.params;\n\n    dispatch(openModal('CONFIRM', {\n      message: intl.formatMessage(messages.deleteMessage),\n      confirm: intl.formatMessage(messages.deleteConfirm),\n      onConfirm: () => {\n        dispatch(deleteList(id));\n\n        if (!!columnId) {\n          dispatch(removeColumn(columnId));\n        } else {\n          this.context.router.history.push('/lists');\n        }\n      },\n    }));\n  }\n\n  handleRepliesPolicyChange = ({ target }) => {\n    const { dispatch, list } = this.props;\n    const { id } = this.props.params;\n    this.props.dispatch(updateList(id, undefined, false, target.value));\n  }\n\n  render () {\n    const { hasUnread, columnId, multiColumn, list, intl } = this.props;\n    const { id } = this.props.params;\n    const pinned = !!columnId;\n    const title  = list ? list.get('title') : id;\n    const replies_policy = list ? list.get('replies_policy') : undefined;\n\n    if (typeof list === 'undefined') {\n      return (\n        <Column>\n          <div className='scrollable'>\n            <LoadingIndicator />\n          </div>\n        </Column>\n      );\n    } else if (list === false) {\n      return (\n        <Column>\n          <div className='scrollable'>\n            <MissingIndicator />\n          </div>\n        </Column>\n      );\n    }\n\n    return (\n      <Column ref={this.setRef} label={title}>\n        <ColumnHeader\n          icon='list-ul'\n          active={hasUnread}\n          title={title}\n          onPin={this.handlePin}\n          onMove={this.handleMove}\n          onClick={this.handleHeaderClick}\n          pinned={pinned}\n          multiColumn={multiColumn}\n        >\n          <div className='column-header__links'>\n            <button className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleEditClick}>\n              <i className='fa fa-pencil' /> <FormattedMessage id='lists.edit' defaultMessage='Edit list' />\n            </button>\n\n            <button className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleDeleteClick}>\n              <i className='fa fa-trash' /> <FormattedMessage id='lists.delete' defaultMessage='Delete list' />\n            </button>\n          </div>\n\n          { replies_policy !== undefined && (\n            <div>\n              <div className='column-settings__row'>\n                <fieldset>\n                  <legend><FormattedMessage id='lists.replies_policy.title' defaultMessage='Show replies to:' /></legend>\n                  { ['no_replies', 'list_replies', 'all_replies'].map(policy => (\n                    <div className='setting-radio'>\n                      <input className='setting-radio__input' id={['setting', 'radio', id, policy].join('-')} type='radio' value={policy} checked={replies_policy === policy} onChange={this.handleRepliesPolicyChange} />\n                      <label className='setting-radio__label' htmlFor={['setting', 'radio', id, policy].join('-')}>\n                        <FormattedMessage {...messages[policy]} />\n                      </label>\n                    </div>\n                  ))}\n                </fieldset>\n              </div>\n            </div>\n          )}\n\n          <hr />\n        </ColumnHeader>\n\n        <StatusListContainer\n          trackScroll={!pinned}\n          scrollKey={`list_timeline-${columnId}`}\n          timelineId={`list:${id}`}\n          onLoadMore={this.handleLoadMore}\n          emptyMessage={<FormattedMessage id='empty_column.list' defaultMessage='There is nothing in this list yet.' />}\n        />\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/list_timeline/index.js"],"names":["messages","defineMessages","deleteMessage","id","defaultMessage","deleteConfirm","all_replies","no_replies","list_replies","ListTimeline","connect","state","props","list","getIn","params","hasUnread","injectIntl","_this$props","_this","columnId","dispatch","removeColumn","addColumn","context","router","history","push","dir","_this$props2","moveColumn","column","scrollTop","c","maxId","expandListTimeline","openModal","listId","_this$props3","intl","message","formatMessage","confirm","onConfirm","deleteList","_ref","target","_this$props4","updateList","undefined","value","componentDidMount","this","fetchList","disconnect","connectListStream","componentWillUnmount","render","_this2","_this$props5","multiColumn","pinned","title","get","replies_policy","Object","_babel_runtime_helpers_esm_jsx__WEBPACK_IMPORTED_MODULE_0__","flavours_glitch_components_column__WEBPACK_IMPORTED_MODULE_8__","className","flavours_glitch_components_loading_indicator__WEBPACK_IMPORTED_MODULE_17__","flavours_glitch_components_missing_indicator__WEBPACK_IMPORTED_MODULE_16__","react__WEBPACK_IMPORTED_MODULE_4___default","a","createElement","ref","setRef","label","flavours_glitch_components_column_header__WEBPACK_IMPORTED_MODULE_9__","icon","active","onPin","handlePin","onMove","handleMove","onClick","handleHeaderClick","tabIndex","handleEditClick","react_intl__WEBPACK_IMPORTED_MODULE_11__","handleDeleteClick","map","policy","join","type","checked","onChange","handleRepliesPolicyChange","htmlFor","flavours_glitch_features_ui_containers_status_list_container__WEBPACK_IMPORTED_MODULE_7__","trackScroll","scrollKey","timelineId","onLoadMore","handleLoadMore","emptyMessage","React","PureComponent","PropTypes","object"],"mappings":"oTAgBMA,EAAWC,YAAe,CAC9BC,cAAa,CAAAC,GAAA,oCAAAC,eAAA,0DACbC,cAAa,CAAAF,GAAA,oCAAAC,eAAA,UACbE,YAAW,CAAAH,GAAA,mCAAAC,eAAA,qBACXG,WAAU,CAAAJ,GAAA,kCAAAC,eAAA,UACVI,aAAY,CAAAL,GAAA,oCAAAC,eAAA,yBAUOK,EAFpBC,kBALuB,SAACC,EAAOC,GAAR,MAAmB,CACzCC,KAAMF,EAAMG,MAAM,CAAC,QAASF,EAAMG,OAAOZ,KACzCa,UAA6E,EAAlEL,EAAMG,MAAM,CAAC,YAAD,QAAsBF,EAAMG,OAAOZ,GAAM,gBAIjEc,2MAiBa,WAAM,IAAAC,EACeC,EAAKP,MAA5BQ,EADQF,EACRE,SAAUC,EADFH,EACEG,SAEdD,EACFC,EAASC,YAAaF,KAEtBC,EAASE,YAAU,OAAQ,CAAEpB,GAAIgB,EAAKP,MAAMG,OAAOZ,MACnDgB,EAAKK,QAAQC,OAAOC,QAAQC,KAAK,gDAIxB,SAACC,GAAQ,IAAAC,EACWV,EAAKP,MAA5BQ,EADYS,EACZT,UACRC,EAFoBQ,EACFR,UACTS,YAAWV,EAAUQ,qDAGZ,WAClBT,EAAKY,OAAOC,kDAoBL,SAAAC,GACPd,EAAKY,OAASE,gDAGC,SAAAC,GAAS,IAChB/B,EAAOgB,EAAKP,MAAMG,OAAlBZ,GACRgB,EAAKP,MAAMS,SAASc,YAAmBhC,EAAI,CAAE+B,0DAG7B,WAChBf,EAAKP,MAAMS,SAASe,YAAU,cAAe,CAAEC,OAAQlB,EAAKP,MAAMG,OAAOZ,uDAGvD,WAAM,IAAAmC,EACanB,EAAKP,MAAlCS,EADgBiB,EAChBjB,SAAUD,EADMkB,EACNlB,SAAUmB,EADJD,EACIC,KACpBpC,EAAOgB,EAAKP,MAAMG,OAAlBZ,GAERkB,EAASe,YAAU,UAAW,CAC5BI,QAASD,EAAKE,cAAczC,EAASE,eACrCwC,QAASH,EAAKE,cAAczC,EAASK,eACrCsC,UAAW,WACTtB,EAASuB,YAAWzC,IAEdiB,EACJC,EAASC,YAAaF,IAEtBD,EAAKK,QAAQC,OAAOC,QAAQC,KAAK,uEAMb,SAAAkB,GAAgB,IAAbC,EAAaD,EAAbC,OAAaC,EACf5B,EAAKP,MACxBT,GAFkC4C,EAClC1B,SADkC0B,EACxBlC,KACHM,EAAKP,MAAMG,OAAlBZ,IACRgB,EAAKP,MAAMS,SAAS2B,YAAW7C,OAAI8C,GAAW,EAAOH,EAAOI,wDApD9DC,kBAAA,WAAqB,IACX9B,EAAa+B,KAAKxC,MAAlBS,SACAlB,EAAOiD,KAAKxC,MAAMG,OAAlBZ,GAERkB,EAASgC,YAAUlD,IACnBkB,EAASc,YAAmBhC,IAE5BiD,KAAKE,WAAajC,EAASkC,YAAkBpD,OAG/CqD,qBAAA,WACMJ,KAAKE,aACPF,KAAKE,aACLF,KAAKE,WAAa,SA0CtBG,OAAA,WAAU,IAAAC,EAAAN,KAAAO,EACiDP,KAAKxC,MAAtDI,EADA2C,EACA3C,UAAWI,EADXuC,EACWvC,SAAUwC,EADrBD,EACqBC,YAAa/C,EADlC8C,EACkC9C,KAClCV,GAFAwD,EACwCpB,KACjCa,KAAKxC,MAAMG,OAAlBZ,IACF0D,IAAWzC,EACX0C,EAASjD,EAAOA,EAAKkD,IAAI,SAAW5D,EACpC6D,EAAiBnD,EAAOA,EAAKkD,IAAI,uBAAoBd,EAE3D,YAAoB,IAATpC,EAEPoD,OAAAC,EAAA,EAAAD,CAACE,EAAA,EAAD,UACEF,OAAAC,EAAA,EAAAD,CAAA,OAAKG,UAAU,mBAAf,EACEH,OAAAC,EAAA,EAAAD,CAACI,EAAA,EAAD,OAIY,IAATxD,EAEPoD,OAAAC,EAAA,EAAAD,CAACE,EAAA,EAAD,UACEF,OAAAC,EAAA,EAAAD,CAAA,OAAKG,UAAU,mBAAf,EACEH,OAAAC,EAAA,EAAAD,CAACK,EAAA,EAAD,MAONC,EAAAC,EAAAC,cAACN,EAAA,EAAD,CAAQO,IAAKtB,KAAKuB,OAAQC,MAAOd,GAC/BG,OAAAC,EAAA,EAAAD,CAACY,EAAA,EAAD,CACEC,KAAK,UACLC,OAAQ/D,EACR8C,MAAOA,EACPkB,MAAO5B,KAAK6B,UACZC,OAAQ9B,KAAK+B,WACbC,QAAShC,KAAKiC,kBACdxB,OAAQA,EACRD,YAAaA,QARf,EAUEK,OAAAC,EAAA,EAAAD,CAAA,OAAKG,UAAU,6BAAf,EACEH,OAAAC,EAAA,EAAAD,CAAA,UAAQG,UAAU,sCAAsCkB,SAAS,IAAIF,QAAShC,KAAKmC,sBAAnF,EACEtB,OAAAC,EAAA,EAAAD,CAAA,KAAGG,UAAU,iBADf,IACiCH,OAAAC,EAAA,EAAAD,CAACuB,EAAA,EAAD,CAAkBrF,GAAG,aAAaC,eAAe,eAGlF6D,OAAAC,EAAA,EAAAD,CAAA,UAAQG,UAAU,sCAAsCkB,SAAS,IAAIF,QAAShC,KAAKqC,wBAAnF,EACExB,OAAAC,EAAA,EAAAD,CAAA,KAAGG,UAAU,gBADf,IACgCH,OAAAC,EAAA,EAAAD,CAACuB,EAAA,EAAD,CAAkBrF,GAAG,eAAeC,eAAe,uBAIhE6C,IAAnBe,GACAC,OAAAC,EAAA,EAAAD,CAAA,gBACEA,OAAAC,EAAA,EAAAD,CAAA,OAAKG,UAAU,6BAAf,EACEH,OAAAC,EAAA,EAAAD,CAAA,qBACEA,OAAAC,EAAA,EAAAD,CAAA,mBAAQA,OAAAC,EAAA,EAAAD,CAACuB,EAAA,EAAD,CAAkBrF,GAAG,6BAA6BC,eAAe,sBACvE,CAAC,aAAc,eAAgB,eAAesF,IAAI,SAAAC,GAAM,OACxD1B,OAAAC,EAAA,EAAAD,CAAA,OAAKG,UAAU,sBAAf,EACEH,OAAAC,EAAA,EAAAD,CAAA,SAAOG,UAAU,uBAAuBjE,GAAI,CAAC,UAAW,QAASA,EAAIwF,GAAQC,KAAK,KAAMC,KAAK,QAAQ3C,MAAOyC,EAAQG,QAAS9B,IAAmB2B,EAAQI,SAAUrC,EAAKsC,4BACvK/B,OAAAC,EAAA,EAAAD,CAAA,SAAOG,UAAU,uBAAuB6B,QAAS,CAAC,UAAW,QAAS9F,EAAIwF,GAAQC,KAAK,WAAvF,EACErB,EAAAC,EAAAC,cAACe,EAAA,EAAqBxF,EAAS2F,WAS7C1B,OAAAC,EAAA,EAAAD,CAAA,UAGFA,OAAAC,EAAA,EAAAD,CAACiC,EAAA,EAAD,CACEC,aAActC,EACduC,UAAS,iBAAmBhF,EAC5BiF,WAAU,QAAUlG,EACpBmG,WAAYlD,KAAKmD,eACjBC,aAAcvC,OAAAC,EAAA,EAAAD,CAACuB,EAAA,EAAD,CAAkBrF,GAAG,oBAAoBC,eAAe,8CApKtCqG,IAAMC,4CAExB,CACpBjF,OAAQkF,IAAUC","file":"flavours/glitch/async/list_timeline.js","sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';\nimport Column from 'flavours/glitch/components/column';\nimport ColumnHeader from 'flavours/glitch/components/column_header';\nimport { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport { connectListStream } from 'flavours/glitch/actions/streaming';\nimport { expandListTimeline } from 'flavours/glitch/actions/timelines';\nimport { fetchList, deleteList, updateList } from 'flavours/glitch/actions/lists';\nimport { openModal } from 'flavours/glitch/actions/modal';\nimport MissingIndicator from 'flavours/glitch/components/missing_indicator';\nimport LoadingIndicator from 'flavours/glitch/components/loading_indicator';\n\nconst messages = defineMessages({\n  deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' },\n  deleteConfirm: { id: 'confirmations.delete_list.confirm', defaultMessage: 'Delete' },\n  all_replies:   { id: 'lists.replies_policy.all_replies', defaultMessage: 'any followed user' },\n  no_replies:    { id: 'lists.replies_policy.no_replies', defaultMessage: 'no one' },\n  list_replies:  { id: 'lists.replies_policy.list_replies', defaultMessage: 'members of the list' },\n});\n\nconst mapStateToProps = (state, props) => ({\n  list: state.getIn(['lists', props.params.id]),\n  hasUnread: state.getIn(['timelines', `list:${props.params.id}`, 'unread']) > 0,\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class ListTimeline extends React.PureComponent {\n\n  static contextTypes = {\n    router: PropTypes.object,\n  };\n\n  static propTypes = {\n    params: PropTypes.object.isRequired,\n    dispatch: PropTypes.func.isRequired,\n    columnId: PropTypes.string,\n    hasUnread: PropTypes.bool,\n    multiColumn: PropTypes.bool,\n    list: PropTypes.oneOfType([ImmutablePropTypes.map, PropTypes.bool]),\n    intl: PropTypes.object.isRequired,\n  };\n\n  handlePin = () => {\n    const { columnId, dispatch } = this.props;\n\n    if (columnId) {\n      dispatch(removeColumn(columnId));\n    } else {\n      dispatch(addColumn('LIST', { id: this.props.params.id }));\n      this.context.router.history.push('/');\n    }\n  }\n\n  handleMove = (dir) => {\n    const { columnId, dispatch } = this.props;\n    dispatch(moveColumn(columnId, dir));\n  }\n\n  handleHeaderClick = () => {\n    this.column.scrollTop();\n  }\n\n  componentDidMount () {\n    const { dispatch } = this.props;\n    const { id } = this.props.params;\n\n    dispatch(fetchList(id));\n    dispatch(expandListTimeline(id));\n\n    this.disconnect = dispatch(connectListStream(id));\n  }\n\n  componentWillUnmount () {\n    if (this.disconnect) {\n      this.disconnect();\n      this.disconnect = null;\n    }\n  }\n\n  setRef = c => {\n    this.column = c;\n  }\n\n  handleLoadMore = maxId => {\n    const { id } = this.props.params;\n    this.props.dispatch(expandListTimeline(id, { maxId }));\n  }\n\n  handleEditClick = () => {\n    this.props.dispatch(openModal('LIST_EDITOR', { listId: this.props.params.id }));\n  }\n\n  handleDeleteClick = () => {\n    const { dispatch, columnId, intl } = this.props;\n    const { id } = this.props.params;\n\n    dispatch(openModal('CONFIRM', {\n      message: intl.formatMessage(messages.deleteMessage),\n      confirm: intl.formatMessage(messages.deleteConfirm),\n      onConfirm: () => {\n        dispatch(deleteList(id));\n\n        if (!!columnId) {\n          dispatch(removeColumn(columnId));\n        } else {\n          this.context.router.history.push('/lists');\n        }\n      },\n    }));\n  }\n\n  handleRepliesPolicyChange = ({ target }) => {\n    const { dispatch, list } = this.props;\n    const { id } = this.props.params;\n    this.props.dispatch(updateList(id, undefined, false, target.value));\n  }\n\n  render () {\n    const { hasUnread, columnId, multiColumn, list, intl } = this.props;\n    const { id } = this.props.params;\n    const pinned = !!columnId;\n    const title  = list ? list.get('title') : id;\n    const replies_policy = list ? list.get('replies_policy') : undefined;\n\n    if (typeof list === 'undefined') {\n      return (\n        <Column>\n          <div className='scrollable'>\n            <LoadingIndicator />\n          </div>\n        </Column>\n      );\n    } else if (list === false) {\n      return (\n        <Column>\n          <div className='scrollable'>\n            <MissingIndicator />\n          </div>\n        </Column>\n      );\n    }\n\n    return (\n      <Column ref={this.setRef} label={title}>\n        <ColumnHeader\n          icon='list-ul'\n          active={hasUnread}\n          title={title}\n          onPin={this.handlePin}\n          onMove={this.handleMove}\n          onClick={this.handleHeaderClick}\n          pinned={pinned}\n          multiColumn={multiColumn}\n        >\n          <div className='column-header__links'>\n            <button className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleEditClick}>\n              <i className='fa fa-pencil' /> <FormattedMessage id='lists.edit' defaultMessage='Edit list' />\n            </button>\n\n            <button className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleDeleteClick}>\n              <i className='fa fa-trash' /> <FormattedMessage id='lists.delete' defaultMessage='Delete list' />\n            </button>\n          </div>\n\n          { replies_policy !== undefined && (\n            <div>\n              <div className='column-settings__row'>\n                <fieldset>\n                  <legend><FormattedMessage id='lists.replies_policy.title' defaultMessage='Show replies to:' /></legend>\n                  { ['no_replies', 'list_replies', 'all_replies'].map(policy => (\n                    <div className='setting-radio'>\n                      <input className='setting-radio__input' id={['setting', 'radio', id, policy].join('-')} type='radio' value={policy} checked={replies_policy === policy} onChange={this.handleRepliesPolicyChange} />\n                      <label className='setting-radio__label' htmlFor={['setting', 'radio', id, policy].join('-')}>\n                        <FormattedMessage {...messages[policy]} />\n                      </label>\n                    </div>\n                  ))}\n                </fieldset>\n              </div>\n            </div>\n          )}\n\n          <hr />\n        </ColumnHeader>\n\n        <StatusListContainer\n          trackScroll={!pinned}\n          scrollKey={`list_timeline-${columnId}`}\n          timelineId={`list:${id}`}\n          onLoadMore={this.handleLoadMore}\n          emptyMessage={<FormattedMessage id='empty_column.list' defaultMessage='There is nothing in this list yet.' />}\n        />\n      </Column>\n    );\n  }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file