{"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/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","removeFavourite","bookmark","removeBookmark","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","bookmarkTitle","favouriteTitle","_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","revealAll","hideAll","statusTitleWithAttachments","detailedStatus","titleFromStatus","displayName","username","user","trim","attachmentCount","size","truncate","str","num","arr","Array","from","slice","join","Status","ImmutablePureComponent","_this","fullscreen","showMedia","defaultMediaVisibility","loadedStatusId","undefined","setState","dispatch","toggleFavourite","openModal","modalType","modalProps","type","accountId","askReplyConfirmation","replyCompose","toggleReblog","shiftKey","unbookmark","withRedraft","deleteModal","statusId","deleteStatus","editStatus","directCompose","mentionCompose","media","index","lang","options","preventDefault","handleOpenVideo","startTime","handleOpenMedia","initMuteModal","unmuteStatus","muteStatus","revealStatus","hideStatus","ancestorsIds","descendantsIds","statusIds","concat","toJS","undoStatusTranslation","translateStatus","initBlockModal","initReport","unmuteAccount","unblockAccount","initDomainBlockModal","handleMoveUp","handleMoveDown","history","handleToggleHidden","handleToggleMediaVisibility","handleTranslate","_selectChild","indexOf","c","node","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","map","i","StatusContainer","onMoveUp","onMoveDown","contextType","previousId","nextId","rootId","multiColumn","requestIdleCallback","_this$statusNode","_document$querySelect","offset","document","querySelector","getBoundingClientRect","bottom","scrollingElement","body","scrollBy","componentDidUpdate","prevProps","_prevProps$status","componentWillUnmount","detachFullscreenListener","descendants","remoteHint","isLoading","pictureInPicture","Column","LoadingIndicator","BundleColumnError","errorType","_jsx2","_Fragment","children","isLocal","isIndexable","TimelineHint","message","FormattedMessage","label","values","handlers","moveUp","handleHotkeyMoveUp","moveDown","handleHotkeyMoveDown","handleHotkeyReply","handleHotkeyFavourite","boost","handleHotkeyBoost","handleHotkeyMention","openProfile","handleHotkeyOpenProfile","toggleHidden","handleHotkeyToggleHidden","toggleSensitive","handleHotkeyToggleSensitive","openMedia","handleHotkeyOpenMedia","onTranslate","handleHotkeyTranslate","bindToDocument","ColumnHeader","showBackButton","extraButton","handleToggleAll","Icon","VisibilityOffIcon","VisibilityIcon","ScrollContainer","scrollKey","shouldUpdateScroll","_jsxs","ref","setContainerRef","HotKeys","tabIndex","textForScreenReader","setStatusRef","DetailedStatus","onOpenVideo","onOpenMedia","onToggleHidden","onToggleMediaVisibility","handleDirectClick","handleUnmuteClick","handleUnblockClick","handleBlockDomainClick","handleUnblockDomainClick","handlePin","Helmet","content","rel","identityContextPropShape","PropTypes","object","isRequired","func","ImmutablePropTypes","bool","string","contains","inUse","available","WithRouterPropTypes","withRouter","makeMapStateToProps","getStatus","makeGetStatus","getPictureInPicture","makeGetPictureInPicture","getAncestorsIds","createSelector","_","inReplyTos","ImmutableList","withMutations","mutable","unshift","getDescendantsIds","_ref2","contextReplies","statuses","ids","pop","replies","reverse","forEach","insertAt","findIndex","idx","splice"],"mappings":"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","file":"js/features/status-63aa775b87fd193e79c5.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  removeFavourite: { id: 'status.remove_favourite', defaultMessage: 'Remove from favorites' },\n  bookmark: { id: 'status.bookmark', defaultMessage: 'Bookmark' },\n  removeBookmark: { id: 'status.remove_bookmark', defaultMessage: 'Remove 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: 'Get embed code' },\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    const bookmarkTitle = intl.formatMessage(status.get('bookmarked') ? messages.removeBookmark : messages.bookmark);\n    const favouriteTitle = intl.formatMessage(status.get('favourited') ? messages.removeFavourite : messages.favourite);\n\n    return (\n      <div className='detailed-status__action-bar'>\n        <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? 'reply' : replyIcon} iconComponent={status.get('in_reply_to_account_id') === status.getIn(['account', 'id']) ? ReplyIcon : replyIconComponent}  onClick={this.handleReplyClick} /></div>\n        <div className='detailed-status__button'><IconButton className={classNames({ reblogPrivate })} disabled={!publicStatus && !reblogPrivate} active={status.get('reblogged')} title={reblogTitle} icon='retweet' iconComponent={reblogIconComponent} onClick={this.handleReblogClick} /></div>\n        <div className='detailed-status__button'><IconButton className='star-icon' animate active={status.get('favourited')} title={favouriteTitle} icon='star' iconComponent={status.get('favourited') ? StarIcon : StarBorderIcon} onClick={this.handleFavouriteClick} /></div>\n        <div className='detailed-status__button'><IconButton className='bookmark-icon' disabled={!signedIn} active={status.get('bookmarked')} title={bookmarkTitle} icon='bookmark' iconComponent={status.get('bookmarked') ? BookmarkIcon : BookmarkBorderIcon} onClick={this.handleBookmarkClick} /></div>\n\n        <div className='detailed-status__action-bar-dropdown'>\n          <DropdownMenuContainer icon='ellipsis-h' iconComponent={MoreHorizIcon} status={status} items={menu} direction='left' title={intl.formatMessage(messages.more)} />\n        </div>\n      </div>\n    );\n  }\n\n}\n\nexport default connect(mapStateToProps)(withIdentity(injectIntl(ActionBar)));\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 { List as ImmutableList } 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 = ImmutableList();\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 ImmutableList(descendantsIds);\n  });\n\n  const mapStateToProps = (state, props) => {\n    const status = getStatus(state, { id: props.params.statusId });\n\n    let ancestorsIds   = ImmutableList();\n    let descendantsIds = ImmutableList();\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  handleHotkeyTranslate = () => {\n    this.handleTranslate(this.props.status);\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      <StatusContainer\n        key={id}\n        id={id}\n        onMoveUp={this.handleMoveUp}\n        onMoveDown={this.handleMoveDown}\n        contextType='thread'\n        previousId={i > 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        <Column>\n          <LoadingIndicator />\n        </Column>\n      );\n    }\n\n    if (status === null) {\n      return (\n        <BundleColumnError multiColumn={multiColumn} errorType='routing' />\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        <TimelineHint\n          className={classNames(!!descendants && 'timeline-hint--with-descendants')}\n          url={status.get('url')}\n          message={<FormattedMessage id='hints.threads.replies_may_be_missing' defaultMessage='Replies from other servers may be missing.' />}\n          label={<FormattedMessage id='hints.threads.see_more' defaultMessage='See more replies on {domain}' values={{ domain: <strong>{status.getIn(['account', 'acct']).split('@')[1]}</strong> }} />}\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      onTranslate: this.handleHotkeyTranslate,\n    };\n\n    return (\n      <Column bindToDocument={!multiColumn} label={intl.formatMessage(messages.detailedStatus)}>\n        <ColumnHeader\n          showBackButton\n          multiColumn={multiColumn}\n          extraButton={(\n            <button type='button' className='column-header__button' title={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} aria-label={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} onClick={this.handleToggleAll}><Icon id={status.get('hidden') ? 'eye-slash' : 'eye'} icon={status.get('hidden') ? VisibilityOffIcon : VisibilityIcon} /></button>\n          )}\n        />\n\n        <ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}>\n          <div className={classNames('scrollable', { fullscreen })} ref={this.setContainerRef}>\n            {ancestors}\n\n            <HotKeys handlers={handlers}>\n              <div className={classNames('focusable', 'detailed-status__wrapper', `detailed-status__wrapper-${status.get('visibility')}`)} tabIndex={0} aria-label={textForScreenReader(intl, status, false)} ref={this.setStatusRef}>\n                <DetailedStatus\n                  key={`details-${status.get('id')}`}\n                  status={status}\n                  onOpenVideo={this.handleOpenVideo}\n                  onOpenMedia={this.handleOpenMedia}\n                  onToggleHidden={this.handleToggleHidden}\n                  onTranslate={this.handleTranslate}\n                  domain={domain}\n                  showMedia={this.state.showMedia}\n                  onToggleMediaVisibility={this.handleToggleMediaVisibility}\n                  pictureInPicture={pictureInPicture}\n                />\n\n                <ActionBar\n                  key={`action-bar-${status.get('id')}`}\n                  status={status}\n                  onReply={this.handleReplyClick}\n                  onFavourite={this.handleFavouriteClick}\n                  onReblog={this.handleReblogClick}\n                  onBookmark={this.handleBookmarkClick}\n                  onDelete={this.handleDeleteClick}\n                  onEdit={this.handleEditClick}\n                  onDirect={this.handleDirectClick}\n                  onMention={this.handleMentionClick}\n                  onMute={this.handleMuteClick}\n                  onUnmute={this.handleUnmuteClick}\n                  onMuteConversation={this.handleConversationMuteClick}\n                  onBlock={this.handleBlockClick}\n                  onUnblock={this.handleUnblockClick}\n                  onBlockDomain={this.handleBlockDomainClick}\n                  onUnblockDomain={this.handleUnblockDomainClick}\n                  onReport={this.handleReport}\n                  onPin={this.handlePin}\n                  onEmbed={this.handleEmbed}\n                />\n              </div>\n            </HotKeys>\n\n            {descendants}\n            {remoteHint}\n          </div>\n        </ScrollContainer>\n\n        <Helmet>\n          <title>{titleFromStatus(intl, status)}</title>\n          <meta name='robots' content={(isLocal && isIndexable) ? 'all' : 'noindex'} />\n          <link rel='canonical' href={status.get('url')} />\n        </Helmet>\n      </Column>\n    );\n  }\n\n}\n\nexport default withRouter(injectIntl(connect(makeMapStateToProps)(withIdentity(Status))));\n"],"sourceRoot":""}