{"version":3,"sources":["webpack:///./app/javascript/material-icons/400-24px/visibility.svg","webpack:///./app/javascript/material-icons/400-24px/bookmark-fill.svg?4516","webpack:///./app/javascript/mastodon/features/status/components/action_bar.jsx","webpack:///./app/javascript/mastodon/components/edited_timestamp/containers/dropdown_menu_container.js","webpack:///./app/javascript/mastodon/components/edited_timestamp/index.jsx","webpack:///./app/javascript/mastodon/features/status/components/detailed_status.jsx","webpack:///./app/javascript/mastodon/features/status/index.jsx"],"names":["_path","_extends","Object","assign","bind","n","e","arguments","length","t","r","hasOwnProperty","call","apply","_ref","title","titleId","props","xmlns","height","viewBox","width","id","d","messages","defineMessages","delete","defaultMessage","redraft","edit","direct","mention","reply","reblog","reblog_private","cancel_reblog_private","cannot_reblog","favourite","bookmark","more","mute","muteConversation","unmuteConversation","block","report","share","pin","unpin","embed","admin_account","admin_status","admin_domain","copy","blockDomain","unblockDomain","unmute","unblock","openOriginalPage","ActionBar","PureComponent","constructor","_defineProperty","this","onReply","status","onReblog","onFavourite","onBookmark","onDelete","onEdit","onDirect","get","onMention","relationship","onMute","onUnmute","account","onBlock","onUnblock","onBlockDomain","onUnblockDomain","split","onMuteConversation","onReport","onPin","navigator","url","onEmbed","clipboard","writeText","render","intl","signedIn","permissions","identity","publicStatus","includes","pinnableStatus","mutingConversation","writtenByMe","getIn","me","isRemote","replyIcon","replyIconComponent","menu","push","text","formatMessage","href","action","handleCopy","handleShare","handleEmbed","handlePinClick","handleConversationMuteClick","handleEditClick","handleDeleteClick","dangerous","handleRedraftClick","name","handleMentionClick","handleMuteClick","handleBlockClick","handleReport","domain","handleUnblockDomain","handleBlockDomain","PERMISSION_MANAGE_USERS","PERMISSION_MANAGE_FEDERATION","ReplyIcon","ReplyAllIcon","reblogPrivate","reblogTitle","reblogIconComponent","RepeatActiveIcon","RepeatPrivateActiveIcon","RepeatIcon","RepeatPrivateIcon","RepeatDisabledIcon","_jsx","className","IconButton","icon","iconComponent","onClick","handleReplyClick","classNames","disabled","active","handleReblogClick","animate","StarIcon","StarBorderIcon","handleFavouriteClick","BookmarkIcon","BookmarkBorderIcon","handleBookmarkClick","DropdownMenuContainer","MoreHorizIcon","items","direction","connect","mapStateToProps","state","withIdentity","injectIntl","statusId","openDropdownId","dropdownMenu","openId","openedViaKeyboard","keyboard","loading","mapDispatchToProps","dispatch","_ref2","onOpen","onItemClick","fetchHistory","openDropdownMenu","onClose","closeDropdownMenu","DropdownMenu","EditedTimestamp","item","i","FormattedMessage","values","count","size","index","onKeyPress","formattedDate","RelativeTimestamp","timestamp","short","formattedName","InlineAccount","accountId","label","date","renderItem","scrollable","renderHeader","handleItemClick","formatDate","month","day","hour","minute","openModal","modalType","modalProps","DetailedStatus","ImmutablePureComponent","button","ctrlKey","metaKey","history","preventDefault","stopPropagation","options","onOpenVideo","onToggleHidden","c","node","_measureHeight","target","nodeName","parentNode","window","open","onTranslate","heightJustChanged","measureHeight","scheduleIdleTask","setState","Math","ceil","scrollHeight","onHeightChange","componentDidUpdate","prevProps","prevState","_properStatus","getAttachmentAspectRatio","attachments","outerStyle","boxSizing","compact","pictureInPicture","media","applicationLink","reblogLink","favouriteLink","language","PictureInPicturePlaceholder","aspectRatio","attachment","description","Audio","src","alt","lang","duration","poster","backgroundColor","foregroundColor","accentColor","sensitive","visible","showMedia","blurhash","onToggleVisibility","onToggleMediaVisibility","Video","preview","frameRate","handleOpenVideo","MediaGallery","standalone","onOpenMedia","Card","card","_jsxs","_Fragment","children","rel","visibilityLink","VisibilityIcon","visibility","Link","to","AnimatedNumber","value","handleModalLink","statusContentProps","hashtagBar","getHashtagBarForStatus","expanded","style","ref","setRef","Icon","AlternateEmailIcon","handleAccountClick","Avatar","DisplayName","localDomain","ContentWarning","handleExpandedToggle","_jsx2","StatusContent","handleTranslate","FormattedDate","Date","year","ImmutablePropTypes","map","PropTypes","func","isRequired","bool","string","contains","inUse","available","WithRouterPropTypes","withRouter","revealAll","hideAll","statusTitleWithAttachments","detailedStatus","titleFromStatus","displayName","username","user","trim","attachmentCount","truncate","str","num","arr","Array","from","slice","join","Status","_this","fullscreen","defaultMediaVisibility","loadedStatusId","undefined","toggleFavourite","type","askReplyConfirmation","replyCompose","toggleReblog","shiftKey","unbookmark","withRedraft","deleteModal","deleteStatus","editStatus","directCompose","mentionCompose","startTime","handleOpenMedia","initMuteModal","unmuteStatus","muteStatus","revealStatus","hideStatus","ancestorsIds","descendantsIds","statusIds","concat","toJS","undoStatusTranslation","translateStatus","initBlockModal","initReport","unmuteAccount","unblockAccount","initDomainBlockModal","handleMoveUp","handleMoveDown","handleToggleHidden","handleToggleMediaVisibility","_selectChild","indexOf","statusNode","isFullscreen","prevRouterProps","_ref3","_location$state","_prevRouterProps$loca","location","mastodonModalKey","offsetTop","UNSAFE_componentWillMount","fetchStatus","params","componentDidMount","attachFullscreenListener","onFullScreenChange","_scrollStatusIntoView","UNSAFE_componentWillReceiveProps","nextProps","align_top","container","element","querySelectorAll","scrollTop","scrollIntoView","clientHeight","offsetHeight","focus","renderChildren","list","ancestors","StatusContainer","onMoveUp","onMoveDown","contextType","previousId","nextId","rootId","multiColumn","requestIdleCallback","_this$statusNode","_document$querySelect","offset","document","querySelector","getBoundingClientRect","bottom","scrollingElement","body","scrollBy","_prevProps$status","componentWillUnmount","detachFullscreenListener","descendants","remoteHint","isLoading","Column","LoadingIndicator","BundleColumnError","errorType","isLocal","isIndexable","TimelineHint","message","handlers","moveUp","handleHotkeyMoveUp","moveDown","handleHotkeyMoveDown","handleHotkeyReply","handleHotkeyFavourite","boost","handleHotkeyBoost","handleHotkeyMention","openProfile","handleHotkeyOpenProfile","toggleHidden","handleHotkeyToggleHidden","toggleSensitive","handleHotkeyToggleSensitive","openMedia","handleHotkeyOpenMedia","bindToDocument","ColumnHeader","showBackButton","extraButton","handleToggleAll","VisibilityOffIcon","ScrollContainer","scrollKey","shouldUpdateScroll","setContainerRef","HotKeys","tabIndex","textForScreenReader","setStatusRef","handleDirectClick","handleUnmuteClick","handleUnblockClick","handleBlockDomainClick","handleUnblockDomainClick","handlePin","Helmet","content","identityContextPropShape","object","makeMapStateToProps","getStatus","makeGetStatus","getPictureInPicture","makeGetPictureInPicture","getAncestorsIds","createSelector","_","inReplyTos","Immutable","List","withMutations","mutable","unshift","getDescendantsIds","contextReplies","statuses","ids","pop","replies","reverse","forEach","insertAt","findIndex","idx","splice"],"mappings":"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","file":"js/features/status-31cb3afbad8869545e83.chunk.js","sourcesContent":["var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgVisibility(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M480-320q75 0 127.5-52.5T660-500q0-75-52.5-127.5T480-680q-75 0-127.5 52.5T300-500q0 75 52.5 127.5T480-320Zm0-72q-45 0-76.5-31.5T372-500q0-45 31.5-76.5T480-608q45 0 76.5 31.5T588-500q0 45-31.5 76.5T480-392Zm0 192q-146 0-266-81.5T40-500q54-137 174-218.5T480-800q146 0 266 81.5T920-500q-54 137-174 218.5T480-200Zm0-300Zm0 220q113 0 207.5-59.5T832-500q-50-101-144.5-160.5T480-720q-113 0-207.5 59.5T128-500q50 101 144.5 160.5T480-280Z\"\n })));\n}\nexport default SvgVisibility;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBookmarkFill(_ref) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n height: 24,\n viewBox: \"0 -960 960 960\",\n width: 24,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240 200-120Z\"\n })));\n}\nexport default SvgBookmarkFill;","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport classNames from 'classnames';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\n\nimport BookmarkIcon from '@/material-icons/400-24px/bookmark-fill.svg?react';\nimport BookmarkBorderIcon from '@/material-icons/400-24px/bookmark.svg?react';\nimport MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';\nimport RepeatIcon from '@/material-icons/400-24px/repeat.svg?react';\nimport ReplyIcon from '@/material-icons/400-24px/reply.svg?react';\nimport ReplyAllIcon from '@/material-icons/400-24px/reply_all.svg?react';\nimport StarIcon from '@/material-icons/400-24px/star-fill.svg?react';\nimport StarBorderIcon from '@/material-icons/400-24px/star.svg?react';\nimport RepeatActiveIcon from '@/svg-icons/repeat_active.svg?react';\nimport RepeatDisabledIcon from '@/svg-icons/repeat_disabled.svg?react';\nimport RepeatPrivateIcon from '@/svg-icons/repeat_private.svg?react';\nimport RepeatPrivateActiveIcon from '@/svg-icons/repeat_private_active.svg?react';\nimport { identityContextPropShape, withIdentity } from 'mastodon/identity_context';\nimport { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions';\n\nimport { IconButton } from '../../../components/icon_button';\nimport DropdownMenuContainer from '../../../containers/dropdown_menu_container';\nimport { me } from '../../../initial_state';\n\nconst messages = defineMessages({\n delete: { id: 'status.delete', defaultMessage: 'Delete' },\n redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' },\n edit: { id: 'status.edit', defaultMessage: 'Edit' },\n direct: { id: 'status.direct', defaultMessage: 'Privately mention @{name}' },\n mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },\n reply: { id: 'status.reply', defaultMessage: 'Reply' },\n reblog: { id: 'status.reblog', defaultMessage: 'Boost' },\n reblog_private: { id: 'status.reblog_private', defaultMessage: 'Boost with original visibility' },\n cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Unboost' },\n cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },\n favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },\n bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },\n more: { id: 'status.more', defaultMessage: 'More' },\n mute: { id: 'status.mute', defaultMessage: 'Mute @{name}' },\n muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' },\n unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' },\n block: { id: 'status.block', defaultMessage: 'Block @{name}' },\n report: { id: 'status.report', defaultMessage: 'Report @{name}' },\n share: { id: 'status.share', defaultMessage: 'Share' },\n pin: { id: 'status.pin', defaultMessage: 'Pin on profile' },\n unpin: { id: 'status.unpin', defaultMessage: 'Unpin from profile' },\n embed: { id: 'status.embed', defaultMessage: 'Embed' },\n admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },\n admin_status: { id: 'status.admin_status', defaultMessage: 'Open this post in the moderation interface' },\n admin_domain: { id: 'status.admin_domain', defaultMessage: 'Open moderation interface for {domain}' },\n copy: { id: 'status.copy', defaultMessage: 'Copy link to post' },\n blockDomain: { id: 'account.block_domain', defaultMessage: 'Block domain {domain}' },\n unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' },\n unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },\n unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },\n openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' },\n});\n\nconst mapStateToProps = (state, { status }) => ({\n relationship: state.getIn(['relationships', status.getIn(['account', 'id'])]),\n});\n\nclass ActionBar extends PureComponent {\n static propTypes = {\n identity: identityContextPropShape,\n status: ImmutablePropTypes.map.isRequired,\n relationship: ImmutablePropTypes.record,\n onReply: PropTypes.func.isRequired,\n onReblog: PropTypes.func.isRequired,\n onFavourite: PropTypes.func.isRequired,\n onBookmark: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n onEdit: PropTypes.func.isRequired,\n onDirect: PropTypes.func.isRequired,\n onMention: PropTypes.func.isRequired,\n onMute: PropTypes.func,\n onUnmute: PropTypes.func,\n onBlock: PropTypes.func,\n onUnblock: PropTypes.func,\n onBlockDomain: PropTypes.func,\n onUnblockDomain: PropTypes.func,\n onMuteConversation: PropTypes.func,\n onReport: PropTypes.func,\n onPin: PropTypes.func,\n onEmbed: PropTypes.func,\n intl: PropTypes.object.isRequired,\n };\n\n handleReplyClick = () => {\n this.props.onReply(this.props.status);\n };\n\n handleReblogClick = (e) => {\n this.props.onReblog(this.props.status, e);\n };\n\n handleFavouriteClick = () => {\n this.props.onFavourite(this.props.status);\n };\n\n handleBookmarkClick = (e) => {\n this.props.onBookmark(this.props.status, e);\n };\n\n handleDeleteClick = () => {\n this.props.onDelete(this.props.status);\n };\n\n handleRedraftClick = () => {\n this.props.onDelete(this.props.status, true);\n };\n\n handleEditClick = () => {\n this.props.onEdit(this.props.status);\n };\n\n handleDirectClick = () => {\n this.props.onDirect(this.props.status.get('account'));\n };\n\n handleMentionClick = () => {\n this.props.onMention(this.props.status.get('account'));\n };\n\n handleMuteClick = () => {\n const { status, relationship, onMute, onUnmute } = this.props;\n const account = status.get('account');\n\n if (relationship && relationship.get('muting')) {\n onUnmute(account);\n } else {\n onMute(account);\n }\n };\n\n handleBlockClick = () => {\n const { status, relationship, onBlock, onUnblock } = this.props;\n const account = status.get('account');\n\n if (relationship && relationship.get('blocking')) {\n onUnblock(account);\n } else {\n onBlock(status);\n }\n };\n\n handleBlockDomain = () => {\n const { status, onBlockDomain } = this.props;\n const account = status.get('account');\n\n onBlockDomain(account);\n };\n\n handleUnblockDomain = () => {\n const { status, onUnblockDomain } = this.props;\n const account = status.get('account');\n\n onUnblockDomain(account.get('acct').split('@')[1]);\n };\n\n handleConversationMuteClick = () => {\n this.props.onMuteConversation(this.props.status);\n };\n\n handleReport = () => {\n this.props.onReport(this.props.status);\n };\n\n handlePinClick = () => {\n this.props.onPin(this.props.status);\n };\n\n handleShare = () => {\n navigator.share({\n url: this.props.status.get('url'),\n });\n };\n\n handleEmbed = () => {\n this.props.onEmbed(this.props.status);\n };\n\n handleCopy = () => {\n const url = this.props.status.get('url');\n navigator.clipboard.writeText(url);\n };\n\n render () {\n const { status, relationship, intl } = this.props;\n const { signedIn, permissions } = this.props.identity;\n\n const publicStatus = ['public', 'unlisted'].includes(status.get('visibility'));\n const pinnableStatus = ['public', 'unlisted', 'private'].includes(status.get('visibility'));\n const mutingConversation = status.get('muted');\n const account = status.get('account');\n const writtenByMe = status.getIn(['account', 'id']) === me;\n const isRemote = status.getIn(['account', 'username']) !== status.getIn(['account', 'acct']);\n\n let menu = [];\n\n if (publicStatus && isRemote) {\n menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: status.get('url') });\n }\n\n menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy });\n\n if (publicStatus && 'share' in navigator) {\n menu.push({ text: intl.formatMessage(messages.share), action: this.handleShare });\n }\n\n if (publicStatus && (signedIn || !isRemote)) {\n menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });\n }\n\n if (signedIn) {\n menu.push(null);\n\n if (writtenByMe) {\n if (pinnableStatus) {\n menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });\n menu.push(null);\n }\n\n menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick });\n menu.push(null);\n menu.push({ text: intl.formatMessage(messages.edit), action: this.handleEditClick });\n menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick, dangerous: true });\n menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick, dangerous: true });\n } else {\n menu.push({ text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), action: this.handleMentionClick });\n menu.push(null);\n\n if (relationship && relationship.get('muting')) {\n menu.push({ text: intl.formatMessage(messages.unmute, { name: account.get('username') }), action: this.handleMuteClick });\n } else {\n menu.push({ text: intl.formatMessage(messages.mute, { name: account.get('username') }), action: this.handleMuteClick, dangerous: true });\n }\n\n if (relationship && relationship.get('blocking')) {\n menu.push({ text: intl.formatMessage(messages.unblock, { name: account.get('username') }), action: this.handleBlockClick });\n } else {\n menu.push({ text: intl.formatMessage(messages.block, { name: account.get('username') }), action: this.handleBlockClick, dangerous: true });\n }\n\n menu.push({ text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), action: this.handleReport, dangerous: true });\n\n if (account.get('acct') !== account.get('username')) {\n const domain = account.get('acct').split('@')[1];\n\n menu.push(null);\n\n if (relationship && relationship.get('domain_blocking')) {\n menu.push({ text: intl.formatMessage(messages.unblockDomain, { domain }), action: this.handleUnblockDomain });\n } else {\n menu.push({ text: intl.formatMessage(messages.blockDomain, { domain }), action: this.handleBlockDomain, dangerous: true });\n }\n }\n\n if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS || (isRemote && (permissions & PERMISSION_MANAGE_FEDERATION) === PERMISSION_MANAGE_FEDERATION)) {\n menu.push(null);\n if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) {\n menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` });\n menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` });\n }\n if (isRemote && (permissions & PERMISSION_MANAGE_FEDERATION) === PERMISSION_MANAGE_FEDERATION) {\n const domain = account.get('acct').split('@')[1];\n menu.push({ text: intl.formatMessage(messages.admin_domain, { domain: domain }), href: `/admin/instances/${domain}` });\n }\n }\n }\n }\n\n let replyIcon;\n let replyIconComponent;\n\n if (status.get('in_reply_to_id', null) === null) {\n replyIcon = 'reply';\n replyIconComponent = ReplyIcon;\n } else {\n replyIcon = 'reply-all';\n replyIconComponent = ReplyAllIcon;\n }\n\n const reblogPrivate = status.getIn(['account', 'id']) === me && status.get('visibility') === 'private';\n\n let reblogTitle, reblogIconComponent;\n\n if (status.get('reblogged')) {\n reblogTitle = intl.formatMessage(messages.cancel_reblog_private);\n reblogIconComponent = publicStatus ? RepeatActiveIcon : RepeatPrivateActiveIcon;\n } else if (publicStatus) {\n reblogTitle = intl.formatMessage(messages.reblog);\n reblogIconComponent = RepeatIcon;\n } else if (reblogPrivate) {\n reblogTitle = intl.formatMessage(messages.reblog_private);\n reblogIconComponent = RepeatPrivateIcon;\n } else {\n reblogTitle = intl.formatMessage(messages.cannot_reblog);\n reblogIconComponent = RepeatDisabledIcon;\n }\n\n return (\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n );\n }\n\n}\n\nexport default connect(mapStateToProps)(withIdentity(injectIntl(ActionBar)));\n","import { connect } from 'react-redux';\n\nimport { openDropdownMenu, closeDropdownMenu } from 'mastodon/actions/dropdown_menu';\nimport { fetchHistory } from 'mastodon/actions/history';\nimport DropdownMenu from 'mastodon/components/dropdown_menu';\n\n/**\n *\n * @param {import('mastodon/store').RootState} state\n * @param {*} props\n */\nconst mapStateToProps = (state, { statusId }) => ({\n openDropdownId: state.dropdownMenu.openId,\n openedViaKeyboard: state.dropdownMenu.keyboard,\n items: state.getIn(['history', statusId, 'items']),\n loading: state.getIn(['history', statusId, 'loading']),\n});\n\nconst mapDispatchToProps = (dispatch, { statusId }) => ({\n\n onOpen (id, onItemClick, keyboard) {\n dispatch(fetchHistory(statusId));\n dispatch(openDropdownMenu({ id, keyboard }));\n },\n\n onClose (id) {\n dispatch(closeDropdownMenu({ id }));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DropdownMenu);\n","import PropTypes from 'prop-types';\nimport { PureComponent } from 'react';\n\nimport { FormattedMessage, injectIntl } from 'react-intl';\n\nimport { connect } from 'react-redux';\n\nimport { openModal } from 'mastodon/actions/modal';\nimport InlineAccount from 'mastodon/components/inline_account';\nimport { RelativeTimestamp } from 'mastodon/components/relative_timestamp';\n\nimport DropdownMenu from './containers/dropdown_menu_container';\n\nconst mapDispatchToProps = (dispatch, { statusId }) => ({\n\n onItemClick (index) {\n dispatch(openModal({\n modalType: 'COMPARE_HISTORY',\n modalProps: { index, statusId },\n }));\n },\n\n});\n\nclass EditedTimestamp extends PureComponent {\n\n static propTypes = {\n statusId: PropTypes.string.isRequired,\n timestamp: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired,\n onItemClick: PropTypes.func.isRequired,\n };\n\n handleItemClick = (item, i) => {\n const { onItemClick } = this.props;\n onItemClick(i);\n };\n\n renderHeader = items => {\n return (\n \n );\n };\n\n renderItem = (item, index, { onClick, onKeyPress }) => {\n const formattedDate = ;\n const formattedName = ;\n\n const label = item.get('original') ? (\n \n ) : (\n \n );\n\n return (\n
  • \n \n
  • \n );\n };\n\n render () {\n const { timestamp, intl, statusId } = this.props;\n\n return (\n \n \n \n );\n }\n\n}\n\nexport default connect(null, mapDispatchToProps)(injectIntl(EditedTimestamp));\n","import PropTypes from 'prop-types';\n\nimport { FormattedDate, FormattedMessage } from 'react-intl';\n\nimport classNames from 'classnames';\nimport { Link, withRouter } from 'react-router-dom';\n\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nimport AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';\nimport { AnimatedNumber } from 'mastodon/components/animated_number';\nimport { ContentWarning } from 'mastodon/components/content_warning';\nimport EditedTimestamp from 'mastodon/components/edited_timestamp';\nimport { getHashtagBarForStatus } from 'mastodon/components/hashtag_bar';\nimport { Icon } from 'mastodon/components/icon';\nimport PictureInPicturePlaceholder from 'mastodon/components/picture_in_picture_placeholder';\nimport { VisibilityIcon } from 'mastodon/components/visibility_icon';\nimport { WithRouterPropTypes } from 'mastodon/utils/react_router';\n\nimport { Avatar } from '../../../components/avatar';\nimport { DisplayName } from '../../../components/display_name';\nimport MediaGallery from '../../../components/media_gallery';\nimport StatusContent from '../../../components/status_content';\nimport Audio from '../../audio';\nimport scheduleIdleTask from '../../ui/util/schedule_idle_task';\nimport Video from '../../video';\n\nimport Card from './card';\n\nclass DetailedStatus extends ImmutablePureComponent {\n\n static propTypes = {\n status: ImmutablePropTypes.map,\n onOpenMedia: PropTypes.func.isRequired,\n onOpenVideo: PropTypes.func.isRequired,\n onToggleHidden: PropTypes.func.isRequired,\n onTranslate: PropTypes.func.isRequired,\n measureHeight: PropTypes.bool,\n onHeightChange: PropTypes.func,\n domain: PropTypes.string.isRequired,\n compact: PropTypes.bool,\n showMedia: PropTypes.bool,\n pictureInPicture: ImmutablePropTypes.contains({\n inUse: PropTypes.bool,\n available: PropTypes.bool,\n }),\n onToggleMediaVisibility: PropTypes.func,\n ...WithRouterPropTypes,\n };\n\n state = {\n height: null,\n };\n\n handleAccountClick = (e) => {\n if (e.button === 0 && !(e.ctrlKey || e.metaKey) && this.props.history) {\n e.preventDefault();\n this.props.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);\n }\n\n e.stopPropagation();\n };\n\n handleOpenVideo = (options) => {\n this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options);\n };\n\n handleExpandedToggle = () => {\n this.props.onToggleHidden(this.props.status);\n };\n\n _measureHeight (heightJustChanged) {\n if (this.props.measureHeight && this.node) {\n scheduleIdleTask(() => this.node && this.setState({ height: Math.ceil(this.node.scrollHeight) + 1 }));\n\n if (this.props.onHeightChange && heightJustChanged) {\n this.props.onHeightChange();\n }\n }\n }\n\n setRef = c => {\n this.node = c;\n this._measureHeight();\n };\n\n componentDidUpdate (prevProps, prevState) {\n this._measureHeight(prevState.height !== this.state.height);\n }\n\n handleModalLink = e => {\n e.preventDefault();\n\n let href;\n\n if (e.target.nodeName !== 'A') {\n href = e.target.parentNode.href;\n } else {\n href = e.target.href;\n }\n\n window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');\n };\n\n handleTranslate = () => {\n const { onTranslate, status } = this.props;\n onTranslate(status);\n };\n\n _properStatus () {\n const { status } = this.props;\n\n if (status.get('reblog', null) !== null && typeof status.get('reblog') === 'object') {\n return status.get('reblog');\n } else {\n return status;\n }\n }\n\n getAttachmentAspectRatio () {\n const attachments = this._properStatus().get('media_attachments');\n\n if (attachments.getIn([0, 'type']) === 'video') {\n return `${attachments.getIn([0, 'meta', 'original', 'width'])} / ${attachments.getIn([0, 'meta', 'original', 'height'])}`;\n } else if (attachments.getIn([0, 'type']) === 'audio') {\n return '16 / 9';\n } else {\n return (attachments.size === 1 && attachments.getIn([0, 'meta', 'small', 'aspect'])) ? attachments.getIn([0, 'meta', 'small', 'aspect']) : '3 / 2';\n }\n }\n\n render () {\n const status = this._properStatus();\n const outerStyle = { boxSizing: 'border-box' };\n const { compact, pictureInPicture } = this.props;\n\n if (!status) {\n return null;\n }\n\n let media = '';\n let applicationLink = '';\n let reblogLink = '';\n let favouriteLink = '';\n\n if (this.props.measureHeight) {\n outerStyle.height = `${this.state.height}px`;\n }\n\n const language = status.getIn(['translation', 'language']) || status.get('language');\n\n if (pictureInPicture.get('inUse')) {\n media = ;\n } else if (status.get('media_attachments').size > 0) {\n if (status.getIn(['media_attachments', 0, 'type']) === 'audio') {\n const attachment = status.getIn(['media_attachments', 0]);\n const description = attachment.getIn(['translation', 'description']) || attachment.get('description');\n\n media = (\n \n );\n } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {\n const attachment = status.getIn(['media_attachments', 0]);\n const description = attachment.getIn(['translation', 'description']) || attachment.get('description');\n\n media = (\n \n );\n } else {\n media = (\n \n );\n }\n } else if (status.get('spoiler_text').length === 0) {\n media = ;\n }\n\n if (status.get('application')) {\n applicationLink = <>·{status.getIn(['application', 'name'])};\n }\n\n const visibilityLink = <>·;\n\n if (['private', 'direct'].includes(status.get('visibility'))) {\n reblogLink = '';\n } else if (this.props.history) {\n reblogLink = (\n \n \n \n \n \n \n );\n } else {\n reblogLink = (\n \n \n \n \n \n \n );\n }\n\n if (this.props.history) {\n favouriteLink = (\n \n \n \n \n \n \n );\n } else {\n favouriteLink = (\n \n \n \n \n \n \n );\n }\n\n const {statusContentProps, hashtagBar} = getHashtagBarForStatus(status);\n const expanded = !status.get('hidden') || status.get('spoiler_text').length === 0;\n\n return (\n
    \n
    \n {status.get('visibility') === 'direct' && (\n
    \n
    \n \n
    \n )}\n \n
    \n \n
    \n\n {status.get('spoiler_text').length > 0 && }\n\n {expanded && (\n <>\n \n\n {media}\n {hashtagBar}\n \n )}\n\n
    \n
    \n \n \n \n\n {visibilityLink}\n\n {applicationLink}\n
    \n\n {status.get('edited_at') &&
    }\n\n
    \n {reblogLink}\n {reblogLink && <>·}\n {favouriteLink}\n
    \n
    \n
    \n
    \n );\n }\n\n}\n\nexport default withRouter(DetailedStatus);\n","import PropTypes from 'prop-types';\n\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\n\nimport classNames from 'classnames';\nimport { Helmet } from 'react-helmet';\nimport { withRouter } from 'react-router-dom';\n\nimport { createSelector } from '@reduxjs/toolkit';\nimport Immutable from 'immutable';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { connect } from 'react-redux';\n\nimport { HotKeys } from 'react-hotkeys';\n\nimport VisibilityIcon from '@/material-icons/400-24px/visibility.svg?react';\nimport VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react';\nimport { Icon } from 'mastodon/components/icon';\nimport { LoadingIndicator } from 'mastodon/components/loading_indicator';\nimport { TimelineHint } from 'mastodon/components/timeline_hint';\nimport ScrollContainer from 'mastodon/containers/scroll_container';\nimport BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';\nimport { identityContextPropShape, withIdentity } from 'mastodon/identity_context';\nimport { WithRouterPropTypes } from 'mastodon/utils/react_router';\n\nimport {\n unblockAccount,\n unmuteAccount,\n} from '../../actions/accounts';\nimport { initBlockModal } from '../../actions/blocks';\nimport {\n replyCompose,\n mentionCompose,\n directCompose,\n} from '../../actions/compose';\nimport {\n initDomainBlockModal,\n unblockDomain,\n} from '../../actions/domain_blocks';\nimport {\n toggleFavourite,\n bookmark,\n unbookmark,\n toggleReblog,\n pin,\n unpin,\n} from '../../actions/interactions';\nimport { openModal } from '../../actions/modal';\nimport { initMuteModal } from '../../actions/mutes';\nimport { initReport } from '../../actions/reports';\nimport {\n fetchStatus,\n muteStatus,\n unmuteStatus,\n deleteStatus,\n editStatus,\n hideStatus,\n revealStatus,\n translateStatus,\n undoStatusTranslation,\n} from '../../actions/statuses';\nimport ColumnHeader from '../../components/column_header';\nimport { textForScreenReader, defaultMediaVisibility } from '../../components/status';\nimport StatusContainer from '../../containers/status_container';\nimport { deleteModal } from '../../initial_state';\nimport { makeGetStatus, makeGetPictureInPicture } from '../../selectors';\nimport Column from '../ui/components/column';\nimport { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';\n\nimport ActionBar from './components/action_bar';\nimport DetailedStatus from './components/detailed_status';\n\n\nconst messages = defineMessages({\n revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },\n hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' },\n statusTitleWithAttachments: { id: 'status.title.with_attachments', defaultMessage: '{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}' },\n detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },\n});\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n const getPictureInPicture = makeGetPictureInPicture();\n\n const getAncestorsIds = createSelector([\n (_, { id }) => id,\n state => state.getIn(['contexts', 'inReplyTos']),\n ], (statusId, inReplyTos) => {\n let ancestorsIds = Immutable.List();\n ancestorsIds = ancestorsIds.withMutations(mutable => {\n let id = statusId;\n\n while (id && !mutable.includes(id)) {\n mutable.unshift(id);\n id = inReplyTos.get(id);\n }\n });\n\n return ancestorsIds;\n });\n\n const getDescendantsIds = createSelector([\n (_, { id }) => id,\n state => state.getIn(['contexts', 'replies']),\n state => state.get('statuses'),\n ], (statusId, contextReplies, statuses) => {\n let descendantsIds = [];\n const ids = [statusId];\n\n while (ids.length > 0) {\n let id = ids.pop();\n const replies = contextReplies.get(id);\n\n if (statusId !== id) {\n descendantsIds.push(id);\n }\n\n if (replies) {\n replies.reverse().forEach(reply => {\n if (!ids.includes(reply) && !descendantsIds.includes(reply) && statusId !== reply) ids.push(reply);\n });\n }\n }\n\n let insertAt = descendantsIds.findIndex((id) => statuses.get(id).get('in_reply_to_account_id') !== statuses.get(id).get('account'));\n if (insertAt !== -1) {\n descendantsIds.forEach((id, idx) => {\n if (idx > insertAt && statuses.get(id).get('in_reply_to_account_id') === statuses.get(id).get('account')) {\n descendantsIds.splice(idx, 1);\n descendantsIds.splice(insertAt, 0, id);\n insertAt += 1;\n }\n });\n }\n\n return Immutable.List(descendantsIds);\n });\n\n const mapStateToProps = (state, props) => {\n const status = getStatus(state, { id: props.params.statusId });\n\n let ancestorsIds = Immutable.List();\n let descendantsIds = Immutable.List();\n\n if (status) {\n ancestorsIds = getAncestorsIds(state, { id: status.get('in_reply_to_id') });\n descendantsIds = getDescendantsIds(state, { id: status.get('id') });\n }\n\n return {\n isLoading: state.getIn(['statuses', props.params.statusId, 'isLoading']),\n status,\n ancestorsIds,\n descendantsIds,\n askReplyConfirmation: state.getIn(['compose', 'text']).trim().length !== 0,\n domain: state.getIn(['meta', 'domain']),\n pictureInPicture: getPictureInPicture(state, { id: props.params.statusId }),\n };\n };\n\n return mapStateToProps;\n};\n\nconst truncate = (str, num) => {\n const arr = Array.from(str);\n if (arr.length > num) {\n return arr.slice(0, num).join('') + '…';\n } else {\n return str;\n }\n};\n\nconst titleFromStatus = (intl, status) => {\n const displayName = status.getIn(['account', 'display_name']);\n const username = status.getIn(['account', 'username']);\n const user = displayName.trim().length === 0 ? username : displayName;\n const text = status.get('search_index');\n const attachmentCount = status.get('media_attachments').size;\n\n return text ? `${user}: \"${truncate(text, 30)}\"` : intl.formatMessage(messages.statusTitleWithAttachments, { user, attachmentCount });\n};\n\nclass Status extends ImmutablePureComponent {\n static propTypes = {\n identity: identityContextPropShape,\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n status: ImmutablePropTypes.map,\n isLoading: PropTypes.bool,\n ancestorsIds: ImmutablePropTypes.list.isRequired,\n descendantsIds: ImmutablePropTypes.list.isRequired,\n intl: PropTypes.object.isRequired,\n askReplyConfirmation: PropTypes.bool,\n multiColumn: PropTypes.bool,\n domain: PropTypes.string.isRequired,\n pictureInPicture: ImmutablePropTypes.contains({\n inUse: PropTypes.bool,\n available: PropTypes.bool,\n }),\n ...WithRouterPropTypes\n };\n\n state = {\n fullscreen: false,\n showMedia: defaultMediaVisibility(this.props.status),\n loadedStatusId: undefined,\n };\n\n UNSAFE_componentWillMount () {\n this.props.dispatch(fetchStatus(this.props.params.statusId));\n }\n\n componentDidMount () {\n attachFullscreenListener(this.onFullScreenChange);\n\n this._scrollStatusIntoView();\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {\n this.props.dispatch(fetchStatus(nextProps.params.statusId));\n }\n\n if (nextProps.status && nextProps.status.get('id') !== this.state.loadedStatusId) {\n this.setState({ showMedia: defaultMediaVisibility(nextProps.status), loadedStatusId: nextProps.status.get('id') });\n }\n }\n\n handleToggleMediaVisibility = () => {\n this.setState({ showMedia: !this.state.showMedia });\n };\n\n handleFavouriteClick = (status) => {\n const { dispatch } = this.props;\n const { signedIn } = this.props.identity;\n\n if (signedIn) {\n dispatch(toggleFavourite(status.get('id')));\n } else {\n dispatch(openModal({\n modalType: 'INTERACTION',\n modalProps: {\n type: 'favourite',\n accountId: status.getIn(['account', 'id']),\n url: status.get('uri'),\n },\n }));\n }\n };\n\n handlePin = (status) => {\n if (status.get('pinned')) {\n this.props.dispatch(unpin(status));\n } else {\n this.props.dispatch(pin(status));\n }\n };\n\n handleReplyClick = (status) => {\n const { askReplyConfirmation, dispatch } = this.props;\n const { signedIn } = this.props.identity;\n\n if (signedIn) {\n if (askReplyConfirmation) {\n dispatch(openModal({ modalType: 'CONFIRM_REPLY', modalProps: { status } }));\n } else {\n dispatch(replyCompose(status));\n }\n } else {\n dispatch(openModal({\n modalType: 'INTERACTION',\n modalProps: {\n type: 'reply',\n accountId: status.getIn(['account', 'id']),\n url: status.get('uri'),\n },\n }));\n }\n };\n\n handleReblogClick = (status, e) => {\n const { dispatch } = this.props;\n const { signedIn } = this.props.identity;\n\n if (signedIn) {\n dispatch(toggleReblog(status.get('id'), e && e.shiftKey));\n } else {\n dispatch(openModal({\n modalType: 'INTERACTION',\n modalProps: {\n type: 'reblog',\n accountId: status.getIn(['account', 'id']),\n url: status.get('uri'),\n },\n }));\n }\n };\n\n handleBookmarkClick = (status) => {\n if (status.get('bookmarked')) {\n this.props.dispatch(unbookmark(status));\n } else {\n this.props.dispatch(bookmark(status));\n }\n };\n\n handleDeleteClick = (status, withRedraft = false) => {\n const { dispatch } = this.props;\n\n if (!deleteModal) {\n dispatch(deleteStatus(status.get('id'), withRedraft));\n } else {\n dispatch(openModal({ modalType: 'CONFIRM_DELETE_STATUS', modalProps: { statusId: status.get('id'), withRedraft } }));\n }\n };\n\n handleEditClick = (status) => {\n const { dispatch, askReplyConfirmation } = this.props;\n\n if (askReplyConfirmation) {\n dispatch(openModal({ modalType: 'CONFIRM_EDIT_STATUS', modalProps: { statusId: status.get('id') } }));\n } else {\n dispatch(editStatus(status.get('id')));\n }\n };\n\n handleDirectClick = (account) => {\n this.props.dispatch(directCompose(account));\n };\n\n handleMentionClick = (account) => {\n this.props.dispatch(mentionCompose(account));\n };\n\n handleOpenMedia = (media, index, lang) => {\n this.props.dispatch(openModal({\n modalType: 'MEDIA',\n modalProps: { statusId: this.props.status.get('id'), media, index, lang },\n }));\n };\n\n handleOpenVideo = (media, lang, options) => {\n this.props.dispatch(openModal({\n modalType: 'VIDEO',\n modalProps: { statusId: this.props.status.get('id'), media, lang, options },\n }));\n };\n\n handleHotkeyOpenMedia = e => {\n const { status } = this.props;\n\n e.preventDefault();\n\n if (status.get('media_attachments').size > 0) {\n if (status.getIn(['media_attachments', 0, 'type']) === 'video') {\n this.handleOpenVideo(status.getIn(['media_attachments', 0]), { startTime: 0 });\n } else {\n this.handleOpenMedia(status.get('media_attachments'), 0);\n }\n }\n };\n\n handleMuteClick = (account) => {\n this.props.dispatch(initMuteModal(account));\n };\n\n handleConversationMuteClick = (status) => {\n if (status.get('muted')) {\n this.props.dispatch(unmuteStatus(status.get('id')));\n } else {\n this.props.dispatch(muteStatus(status.get('id')));\n }\n };\n\n handleToggleHidden = (status) => {\n if (status.get('hidden')) {\n this.props.dispatch(revealStatus(status.get('id')));\n } else {\n this.props.dispatch(hideStatus(status.get('id')));\n }\n };\n\n handleToggleAll = () => {\n const { status, ancestorsIds, descendantsIds } = this.props;\n const statusIds = [status.get('id')].concat(ancestorsIds.toJS(), descendantsIds.toJS());\n\n if (status.get('hidden')) {\n this.props.dispatch(revealStatus(statusIds));\n } else {\n this.props.dispatch(hideStatus(statusIds));\n }\n };\n\n handleTranslate = status => {\n const { dispatch } = this.props;\n\n if (status.get('translation')) {\n dispatch(undoStatusTranslation(status.get('id'), status.get('poll')));\n } else {\n dispatch(translateStatus(status.get('id')));\n }\n };\n\n handleBlockClick = (status) => {\n const { dispatch } = this.props;\n const account = status.get('account');\n dispatch(initBlockModal(account));\n };\n\n handleReport = (status) => {\n this.props.dispatch(initReport(status.get('account'), status));\n };\n\n handleEmbed = (status) => {\n this.props.dispatch(openModal({\n modalType: 'EMBED',\n modalProps: { id: status.get('id') },\n }));\n };\n\n handleUnmuteClick = account => {\n this.props.dispatch(unmuteAccount(account.get('id')));\n };\n\n handleUnblockClick = account => {\n this.props.dispatch(unblockAccount(account.get('id')));\n };\n\n handleBlockDomainClick = account => {\n this.props.dispatch(initDomainBlockModal(account));\n };\n\n handleUnblockDomainClick = domain => {\n this.props.dispatch(unblockDomain(domain));\n };\n\n\n handleHotkeyMoveUp = () => {\n this.handleMoveUp(this.props.status.get('id'));\n };\n\n handleHotkeyMoveDown = () => {\n this.handleMoveDown(this.props.status.get('id'));\n };\n\n handleHotkeyReply = e => {\n e.preventDefault();\n this.handleReplyClick(this.props.status);\n };\n\n handleHotkeyFavourite = () => {\n this.handleFavouriteClick(this.props.status);\n };\n\n handleHotkeyBoost = () => {\n this.handleReblogClick(this.props.status);\n };\n\n handleHotkeyMention = e => {\n e.preventDefault();\n this.handleMentionClick(this.props.status.get('account'));\n };\n\n handleHotkeyOpenProfile = () => {\n this.props.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);\n };\n\n handleHotkeyToggleHidden = () => {\n this.handleToggleHidden(this.props.status);\n };\n\n handleHotkeyToggleSensitive = () => {\n this.handleToggleMediaVisibility();\n };\n\n handleMoveUp = id => {\n const { status, ancestorsIds, descendantsIds } = this.props;\n\n if (id === status.get('id')) {\n this._selectChild(ancestorsIds.size - 1, true);\n } else {\n let index = ancestorsIds.indexOf(id);\n\n if (index === -1) {\n index = descendantsIds.indexOf(id);\n this._selectChild(ancestorsIds.size + index, true);\n } else {\n this._selectChild(index - 1, true);\n }\n }\n };\n\n handleMoveDown = id => {\n const { status, ancestorsIds, descendantsIds } = this.props;\n\n if (id === status.get('id')) {\n this._selectChild(ancestorsIds.size + 1, false);\n } else {\n let index = ancestorsIds.indexOf(id);\n\n if (index === -1) {\n index = descendantsIds.indexOf(id);\n this._selectChild(ancestorsIds.size + index + 2, false);\n } else {\n this._selectChild(index + 1, false);\n }\n }\n };\n\n _selectChild (index, align_top) {\n const container = this.node;\n const element = container.querySelectorAll('.focusable')[index];\n\n if (element) {\n if (align_top && container.scrollTop > element.offsetTop) {\n element.scrollIntoView(true);\n } else if (!align_top && container.scrollTop + container.clientHeight < element.offsetTop + element.offsetHeight) {\n element.scrollIntoView(false);\n }\n element.focus();\n }\n }\n\n renderChildren (list, ancestors) {\n const { params: { statusId } } = this.props;\n\n return list.map((id, i) => (\n 0 ? list.get(i - 1) : undefined}\n nextId={list.get(i + 1) || (ancestors && statusId)}\n rootId={statusId}\n />\n ));\n }\n\n setContainerRef = c => {\n this.node = c;\n };\n\n setStatusRef = c => {\n this.statusNode = c;\n };\n\n _scrollStatusIntoView () {\n const { status, multiColumn } = this.props;\n\n if (status) {\n requestIdleCallback(() => {\n this.statusNode?.scrollIntoView(true);\n\n // In the single-column interface, `scrollIntoView` will put the post behind the header,\n // so compensate for that.\n if (!multiColumn) {\n const offset = document.querySelector('.column-header__wrapper')?.getBoundingClientRect()?.bottom;\n if (offset) {\n const scrollingElement = document.scrollingElement || document.body;\n scrollingElement.scrollBy(0, -offset);\n }\n }\n });\n }\n }\n\n componentDidUpdate (prevProps) {\n const { status, ancestorsIds } = this.props;\n\n if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get('id') !== status.get('id'))) {\n this._scrollStatusIntoView();\n }\n }\n\n componentWillUnmount () {\n detachFullscreenListener(this.onFullScreenChange);\n }\n\n onFullScreenChange = () => {\n this.setState({ fullscreen: isFullscreen() });\n };\n\n shouldUpdateScroll = (prevRouterProps, { location }) => {\n // Do not change scroll when opening a modal\n if (location.state?.mastodonModalKey !== prevRouterProps?.location?.state?.mastodonModalKey) {\n return false;\n }\n\n // Scroll to focused post if it is loaded\n if (this.statusNode) {\n return [0, this.statusNode.offsetTop];\n }\n\n // Do not scroll otherwise, `componentDidUpdate` will take care of that\n return false;\n };\n\n render () {\n let ancestors, descendants, remoteHint;\n const { isLoading, status, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props;\n const { fullscreen } = this.state;\n\n if (isLoading) {\n return (\n \n \n \n );\n }\n\n if (status === null) {\n return (\n \n );\n }\n\n if (ancestorsIds && ancestorsIds.size > 0) {\n ancestors = <>{this.renderChildren(ancestorsIds, true)};\n }\n\n if (descendantsIds && descendantsIds.size > 0) {\n descendants = <>{this.renderChildren(descendantsIds)};\n }\n\n const isLocal = status.getIn(['account', 'acct'], '').indexOf('@') === -1;\n const isIndexable = !status.getIn(['account', 'noindex']);\n\n if (!isLocal) {\n remoteHint = (\n }\n label={{status.getIn(['account', 'acct']).split('@')[1]} }} />}\n />\n );\n }\n\n const handlers = {\n moveUp: this.handleHotkeyMoveUp,\n moveDown: this.handleHotkeyMoveDown,\n reply: this.handleHotkeyReply,\n favourite: this.handleHotkeyFavourite,\n boost: this.handleHotkeyBoost,\n mention: this.handleHotkeyMention,\n openProfile: this.handleHotkeyOpenProfile,\n toggleHidden: this.handleHotkeyToggleHidden,\n toggleSensitive: this.handleHotkeyToggleSensitive,\n openMedia: this.handleHotkeyOpenMedia,\n };\n\n return (\n \n \n )}\n />\n\n \n
    \n {ancestors}\n\n \n
    \n \n\n \n
    \n
    \n\n {descendants}\n {remoteHint}\n
    \n
    \n\n \n {titleFromStatus(intl, status)}\n \n \n \n
    \n );\n }\n\n}\n\nexport default withRouter(injectIntl(connect(makeMapStateToProps)(withIdentity(Status))));\n"],"sourceRoot":""}