{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/account_gallery/components/media_item.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/flavours/glitch/features/account_gallery/index.js"],"names":["MediaItem","visible","displayMedia","props","attachment","getIn","loaded","c","canvas","setState","e","hoverToPlay","target","play","pause","currentTime","button","ctrlKey","metaKey","preventDefault","state","onOpenMedia","componentDidMount","this","get","_decode","componentDidUpdate","prevProps","hash","pixels","decode","ctx","getContext","imageData","ImageData","putImageData","autoPlayGif","indexOf","render","displayWidth","width","Math","floor","height","status","title","thumbnail","className","id","x","y","src","alt","style","objectPosition","onLoad","handleImageLoad","autoPlay","isIOS","label","classNames","autoplay","aria-label","role","onMouseEnter","handleMouseEnter","onMouseLeave","handleMouseLeave","loop","muted","icon","href","onClick","handleClick","rel","ref","setCanvasRef","ImmutablePureComponent","ImmutablePropTypes","map","isRequired","PropTypes","number","func","LoadMoreMedia","onLoadMore","maxId","disabled","handleLoadMore","string","AccountGallery","connect","isAccount","params","accountId","attachments","getAccountGallery","isLoading","hasMore","column","scrollTop","size","last","undefined","scrollHeight","clientHeight","handleScrollToBottom","dispatch","expandAccountMediaTimeline","prevRouterProps","location","mastodonModalOpen","openModal","media","index","findIndex","offsetWidth","fetchAccount","componentWillReceiveProps","nextProps","multiColumn","loadOlder","handleLoadOlder","setColumnRef","handleHeaderClick","scrollKey","shouldUpdateScroll","onScroll","handleScroll","handleRef","handleOpenMedia","object","list","bool"],"mappings":"2SAUqBA,E,sLAQX,CACNC,QAA0B,aAAjBC,MAAgC,EAAKC,MAAMC,WAAWC,MAAM,CAAC,SAAU,eAAkC,aAAjBH,IACjGI,QAAQ,I,2CA2BK,SAAAC,GACb,EAAKC,OAASD,K,8CAGE,WAChB,EAAKE,SAAS,CAAEH,QAAQ,O,+CAGP,SAAAI,GACb,EAAKC,eACPD,EAAEE,OAAOC,U,+CAIM,SAAAH,GACb,EAAKC,gBACPD,EAAEE,OAAOE,QACTJ,EAAEE,OAAOG,YAAc,M,0CAQb,SAAAL,GACK,IAAbA,EAAEM,QAAkBN,EAAEO,SAAWP,EAAEQ,UACrCR,EAAES,iBAEE,EAAKC,MAAMnB,QACb,EAAKE,MAAMkB,YAAY,EAAKlB,MAAMC,YAElC,EAAKK,SAAS,CAAER,SAAS,Q,8CAxD/BqB,kBAAA,WACMC,KAAKpB,MAAMC,WAAWoB,IAAI,aAC5BD,KAAKE,W,EAITC,mBAAA,SAAoBC,GACdA,EAAUvB,WAAWoB,IAAI,cAAgBD,KAAKpB,MAAMC,WAAWoB,IAAI,aAAeD,KAAKpB,MAAMC,WAAWoB,IAAI,aAC9GD,KAAKE,W,EAITA,QAAA,WACE,IAAMG,EAASL,KAAKpB,MAAMC,WAAWoB,IAAI,YACnCK,EAASC,iBAAOF,EAAM,GAAI,IAEhC,GAAIC,EAAQ,CACV,IAAME,EAAYR,KAAKf,OAAOwB,WAAW,MACnCC,EAAY,IAAIC,UAAUL,EAAQ,GAAI,IAE5CE,EAAII,aAAaF,EAAW,EAAG,K,EAyBnCtB,YAAA,WACE,OAAQyB,MAAiF,IAAlE,CAAC,OAAQ,SAASC,QAAQd,KAAKpB,MAAMC,WAAWoB,IAAI,U,EAe7Ec,OAAA,WAAW,IAAD,EAC6Bf,KAAKpB,MAAlCC,EADA,EACAA,WAAYmC,EADZ,EACYA,aADZ,EAEoBhB,KAAKH,MAAzBnB,EAFA,EAEAA,QAASK,EAFT,EAESA,OAEXkC,EAAYC,KAAKC,OAAOH,EAAe,GAAK,GAAK,EAA5C,KACLI,EAASH,EACTI,EAASxC,EAAWoB,IAAI,UACxBqB,EAAQD,EAAOpB,IAAI,iBAAmBpB,EAAWoB,IAAI,eAEvDsB,EAAY,GAEhB,GAA+B,YAA3B1C,EAAWoB,IAAI,cAEZ,GAA+B,UAA3BpB,EAAWoB,IAAI,QACxBsB,EACE,oBAAMC,UAAU,qCAAhB,EACE,YAAC,IAAD,CAAMC,GAAG,gBAGR,GAA+B,UAA3B5C,EAAWoB,IAAI,QAAqB,CAC7C,IAEMyB,EAAgC,MAFvB7C,EAAWC,MAAM,CAAC,OAAQ,QAAS,OAAS,GAEhC,EAAK,IAC1B6C,EAAgC,MAFvB9C,EAAWC,MAAM,CAAC,OAAQ,QAAS,OAAS,IAEhC,EAAK,IAEhCyC,EACE,mBACEK,IAAK/C,EAAWoB,IAAI,eACpB4B,IAAKhD,EAAWoB,IAAI,eACpBqB,MAAOzC,EAAWoB,IAAI,eACtB6B,MAAO,CAAEC,eAAmBL,EAAL,KAAWC,EAAX,KACvBK,OAAQhC,KAAKiC,uBAGZ,IAA2D,IAAvD,CAAC,OAAQ,SAASnB,QAAQjC,EAAWoB,IAAI,SAAiB,CACnE,IAAMiC,GAAYC,eAAWtB,IACvBuB,EAAsC,UAA3BvD,EAAWoB,IAAI,QAAsB,YAAC,IAAD,CAAMwB,GAAG,SAAY,MAE3EF,EACE,mBAAKC,UAAWa,IAAW,sBAAuB,CAAEC,SAAUJ,UAA9D,EACE,qBACEV,UAAU,qCACVe,aAAY1D,EAAWoB,IAAI,eAC3BqB,MAAOzC,EAAWoB,IAAI,eACtBuC,KAAK,cACLZ,IAAK/C,EAAWoB,IAAI,OACpBwC,aAAczC,KAAK0C,iBACnBC,aAAc3C,KAAK4C,iBACnBV,SAAUA,EACVW,MAAI,EACJC,OAAK,IAGP,oBAAMtB,UAAU,mCAAhB,EAA8CY,IAKpD,IAAMW,EACJ,oBAAMvB,UAAU,qCAAhB,EACE,YAAC,IAAD,CAAMC,GAAG,eAIb,OACE,mBAAKD,UAAU,wBAAwBM,MAAO,CAAEb,QAAOG,gBAAvD,EACE,iBAAGI,UAAU,gCAAgCwB,KAAM3B,EAAOpB,IAAI,OAAQgD,QAASjD,KAAKkD,YAAa5B,MAAOA,EAAOjC,OAAO,SAAS8D,IAAI,4BAAnI,EACE,4BAAQlC,MAAO,GAAIG,OAAQ,GAAIgC,IAAKpD,KAAKqD,aAAc7B,UAAWa,IAAW,yBAA0B,CAAE,iCAAkC3D,GAAWK,MACrJL,EAAU6C,EAAYwB,K,GA9IMO,K,YAAlB7E,E,YAEA,CACjBI,WAAY0E,IAAmBC,IAAIC,WACnCzC,aAAc0C,IAAUC,OAAOF,WAC/B3D,YAAa4D,IAAUE,KAAKH,a,iGCGhC,IAOMI,E,gMAOa,WACf,EAAKjF,MAAMkF,WAAW,EAAKlF,MAAMmF,U,sCAGnChD,OAAA,WACE,OACE,YAAC,IAAD,CACEiD,SAAUhE,KAAKpB,MAAMoF,SACrBf,QAASjD,KAAKiE,kB,GAfMX,K,YAAtBO,E,YAEe,CACjBE,MAAOL,IAAUQ,OACjBJ,WAAYJ,IAAUE,KAAKH,a,IAmBzBU,EADUC,mBA7BQ,SAACvE,EAAOjB,GAAR,MAAmB,CACzCyF,YAAaxE,EAAMf,MAAM,CAAC,WAAYF,EAAM0F,OAAOC,YACnDC,YAAaC,YAAkB5E,EAAOjB,EAAM0F,OAAOC,WACnDG,UAAW7E,EAAMf,MAAM,CAAC,YAAD,WAAyBF,EAAM0F,OAAOC,UAAtC,SAAyD,cAChFI,QAAS9E,EAAMf,MAAM,CAAC,YAAD,WAAyBF,EAAM0F,OAAOC,UAAtC,SAAyD,e,4LAsCtE,CACNtD,MAAO,M,gDAeW,WAClB,EAAK2D,OAAOC,e,mDAGS,WACjB,EAAKjG,MAAM+F,SACb,EAAKV,eAAe,EAAKrF,MAAM4F,YAAYM,KAAO,EAAI,EAAKlG,MAAM4F,YAAYO,OAAOjG,MAAM,CAAC,SAAU,YAASkG,M,2CAInG,SAAA7F,GAAM,IAAD,EACgCA,EAAEE,OAA5CwF,EADU,EACVA,UAGJ,IAJc,EACCI,aACWJ,EAFZ,EACeK,eAGZ,EAAKtG,MAAM8F,WAC9B,EAAKS,0B,6CAIQ,SAAApB,GACf,EAAKnF,MAAMwG,SAASC,YAA2B,EAAKzG,MAAM0F,OAAOC,UAAW,CAAER,c,8CAG9D,SAAA5E,GAChBA,EAAES,iBACF,EAAKuF,0B,iDAGc,SAACG,EAAD,GAAoC,IAAhBC,EAAe,EAAfA,SACvC,UAAOD,GAAmB,IAAIC,UAAY,IAAI1F,OAAS,IAAI2F,qBAClDD,EAAS1F,OAAS0F,EAAS1F,MAAM2F,sB,2CAG7B,SAAAxG,GACb,EAAK4F,OAAS5F,K,8CAGE,SAAAH,GAChB,GAA+B,UAA3BA,EAAWoB,IAAI,QACjB,EAAKrB,MAAMwG,SAASK,YAAU,QAAS,CAAEC,MAAO7G,EAAYwC,OAAQxC,EAAWoB,IAAI,kBAC9E,GAA+B,UAA3BpB,EAAWoB,IAAI,QACxB,EAAKrB,MAAMwG,SAASK,YAAU,QAAS,CAAEC,MAAO7G,EAAYwC,OAAQxC,EAAWoB,IAAI,iBAC9E,CACL,IAAMyF,EAAQ7G,EAAWC,MAAM,CAAC,SAAU,sBACpC6G,EAAQD,EAAME,WAAU,SAAAlE,GAAC,OAAIA,EAAEzB,IAAI,QAAUpB,EAAWoB,IAAI,SAElE,EAAKrB,MAAMwG,SAASK,YAAU,QAAS,CAAEC,QAAOC,QAAOtE,OAAQxC,EAAWoB,IAAI,iB,wCAItE,SAAAjB,GACNA,GACF,EAAKE,SAAS,CAAE+B,MAAOjC,EAAE6G,iB,8CAhE7B9F,kBAAA,WACEC,KAAKpB,MAAMwG,SAASU,YAAa9F,KAAKpB,MAAM0F,OAAOC,YACnDvE,KAAKpB,MAAMwG,SAASC,YAA2BrF,KAAKpB,MAAM0F,OAAOC,a,EAGnEwB,0BAAA,SAA2BC,GACrBA,EAAU1B,OAAOC,YAAcvE,KAAKpB,MAAM0F,OAAOC,WAAayB,EAAU1B,OAAOC,YACjFvE,KAAKpB,MAAMwG,SAASU,YAAaE,EAAU1B,OAAOC,YAClDvE,KAAKpB,MAAMwG,SAASC,YAA2BrF,KAAKpB,MAAM0F,OAAOC,c,EA4DrExD,OAAA,WAAW,IAAD,SAC4Df,KAAKpB,MAAjE4F,EADA,EACAA,YAAaE,EADb,EACaA,UAAWC,EADxB,EACwBA,QAASN,EADjC,EACiCA,UAAW4B,EAD5C,EAC4CA,YAC5ChF,EAAUjB,KAAKH,MAAfoB,MAER,IAAKoD,EACH,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAKG,GAAeE,EAClB,OACE,YAAC,IAAD,UACE,YAAC,IAAD,KAKN,IAAIwB,EAAY,KAMhB,OAJIvB,GAAaD,GAAkC,IAArBF,EAAYM,OACxCoB,EAAY,YAAC,IAAD,CAAUxH,SAAUgG,EAAWzB,QAASjD,KAAKmG,mBAIzD,kBAAC,IAAD,CAAQ/C,IAAKpD,KAAKoG,cAChB,YAAC,IAAD,CAAqBnD,QAASjD,KAAKqG,kBAAmBJ,YAAaA,IAEnE,YAAC,IAAD,CAAiBK,UAAU,kBAAkBC,mBAAoBvG,KAAKuG,yBAAtE,EACE,mBAAK/E,UAAU,8BAA8BgF,SAAUxG,KAAKyG,mBAA5D,EACE,YAAC,IAAD,CAAiBlC,UAAWvE,KAAKpB,MAAM0F,OAAOC,YAE9C,yBAAK/B,KAAK,OAAOhB,UAAU,6BAA6B4B,IAAKpD,KAAK0G,WAC/DlC,EAAYhB,KAAI,SAAC3E,EAAY8G,GAAb,OAAsC,OAAf9G,EACtC,YAAC,EAAD,CAAkEkF,MAAO4B,EAAQ,EAAInB,EAAY1F,MAAM6G,EAAQ,EAAG,MAAQ,KAAM7B,WAAY,EAAKG,gBAA7H,QAAUO,EAAY1F,MAAM6G,EAAQ,EAAG,OAE3D,YAAC,EAAD,CAAsC9G,WAAYA,EAAYmC,aAAcC,EAAOnB,YAAa,EAAK6G,iBAArF9H,EAAWoB,IAAI,UAGhCiG,GAGFxB,GAAkC,IAArBF,EAAYM,MACxB,mBAAKtD,UAAU,2BAAf,EACE,YAAC,IAAD,S,GAlIa8B,K,0BAER,CACjBgB,OAAQZ,IAAUkD,OAAOnD,WACzB2B,SAAU1B,IAAUE,KAAKH,WACzBe,YAAajB,IAAmBsD,KAAKpD,WACrCiB,UAAWhB,IAAUoD,KACrBnC,QAASjB,IAAUoD,KACnBzC,UAAWX,IAAUoD,KACrBb,YAAavC,IAAUoD,O","file":"flavours/glitch/async/account_gallery.js","sourcesContent":["import { decode } from 'blurhash';\nimport classNames from 'classnames';\nimport Icon from 'flavours/glitch/components/icon';\nimport { autoPlayGif, displayMedia } from 'flavours/glitch/util/initial_state';\nimport { isIOS } from 'flavours/glitch/util/is_mobile';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class MediaItem extends ImmutablePureComponent {\n\n static propTypes = {\n attachment: ImmutablePropTypes.map.isRequired,\n displayWidth: PropTypes.number.isRequired,\n onOpenMedia: PropTypes.func.isRequired,\n };\n\n state = {\n visible: displayMedia !== 'hide_all' && !this.props.attachment.getIn(['status', 'sensitive']) || displayMedia === 'show_all',\n loaded: false,\n };\n\n componentDidMount () {\n if (this.props.attachment.get('blurhash')) {\n this._decode();\n }\n }\n\n componentDidUpdate (prevProps) {\n if (prevProps.attachment.get('blurhash') !== this.props.attachment.get('blurhash') && this.props.attachment.get('blurhash')) {\n this._decode();\n }\n }\n\n _decode () {\n const hash = this.props.attachment.get('blurhash');\n const pixels = decode(hash, 32, 32);\n\n if (pixels) {\n const ctx = this.canvas.getContext('2d');\n const imageData = new ImageData(pixels, 32, 32);\n\n ctx.putImageData(imageData, 0, 0);\n }\n }\n\n setCanvasRef = c => {\n this.canvas = c;\n }\n\n handleImageLoad = () => {\n this.setState({ loaded: true });\n }\n\n handleMouseEnter = e => {\n if (this.hoverToPlay()) {\n e.target.play();\n }\n }\n\n handleMouseLeave = e => {\n if (this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }\n\n hoverToPlay () {\n return !autoPlayGif && ['gifv', 'video'].indexOf(this.props.attachment.get('type')) !== -1;\n }\n\n handleClick = e => {\n if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n\n if (this.state.visible) {\n this.props.onOpenMedia(this.props.attachment);\n } else {\n this.setState({ visible: true });\n }\n }\n }\n\n render () {\n const { attachment, displayWidth } = this.props;\n const { visible, loaded } = this.state;\n\n const width = `${Math.floor((displayWidth - 4) / 3) - 4}px`;\n const height = width;\n const status = attachment.get('status');\n const title = status.get('spoiler_text') || attachment.get('description');\n\n let thumbnail = '';\n\n if (attachment.get('type') === 'unknown') {\n // Skip\n } else if (attachment.get('type') === 'audio') {\n thumbnail = (\n \n