1 line
21 KiB
Plaintext
1 line
21 KiB
Plaintext
{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/drawer/header/index.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/util/numbers.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/components/hashtag.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/drawer/results/index.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/drawer/index.js"],"names":["messages","defineMessages","community","id","defaultMessage","home_timeline","logout","notifications","public","settings","start","DrawerHeader","_ref","columns","unreadNotifications","showNotificationsBadge","intl","onSettingsClick","renderForColumn","conditionalRender","bind","columnId","some","column","get","Object","jsx","className","Link","aria-label","formatMessage","title","to","icon","onClick","href","data-method","signOutLink","shortNumberFormat","number","index_es","value","react","maximumFractionDigits","Hashtag","hashtag","permalink","values","rawCount","getIn","count","build","width","height","data","reverse","map","day","toArray","style","fill","total","DrawerResults","results","visible","accounts","statuses","hashtags","reduce","size","item","optional_motion","defaultStyle","x","spring","stiffness","damping","_ref2","transform","visibility","react_default","a","createElement","esm_extends","accountId","account_container","statusId","status_container","components_hashtag","compose","Drawer","props","_React$Component","call","this","render","_this$props","account","multiColumn","onChange","onClear","onOpenSettings","onShow","onSubmit","searchHidden","searchValue","submitted","isSearchPage","computedClass","classNames","role","drawer_search","drawer_account","composer","mascot","alt","draggable","src","React","Component","wrap","state","me","dispatch","changeSearch","clearSearch","showSearch","submitSearch","e","preventDefault","stopPropagation","openModal"],"mappings":"iOAeMA,EAAWC,YAAe,CAC9BC,UAAS,CAAAC,GAAA,oCAAAC,eAAA,kBAITC,cAAa,CAAAF,GAAA,gBAAAC,eAAA,QAIbE,OAAM,CAAAH,GAAA,wBAAAC,eAAA,UAING,cAAa,CAAAJ,GAAA,yBAAAC,eAAA,iBAIbI,OAAM,CAAAL,GAAA,iCAAAC,eAAA,sBAINK,SAAQ,CAAAN,GAAA,8BAAAC,eAAA,gBAIRM,MAAK,CAAAP,GAAA,0BAAAC,eAAA,qBAOQ,SAASO,EAATC,GAMZ,IALDC,EAKCD,EALDC,QACAC,EAICF,EAJDE,oBACAC,EAGCH,EAHDG,uBACAC,EAECJ,EAFDI,KACAC,EACCL,EADDK,gBAIMC,EAAkBC,IAAkBC,KAAK,KAC7C,SAAAC,GAAQ,OAAKR,IAAYA,EAAQS,KAC/B,SAAAC,GAAM,OAAIA,EAAOC,IAAI,QAAUH,MAKnC,OACEI,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,uBAAf,EACEF,OAAAC,EAAA,EAAAD,CAACG,EAAA,EAAD,CACEC,aAAYb,EAAKc,cAAc9B,EAASU,OACxCqB,MAAOf,EAAKc,cAAc9B,EAASU,OACnCsB,GAAG,yBAHL,EAICP,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,cACXf,EAAgB,OACfO,OAAAC,EAAA,EAAAD,CAACG,EAAA,EAAD,CACEC,aAAYb,EAAKc,cAAc9B,EAASK,eACxC0B,MAAOf,EAAKc,cAAc9B,EAASK,eACnC2B,GAAG,wBAHL,EAICP,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,WAEbf,EAAgB,gBACfO,OAAAC,EAAA,EAAAD,CAACG,EAAA,EAAD,CACEC,aAAYb,EAAKc,cAAc9B,EAASO,eACxCwB,MAAOf,EAAKc,cAAc9B,EAASO,eACnCyB,GAAG,uBAHL,EAKEP,OAAAC,EAAA,EAAAD,CAAA,QAAME,UAAU,2BAAhB,EACEF,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,SACTlB,GAAgD,EAAtBD,GAA2BW,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,kBAI3ET,EAAgB,YACfO,OAAAC,EAAA,EAAAD,CAACG,EAAA,EAAD,CACEC,aAAYb,EAAKc,cAAc9B,EAASE,WACxC6B,MAAOf,EAAKc,cAAc9B,EAASE,WACnC8B,GAAG,gCAHL,EAICP,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,YAEbf,EAAgB,SACfO,OAAAC,EAAA,EAAAD,CAACG,EAAA,EAAD,CACEC,aAAYb,EAAKc,cAAc9B,EAASQ,QACxCuB,MAAOf,EAAKc,cAAc9B,EAASQ,QACnCwB,GAAG,0BAHL,EAICP,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,YAEdR,OAAAC,EAAA,EAAAD,CAAA,KACEI,aAAYb,EAAKc,cAAc9B,EAASS,UACxCyB,QAASjB,EACTkB,KAAK,IACLJ,MAAOf,EAAKc,cAAc9B,EAASS,gBAJrC,EAKCgB,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,UACZR,OAAAC,EAAA,EAAAD,CAAA,KACEI,aAAYb,EAAKc,cAAc9B,EAASM,QACxC8B,cAAY,SACZD,KAAOE,IACPN,MAAOf,EAAKc,cAAc9B,EAASM,cAJrC,EAKCmB,OAAAC,EAAA,EAAAD,CAACQ,EAAA,EAAD,CAAMA,KAAK,gFC/GLK,EAAoB,SAAAC,GAC/B,OAAIA,EAAS,IACJd,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAiBC,MAAOF,IAExBd,OAAAC,EAAA,EAAAD,CAACiB,EAAA,SAAD,UAAUjB,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAiBC,MAAOF,EAAS,IAAMI,sBAAuB,IAAxE,MC0BIC,EA1BC,SAAAhC,GAAA,IAAGiC,EAAHjC,EAAGiC,QAAH,OACdpB,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,qBAAf,EACEF,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,2BAAf,EACEF,OAAAC,EAAA,EAAAD,CAACqB,EAAA,EAAD,CAAWX,KAAMU,EAAQrB,IAAI,OAAQQ,GAAE,kBAAoBa,EAAQrB,IAAI,cAAvE,MACGC,OAAAC,EAAA,EAAAD,CAAA,iBAAOoB,EAAQrB,IAAI,UAGtBC,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAkBrC,GAAG,2BAA2BC,eAAe,kEAAkE2C,OAAQ,CAAEC,SAAUH,EAAQI,MAAM,CAAC,UAAW,EAAG,aAAcC,MAAOzB,OAAAC,EAAA,EAAAD,CAAA,mBAASa,EAAkBO,EAAQI,MAAM,CAAC,UAAW,EAAG,mBAGjQxB,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,8BAAf,EACGW,EAAkBO,EAAQI,MAAM,CAAC,UAAW,EAAG,WAGlDxB,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,gCAAf,EACEF,OAAAC,EAAA,EAAAD,CAAC0B,EAAA,WAAD,CAAYC,MAAO,GAAIC,OAAQ,GAAIC,KAAMT,EAAQrB,IAAI,YAAcqB,EAAQrB,IAAI,WAAW+B,UAAUC,IAAI,SAAAC,GAAG,OAAIA,EAAIjC,IAAI,UAASkC,gBAAhI,EACEjC,OAAAC,EAAA,EAAAD,CAAC0B,EAAA,gBAAD,CAAiBQ,MAAO,CAAEC,KAAM,uBCHlC5D,EAAWC,YAAe,CAC9B4D,MAAK,CAAA1D,GAAA,uBAAAC,eAAA,mEAOQ,SAAS0D,EAATlD,GAGZ,IAFDmD,EAECnD,EAFDmD,QACAC,EACCpD,EADDoD,QAEMC,EAAWF,EAAUA,EAAQvC,IAAI,YAAc,KAC/C0C,EAAWH,EAAUA,EAAQvC,IAAI,YAAc,KAC/C2C,EAAWJ,EAAUA,EAAQvC,IAAI,YAAc,KAG/C0B,EAAQ,CAACe,EAAUC,EAAUC,GAAUC,OAAO,SAAUC,EAAMC,GAClE,OAAIA,GAAQA,EAAKD,KACRA,EAAOC,EAAKD,KAEdA,GACN,GAGH,OACE5C,OAAAC,EAAA,EAAAD,CAAC8C,EAAA,EAAD,CACEC,aAAc,CAAEC,GAAI,KACpBd,MAAO,CACLc,EAAGC,IAAOV,EAAU,GAAK,IAAK,CAC5BW,UAAW,IACXC,QAAS,YALf,EASG,SAAAC,GAAA,IAAGJ,EAAHI,EAAGJ,EAAH,OACChD,OAAAC,EAAA,EAAAD,CAAA,OACEE,UAAU,kBACVgC,MAAO,CACLmB,UAAS,cAAgBL,EAAhB,KACTM,YAAmB,MAAPN,EAAa,SAAW,iBAJxC,EAOEhD,OAAAC,EAAA,EAAAD,CAAA,mBACEuD,EAAAC,EAAAC,cAAC1C,EAAA,EAADf,OAAA0D,EAAA,EAAA1D,CAAA,GACMzB,EAAS6D,MADf,CAEEd,OAAQ,CAAEG,aAGbe,GAAYA,EAASI,KACpB5C,OAAAC,EAAA,EAAAD,CAAA,oBACEA,OAAAC,EAAA,EAAAD,CAAA,eAAIA,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAkBrC,GAAG,0BAA0BC,eAAe,YAEjE6D,EAAST,IACR,SAAA4B,GAAS,OACP3D,OAAAC,EAAA,EAAAD,CAAC4D,EAAA,EAAD,CACElF,GAAIiF,GACCA,MAKX,KACHlB,GAAYA,EAASG,KACpB5C,OAAAC,EAAA,EAAAD,CAAA,oBACEA,OAAAC,EAAA,EAAAD,CAAA,eAAIA,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAkBrC,GAAG,0BAA0BC,eAAe,WAEjE8D,EAASV,IACR,SAAA8B,GAAQ,OACN7D,OAAAC,EAAA,EAAAD,CAAC8D,EAAA,EAAD,CACEpF,GAAImF,GACCA,MAKX,KACHnB,GAAYA,EAASE,KACpB5C,OAAAC,EAAA,EAAAD,CAAA,oBACEA,OAAAC,EAAA,EAAAD,CAAA,eAAIA,OAAAC,EAAA,EAAAD,CAACe,EAAA,EAAD,CAAkBrC,GAAG,0BAA0BC,eAAe,cAEjE+D,EAASX,IAAI,SAAAX,GAAO,OAAIpB,OAAAC,EAAA,EAAAD,CAAC+D,EAAD,CAAmC3C,QAASA,GAA9BA,EAAQrB,IAAI,YAEnD,qFC3Ed,IAAMxB,EAAWC,YAAe,CAC9BwF,QAAO,CAAAtF,GAAA,yBAAAC,eAAA,sBAqCHsF,cAGJ,SAAAA,EAAaC,GAAO,OAClBC,EAAAC,KAAAC,KAAMH,IADYG,yCAKpBC,OAAA,WAAU,IAAAC,EAkBJF,KAAKH,MAhBPM,EAFMD,EAENC,QACApF,EAHMmF,EAGNnF,QACAG,EAJMgF,EAINhF,KACAkF,EALMF,EAKNE,YACAC,EANMH,EAMNG,SACAC,EAPMJ,EAONI,QACAC,EARML,EAQNK,eACAC,EATMN,EASNM,OACAC,EAVMP,EAUNO,SACAxC,EAXMiC,EAWNjC,QACAyC,EAZMR,EAYNQ,aACAC,EAbMT,EAaNS,YACAC,EAdMV,EAcNU,UACAC,EAfMX,EAeNW,aACA7F,EAhBMkF,EAgBNlF,oBACAC,EAjBMiF,EAiBNjF,uBAEI6F,EAAgBC,IAAW,SAAU,YAG3C,OACEpF,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAWiF,EAAeE,KAAK,SAASjF,aAAYb,EAAKc,cAAc9B,EAASyF,eAArF,EACGS,EACCzE,OAAAC,EAAA,EAAAD,CAACd,EAAD,CACEE,QAASA,EACTC,oBAAqBA,EACrBC,uBAAwBA,EACxBC,KAAMA,EACNC,gBAAiBoF,IAEjB,MACFH,GAAeS,IAAiBlF,OAAAC,EAAA,EAAAD,CAACsF,EAAA,EAAD,CAC9B/F,KAAMA,EACNmF,SAAUA,EACVC,QAASA,EACTE,OAAQA,EACRC,SAAUA,EACVG,UAAWA,EACXjE,MAAOgE,IAEXhF,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,sBAAf,GACIgF,GAAgBlF,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,sBAAf,EAChBF,OAAAC,EAAA,EAAAD,CAACuF,EAAA,EAAD,CAAef,QAASA,IACxBxE,OAAAC,EAAA,EAAAD,CAACwF,EAAA,EAAD,IACCf,GAAegB,KACdzF,OAAAC,EAAA,EAAAD,CAAA,OAAKE,UAAU,gCAAf,EACEF,OAAAC,EAAA,EAAAD,CAAA,OAAK0F,IAAI,GAAGC,UAAU,QAAQC,IAAKH,SAKvChB,GAAeS,IACflF,OAAAC,EAAA,EAAAD,CAACqC,EAAD,CACEC,QAASA,EACTC,QAAS0C,IAAcF,UAhEhBc,IAAMC,WAmGZC,sBAAK9B,EApII,SAAA+B,GAAK,MAAK,CAChCxB,QAASwB,EAAMxE,MAAM,CAAC,WAAYyE,MAClC7G,QAAS4G,EAAMxE,MAAM,CAAC,WAAY,YAClCc,QAAS0D,EAAMxE,MAAM,CAAC,SAAU,YAChCuD,aAAciB,EAAMxE,MAAM,CAAC,SAAU,WACrCwD,YAAagB,EAAMxE,MAAM,CAAC,SAAU,UACpCyD,UAAWe,EAAMxE,MAAM,CAAC,SAAU,cAClCnC,oBAAqB2G,EAAMxE,MAAM,CAAC,gBAAiB,WACnDlC,uBAAwB0G,EAAMxE,MAAM,CAAC,iBAAkB,gBAAiB,gBAI/C,SAAC0E,EAAD/G,KAAaI,KAAb,MAAyB,CAClDmF,SADkD,SACxC1D,GACRkF,EAASC,YAAanF,KAExB2D,QAJkD,WAKhDuB,EAASE,gBAEXvB,OAPkD,WAQhDqB,EAASG,gBAEXvB,SAVkD,WAWhDoB,EAASI,gBAEX1B,eAbkD,SAalC2B,GACdA,EAAEC,iBACFD,EAAEE,kBACFP,EAASQ,YAAU,WAAY,SAwG8B","file":"flavours/glitch/async/drawer.js","sourcesContent":["// Package imports.\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { defineMessages } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\n// Components.\nimport Icon from 'flavours/glitch/components/icon';\n\n// Utils.\nimport { conditionalRender } from 'flavours/glitch/util/react_helpers';\nimport { signOutLink } from 'flavours/glitch/util/backend_links';\n\n// Messages.\nconst messages = defineMessages({\n community: {\n defaultMessage: 'Local timeline',\n id: 'navigation_bar.community_timeline',\n },\n home_timeline: {\n defaultMessage: 'Home',\n id: 'tabs_bar.home',\n },\n logout: {\n defaultMessage: 'Logout',\n id: 'navigation_bar.logout',\n },\n notifications: {\n defaultMessage: 'Notifications',\n id: 'tabs_bar.notifications',\n },\n public: {\n defaultMessage: 'Federated timeline',\n id: 'navigation_bar.public_timeline',\n },\n settings: {\n defaultMessage: 'App settings',\n id: 'navigation_bar.app_settings',\n },\n start: {\n defaultMessage: 'Getting started',\n id: 'getting_started.heading',\n },\n});\n\n// The component.\nexport default function DrawerHeader ({\n columns,\n unreadNotifications,\n showNotificationsBadge,\n intl,\n onSettingsClick,\n}) {\n\n // Only renders the component if the column isn't being shown.\n const renderForColumn = conditionalRender.bind(null,\n columnId => !columns || !columns.some(\n column => column.get('id') === columnId\n )\n );\n\n // The result.\n return (\n <nav className='drawer--header'>\n <Link\n aria-label={intl.formatMessage(messages.start)}\n title={intl.formatMessage(messages.start)}\n to='/getting-started'\n ><Icon icon='asterisk' /></Link>\n {renderForColumn('HOME', (\n <Link\n aria-label={intl.formatMessage(messages.home_timeline)}\n title={intl.formatMessage(messages.home_timeline)}\n to='/timelines/home'\n ><Icon icon='home' /></Link>\n ))}\n {renderForColumn('NOTIFICATIONS', (\n <Link\n aria-label={intl.formatMessage(messages.notifications)}\n title={intl.formatMessage(messages.notifications)}\n to='/notifications'\n >\n <span className='icon-badge-wrapper'>\n <Icon icon='bell' />\n { showNotificationsBadge && unreadNotifications > 0 && <div className='icon-badge' />}\n </span>\n </Link>\n ))}\n {renderForColumn('COMMUNITY', (\n <Link\n aria-label={intl.formatMessage(messages.community)}\n title={intl.formatMessage(messages.community)}\n to='/timelines/public/local'\n ><Icon icon='users' /></Link>\n ))}\n {renderForColumn('PUBLIC', (\n <Link\n aria-label={intl.formatMessage(messages.public)}\n title={intl.formatMessage(messages.public)}\n to='/timelines/public'\n ><Icon icon='globe' /></Link>\n ))}\n <a\n aria-label={intl.formatMessage(messages.settings)}\n onClick={onSettingsClick}\n href='#'\n title={intl.formatMessage(messages.settings)}\n ><Icon icon='cogs' /></a>\n <a\n aria-label={intl.formatMessage(messages.logout)}\n data-method='delete'\n href={ signOutLink }\n title={intl.formatMessage(messages.logout)}\n ><Icon icon='sign-out' /></a>\n </nav>\n );\n}\n\n// Props.\nDrawerHeader.propTypes = {\n columns: ImmutablePropTypes.list,\n unreadNotifications: PropTypes.number,\n showNotificationsBadge: PropTypes.bool,\n intl: PropTypes.object,\n onSettingsClick: PropTypes.func,\n};\n","import React, { Fragment } from 'react';\nimport { FormattedNumber } from 'react-intl';\n\nexport const shortNumberFormat = number => {\n if (number < 1000) {\n return <FormattedNumber value={number} />;\n } else {\n return <Fragment><FormattedNumber value={number / 1000} maximumFractionDigits={1} />K</Fragment>;\n }\n};\n","import React from 'react';\nimport { Sparklines, SparklinesCurve } from 'react-sparklines';\nimport { FormattedMessage } from 'react-intl';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Permalink from './permalink';\nimport { shortNumberFormat } from 'flavours/glitch/util/numbers';\n\nconst Hashtag = ({ hashtag }) => (\n <div className='trends__item'>\n <div className='trends__item__name'>\n <Permalink href={hashtag.get('url')} to={`/timelines/tag/${hashtag.get('name')}`}>\n #<span>{hashtag.get('name')}</span>\n </Permalink>\n\n <FormattedMessage id='trends.count_by_accounts' defaultMessage='{count} {rawCount, plural, one {person} other {people}} talking' values={{ rawCount: hashtag.getIn(['history', 0, 'accounts']), count: <strong>{shortNumberFormat(hashtag.getIn(['history', 0, 'accounts']))}</strong> }} />\n </div>\n\n <div className='trends__item__current'>\n {shortNumberFormat(hashtag.getIn(['history', 0, 'uses']))}\n </div>\n\n <div className='trends__item__sparkline'>\n <Sparklines width={50} height={28} data={hashtag.get('history') && hashtag.get('history').reverse().map(day => day.get('uses')).toArray()}>\n <SparklinesCurve style={{ fill: 'none' }} />\n </Sparklines>\n </div>\n </div>\n);\n\nHashtag.propTypes = {\n hashtag: ImmutablePropTypes.map.isRequired,\n};\n\nexport default Hashtag;\n","// Package imports.\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport {\n FormattedMessage,\n defineMessages,\n} from 'react-intl';\nimport spring from 'react-motion/lib/spring';\nimport { Link } from 'react-router-dom';\n\n// Components.\nimport AccountContainer from 'flavours/glitch/containers/account_container';\nimport StatusContainer from 'flavours/glitch/containers/status_container';\nimport Hashtag from 'flavours/glitch/components/hashtag';\n\n// Utils.\nimport Motion from 'flavours/glitch/util/optional_motion';\n\n// Messages.\nconst messages = defineMessages({\n total: {\n defaultMessage: '{count, number} {count, plural, one {result} other {results}}',\n id: 'search_results.total',\n },\n});\n\n// The component.\nexport default function DrawerResults ({\n results,\n visible,\n}) {\n const accounts = results ? results.get('accounts') : null;\n const statuses = results ? results.get('statuses') : null;\n const hashtags = results ? results.get('hashtags') : null;\n\n // This gets the total number of items.\n const count = [accounts, statuses, hashtags].reduce(function (size, item) {\n if (item && item.size) {\n return size + item.size;\n }\n return size;\n }, 0);\n\n // The result.\n return (\n <Motion\n defaultStyle={{ x: -100 }}\n style={{\n x: spring(visible ? 0 : -100, {\n stiffness: 210,\n damping: 20,\n }),\n }}\n >\n {({ x }) => (\n <div\n className='drawer--results'\n style={{\n transform: `translateX(${x}%)`,\n visibility: x === -100 ? 'hidden' : 'visible',\n }}\n >\n <header>\n <FormattedMessage\n {...messages.total}\n values={{ count }}\n />\n </header>\n {accounts && accounts.size ? (\n <section>\n <h5><FormattedMessage id='search_results.accounts' defaultMessage='People' /></h5>\n\n {accounts.map(\n accountId => (\n <AccountContainer\n id={accountId}\n key={accountId}\n />\n )\n )}\n </section>\n ) : null}\n {statuses && statuses.size ? (\n <section>\n <h5><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>\n\n {statuses.map(\n statusId => (\n <StatusContainer\n id={statusId}\n key={statusId}\n />\n )\n )}\n </section>\n ) : null}\n {hashtags && hashtags.size ? (\n <section>\n <h5><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></h5>\n\n {hashtags.map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}\n </section>\n ) : null}\n </div>\n )}\n </Motion>\n );\n}\n\n// Props.\nDrawerResults.propTypes = {\n results: ImmutablePropTypes.map,\n visible: PropTypes.bool,\n};\n","// Package imports.\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { defineMessages } from 'react-intl';\nimport classNames from 'classnames';\n\n// Actions.\nimport { openModal } from 'flavours/glitch/actions/modal';\nimport {\n changeSearch,\n clearSearch,\n showSearch,\n submitSearch,\n} from 'flavours/glitch/actions/search';\n\n// Components.\nimport Composer from 'flavours/glitch/features/composer';\nimport DrawerAccount from './account';\nimport DrawerHeader from './header';\nimport DrawerResults from './results';\nimport DrawerSearch from './search';\n\n// Utils.\nimport { me, mascot } from 'flavours/glitch/util/initial_state';\nimport { wrap } from 'flavours/glitch/util/redux_helpers';\n\n// Messages.\nconst messages = defineMessages({\n compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },\n});\n\n// State mapping.\nconst mapStateToProps = state => ({\n account: state.getIn(['accounts', me]),\n columns: state.getIn(['settings', 'columns']),\n results: state.getIn(['search', 'results']),\n searchHidden: state.getIn(['search', 'hidden']),\n searchValue: state.getIn(['search', 'value']),\n submitted: state.getIn(['search', 'submitted']),\n unreadNotifications: state.getIn(['notifications', 'unread']),\n showNotificationsBadge: state.getIn(['local_settings', 'notifications', 'tab_badge']),\n});\n\n// Dispatch mapping.\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n onChange (value) {\n dispatch(changeSearch(value));\n },\n onClear () {\n dispatch(clearSearch());\n },\n onShow () {\n dispatch(showSearch());\n },\n onSubmit () {\n dispatch(submitSearch());\n },\n onOpenSettings (e) {\n e.preventDefault();\n e.stopPropagation();\n dispatch(openModal('SETTINGS', {}));\n },\n});\n\n// The component.\nclass Drawer extends React.Component {\n\n // Constructor.\n constructor (props) {\n super(props);\n }\n\n // Rendering.\n render () {\n const {\n account,\n columns,\n intl,\n multiColumn,\n onChange,\n onClear,\n onOpenSettings,\n onShow,\n onSubmit,\n results,\n searchHidden,\n searchValue,\n submitted,\n isSearchPage,\n unreadNotifications,\n showNotificationsBadge,\n } = this.props;\n const computedClass = classNames('drawer', 'mbstobon');\n\n // The result.\n return (\n <div className={computedClass} role='region' aria-label={intl.formatMessage(messages.compose)}>\n {multiColumn ? (\n <DrawerHeader\n columns={columns}\n unreadNotifications={unreadNotifications}\n showNotificationsBadge={showNotificationsBadge}\n intl={intl}\n onSettingsClick={onOpenSettings}\n />\n ) : null}\n {(multiColumn || isSearchPage) && <DrawerSearch\n intl={intl}\n onChange={onChange}\n onClear={onClear}\n onShow={onShow}\n onSubmit={onSubmit}\n submitted={submitted}\n value={searchValue}\n /> }\n <div className='drawer__pager'>\n {!isSearchPage && <div className='drawer__inner'>\n <DrawerAccount account={account} />\n <Composer />\n {multiColumn && mascot && (\n <div className='drawer__inner__mastodon'>\n <img alt='' draggable='false' src={mascot} />\n </div>\n )}\n </div>}\n\n {(multiColumn || isSearchPage) &&\n <DrawerResults\n results={results}\n visible={submitted && !searchHidden}\n />}\n </div>\n </div>\n );\n }\n\n}\n\n// Props.\nDrawer.propTypes = {\n intl: PropTypes.object.isRequired,\n isSearchPage: PropTypes.bool,\n multiColumn: PropTypes.bool,\n\n // State props.\n account: ImmutablePropTypes.map,\n columns: ImmutablePropTypes.list,\n results: ImmutablePropTypes.map,\n searchHidden: PropTypes.bool,\n searchValue: PropTypes.string,\n submitted: PropTypes.bool,\n unreadNotifications: PropTypes.number,\n showNotificationsBadge: PropTypes.bool,\n\n // Dispatch props.\n onChange: PropTypes.func,\n onClear: PropTypes.func,\n onShow: PropTypes.func,\n onSubmit: PropTypes.func,\n onOpenSettings: PropTypes.func,\n};\n\n// Connecting and export.\nexport { Drawer as WrappedComponent };\nexport default wrap(Drawer, mapStateToProps, mapDispatchToProps, true);\n"],"sourceRoot":""} |