{"version":3,"sources":["webpack:///./app/javascript/mastodon/containers/media_container.js"],"names":["getLocale","localeData","messages","addLocaleData","MEDIA_COMPONENTS","MediaGallery","Video","Card","MediaContainer","media","index","time","document","body","classList","add","_this","setState","video","ImmutableList","remove","render","_this2","this","_this$props","props","locale","components","Object","_babel_runtime_helpers_esm_jsx__WEBPACK_IMPORTED_MODULE_0__","react_intl__WEBPACK_IMPORTED_MODULE_9__","react__WEBPACK_IMPORTED_MODULE_7__","map","call","component","i","componentName","getAttribute","Component","_JSON$parse","JSON","parse","card","_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_3__","assign","_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_2__","fromJS","onOpenVideo","handleOpenVideo","onOpenMedia","handleOpenMedia","ReactDOM","createPortal","react__WEBPACK_IMPORTED_MODULE_7___default","a","createElement","_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__","key","_components_modal_root__WEBPACK_IMPORTED_MODULE_14__","onClose","handleCloseMedia","state","_features_ui_components_media_modal__WEBPACK_IMPORTED_MODULE_15__","PureComponent"],"mappings":"mSAYiCA,sBAAzBC,eAAYC,aACpBC,YAAcF,GAEd,IAAMG,EAAmB,CAAEC,uBAAcC,gBAAOC,UAE3BC,qMAOX,CACNC,MAAO,KACPC,MAAO,KACPC,KAAM,iEAGU,SAACF,EAAOC,GACxBE,SAASC,KAAKC,UAAUC,IAAI,uBAC5BC,EAAKC,SAAS,CAAER,QAAOC,sEAGP,SAACQ,EAAOP,GACxB,IAAMF,EAAQU,eAAc,CAACD,IAE7BN,SAASC,KAAKC,UAAUC,IAAI,uBAC5BC,EAAKC,SAAS,CAAER,QAAOE,sEAGN,WACjBC,SAASC,KAAKC,UAAUM,OAAO,uBAC/BJ,EAAKC,SAAS,CAAER,MAAO,KAAMC,MAAO,KAAMC,KAAM,+CAGlDU,OAAA,WAAU,IAAAC,EAAAC,KAAAC,EACuBD,KAAKE,MAA5BC,EADAF,EACAE,OAAQC,EADRH,EACQG,WAEhB,OACEC,OAAAC,EAAA,EAAAD,CAACE,EAAA,EAAD,CAAcJ,OAAQA,EAAQxB,SAAUA,QAAxC,EACE0B,OAAAC,EAAA,EAAAD,CAACG,EAAA,SAAD,UACG,GAAGC,IAAIC,KAAKN,EAAY,SAACO,EAAWC,GACnC,IAAMC,EAAgBF,EAAUG,aAAa,kBACvCC,EAAYlC,EAAiBgC,GAFMG,EAGPC,KAAKC,MAAMP,EAAUG,aAAa,eAA5D5B,EAHiC8B,EAGjC9B,MAAOiC,EAH0BH,EAG1BG,KAASjB,EAHiBG,OAAAe,EAAA,EAAAf,CAAAW,EAAA,kBAgBzC,OAXAX,OAAOgB,OAAOnB,EAAdG,OAAAiB,EAAA,EAAAjB,CAAA,GACMnB,EAAQ,CAAEA,MAAOqC,iBAAOrC,IAAW,GACnCiC,EAAQ,CAAEA,KAAOI,iBAAOJ,IAAW,GAEjB,UAAlBN,EAA4B,CAC9BW,YAAazB,EAAK0B,iBAChB,CACFC,YAAa3B,EAAK4B,mBAIfC,IAASC,aACdC,EAAAC,EAAAC,cAACjB,EAADV,OAAA4B,EAAA,EAAA5B,CAAA,GAAeH,EAAf,CAAsBgC,IAAG,SAAWtB,KACpCD,KAGJN,OAAAC,EAAA,EAAAD,CAAC8B,EAAA,EAAD,CAAWC,QAASpC,KAAKqC,uBAAzB,EACGrC,KAAKsC,MAAMpD,OACVmB,OAAAC,EAAA,EAAAD,CAACkC,EAAA,EAAD,CACErD,MAAOc,KAAKsC,MAAMpD,MAClBC,MAAOa,KAAKsC,MAAMnD,OAAS,EAC3BC,KAAMY,KAAKsC,MAAMlD,KACjBgD,QAASpC,KAAKqC,0BA/DcG","file":"containers/media_container-0c9343c0ce590dfbd529.js","sourcesContent":["import React, { PureComponent, Fragment } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport MediaGallery from '../components/media_gallery';\nimport Video from '../features/video';\nimport Card from '../features/status/components/card';\nimport ModalRoot from '../components/modal_root';\nimport MediaModal from '../features/ui/components/media_modal';\nimport { List as ImmutableList, fromJS } from 'immutable';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nconst MEDIA_COMPONENTS = { MediaGallery, Video, Card };\n\nexport default class MediaContainer extends PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n components: PropTypes.object.isRequired,\n };\n\n state = {\n media: null,\n index: null,\n time: null,\n };\n\n handleOpenMedia = (media, index) => {\n document.body.classList.add('with-modals--active');\n this.setState({ media, index });\n }\n\n handleOpenVideo = (video, time) => {\n const media = ImmutableList([video]);\n\n document.body.classList.add('with-modals--active');\n this.setState({ media, time });\n }\n\n handleCloseMedia = () => {\n document.body.classList.remove('with-modals--active');\n this.setState({ media: null, index: null, time: null });\n }\n\n render () {\n const { locale, components } = this.props;\n\n return (\n \n \n {[].map.call(components, (component, i) => {\n const componentName = component.getAttribute('data-component');\n const Component = MEDIA_COMPONENTS[componentName];\n const { media, card, ...props } = JSON.parse(component.getAttribute('data-props'));\n\n Object.assign(props, {\n ...(media ? { media: fromJS(media) } : {}),\n ...(card ? { card: fromJS(card) } : {}),\n\n ...(componentName === 'Video' ? {\n onOpenVideo: this.handleOpenVideo,\n } : {\n onOpenMedia: this.handleOpenMedia,\n }),\n });\n\n return ReactDOM.createPortal(\n ,\n component,\n );\n })}\n \n {this.state.media && (\n \n )}\n \n \n \n );\n }\n\n}\n"],"sourceRoot":""}