[build] upgrade eslint to 9.37.0 (#88)

Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88
Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org>
Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
This commit is contained in:
Zoë Bijl
2025-10-12 13:42:02 +02:00
committed by tobi
parent 75d7a62693
commit 1ff70886a1
975 changed files with 22196 additions and 21964 deletions
+131 -129
View File
@@ -1,38 +1,38 @@
import PropTypes from 'prop-types';
import PropTypes from "prop-types";
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { defineMessages, injectIntl, FormattedMessage } from "react-intl";
import classNames from 'classnames';
import { Helmet } from 'react-helmet';
import classNames from "classnames";
import { Helmet } from "react-helmet";
import Immutable from 'immutable';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import Immutable from "immutable";
import ImmutablePropTypes from "react-immutable-proptypes";
import ImmutablePureComponent from "react-immutable-pure-component";
import { connect } from "react-redux";
import { createSelector } from "reselect";
import { HotKeys } from 'react-hotkeys';
import { HotKeys } from "react-hotkeys";
import { Icon } from 'mastodon/components/icon';
import { LoadingIndicator } from 'mastodon/components/loading_indicator';
import ScrollContainer from 'mastodon/containers/scroll_container';
import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error';
import { Icon } from "mastodon/components/icon";
import { LoadingIndicator } from "mastodon/components/loading_indicator";
import ScrollContainer from "mastodon/containers/scroll_container";
import BundleColumnError from "mastodon/features/ui/components/bundle_column_error";
import {
unblockAccount,
unmuteAccount,
} from '../../actions/accounts';
import { initBlockModal } from '../../actions/blocks';
import { initBoostModal } from '../../actions/boosts';
} from "../../actions/accounts";
import { initBlockModal } from "../../actions/blocks";
import { initBoostModal } from "../../actions/boosts";
import {
replyCompose,
mentionCompose,
directCompose,
} from '../../actions/compose';
} from "../../actions/compose";
import {
blockDomain,
unblockDomain,
} from '../../actions/domain_blocks';
} from "../../actions/domain_blocks";
import {
favourite,
unfavourite,
@@ -42,10 +42,10 @@ import {
unreblog,
pin,
unpin,
} from '../../actions/interactions';
import { openModal } from '../../actions/modal';
import { initMuteModal } from '../../actions/mutes';
import { initReport } from '../../actions/reports';
} from "../../actions/interactions";
import { openModal } from "../../actions/modal";
import { initMuteModal } from "../../actions/mutes";
import { initReport } from "../../actions/reports";
import {
fetchStatus,
muteStatus,
@@ -56,30 +56,30 @@ import {
revealStatus,
translateStatus,
undoStatusTranslation,
} from '../../actions/statuses';
import ColumnHeader from '../../components/column_header';
import { textForScreenReader, defaultMediaVisibility } from '../../components/status';
import StatusContainer from '../../containers/status_container';
import { boostModal, deleteModal } from '../../initial_state';
import { makeGetStatus, makeGetPictureInPicture } from '../../selectors';
import Column from '../ui/components/column';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen';
} from "../../actions/statuses";
import ColumnHeader from "../../components/column_header";
import { textForScreenReader, defaultMediaVisibility } from "../../components/status";
import StatusContainer from "../../containers/status_container";
import { boostModal, deleteModal } from "../../initial_state";
import { makeGetStatus, makeGetPictureInPicture } from "../../selectors";
import Column from "../ui/components/column";
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from "../ui/util/fullscreen";
import ActionBar from './components/action_bar';
import DetailedStatus from './components/detailed_status';
import ActionBar from "./components/action_bar";
import DetailedStatus from "./components/detailed_status";
const messages = defineMessages({
deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },
deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },
redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' },
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.' },
revealAll: { id: 'status.show_more_all', defaultMessage: 'Show more for all' },
hideAll: { id: 'status.show_less_all', defaultMessage: 'Show less for all' },
statusTitleWithAttachments: { id: 'status.title.with_attachments', defaultMessage: '{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}' },
detailedStatus: { id: 'status.detailed_status', defaultMessage: 'Detailed conversation view' },
replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Block entire domain' },
deleteConfirm: { id: "confirmations.delete.confirm", defaultMessage: "Delete" },
deleteMessage: { id: "confirmations.delete.message", defaultMessage: "Are you sure you want to delete this status?" },
redraftConfirm: { id: "confirmations.redraft.confirm", defaultMessage: "Delete & redraft" },
redraftMessage: { id: "confirmations.redraft.message", defaultMessage: "Are you sure you want to delete this status and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned." },
revealAll: { id: "status.show_more_all", defaultMessage: "Show more for all" },
hideAll: { id: "status.show_less_all", defaultMessage: "Show less for all" },
statusTitleWithAttachments: { id: "status.title.with_attachments", defaultMessage: "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}" },
detailedStatus: { id: "status.detailed_status", defaultMessage: "Detailed conversation view" },
replyConfirm: { id: "confirmations.reply.confirm", defaultMessage: "Reply" },
replyMessage: { id: "confirmations.reply.message", defaultMessage: "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?" },
blockDomainConfirm: { id: "confirmations.domain_block.confirm", defaultMessage: "Block entire domain" },
});
const makeMapStateToProps = () => {
@@ -88,7 +88,7 @@ const makeMapStateToProps = () => {
const getAncestorsIds = createSelector([
(_, { id }) => id,
state => state.getIn(['contexts', 'inReplyTos']),
state => state.getIn(["contexts", "inReplyTos"]),
], (statusId, inReplyTos) => {
let ancestorsIds = Immutable.List();
ancestorsIds = ancestorsIds.withMutations(mutable => {
@@ -105,8 +105,8 @@ const makeMapStateToProps = () => {
const getDescendantsIds = createSelector([
(_, { id }) => id,
state => state.getIn(['contexts', 'replies']),
state => state.get('statuses'),
state => state.getIn(["contexts", "replies"]),
state => state.get("statuses"),
], (statusId, contextReplies, statuses) => {
let descendantsIds = [];
const ids = [statusId];
@@ -121,15 +121,17 @@ const makeMapStateToProps = () => {
if (replies) {
replies.reverse().forEach(reply => {
if (!ids.includes(reply) && !descendantsIds.includes(reply) && statusId !== reply) ids.push(reply);
if (!ids.includes(reply) && !descendantsIds.includes(reply) && statusId !== reply) {
ids.push(reply);
}
});
}
}
let insertAt = descendantsIds.findIndex((id) => statuses.get(id).get('in_reply_to_account_id') !== statuses.get(id).get('account'));
let insertAt = descendantsIds.findIndex((id) => statuses.get(id).get("in_reply_to_account_id") !== statuses.get(id).get("account"));
if (insertAt !== -1) {
descendantsIds.forEach((id, idx) => {
if (idx > insertAt && statuses.get(id).get('in_reply_to_account_id') === statuses.get(id).get('account')) {
if (idx > insertAt && statuses.get(id).get("in_reply_to_account_id") === statuses.get(id).get("account")) {
descendantsIds.splice(idx, 1);
descendantsIds.splice(insertAt, 0, id);
insertAt += 1;
@@ -147,17 +149,17 @@ const makeMapStateToProps = () => {
let descendantsIds = Immutable.List();
if (status) {
ancestorsIds = getAncestorsIds(state, { id: status.get('in_reply_to_id') });
descendantsIds = getDescendantsIds(state, { id: status.get('id') });
ancestorsIds = getAncestorsIds(state, { id: status.get("in_reply_to_id") });
descendantsIds = getDescendantsIds(state, { id: status.get("id") });
}
return {
isLoading: state.getIn(['statuses', props.params.statusId, 'isLoading']),
isLoading: state.getIn(["statuses", props.params.statusId, "isLoading"]),
status,
ancestorsIds,
descendantsIds,
askReplyConfirmation: state.getIn(['compose', 'text']).trim().length !== 0,
domain: state.getIn(['meta', 'domain']),
askReplyConfirmation: state.getIn(["compose", "text"]).trim().length !== 0,
domain: state.getIn(["meta", "domain"]),
pictureInPicture: getPictureInPicture(state, { id: props.params.statusId }),
};
};
@@ -168,18 +170,18 @@ const makeMapStateToProps = () => {
const truncate = (str, num) => {
const arr = Array.from(str);
if (arr.length > num) {
return arr.slice(0, num).join('') + '…';
return arr.slice(0, num).join("") + "…";
} else {
return str;
}
};
const titleFromStatus = (intl, status) => {
const displayName = status.getIn(['account', 'display_name']);
const username = status.getIn(['account', 'username']);
const displayName = status.getIn(["account", "display_name"]);
const username = status.getIn(["account", "username"]);
const user = displayName.trim().length === 0 ? username : displayName;
const text = status.get('search_index');
const attachmentCount = status.get('media_attachments').size;
const text = status.get("search_index");
const attachmentCount = status.get("media_attachments").size;
return text ? `${user}: "${truncate(text, 30)}"` : intl.formatMessage(messages.statusTitleWithAttachments, { user, attachmentCount });
};
@@ -229,8 +231,8 @@ class Status extends ImmutablePureComponent {
this.props.dispatch(fetchStatus(nextProps.params.statusId));
}
if (nextProps.status && nextProps.status.get('id') !== this.state.loadedStatusId) {
this.setState({ showMedia: defaultMediaVisibility(nextProps.status), loadedStatusId: nextProps.status.get('id') });
if (nextProps.status && nextProps.status.get("id") !== this.state.loadedStatusId) {
this.setState({ showMedia: defaultMediaVisibility(nextProps.status), loadedStatusId: nextProps.status.get("id") });
}
}
@@ -243,25 +245,25 @@ class Status extends ImmutablePureComponent {
const { signedIn } = this.context.identity;
if (signedIn) {
if (status.get('favourited')) {
if (status.get("favourited")) {
dispatch(unfavourite(status));
} else {
dispatch(favourite(status));
}
} else {
dispatch(openModal({
modalType: 'INTERACTION',
modalType: "INTERACTION",
modalProps: {
type: 'favourite',
accountId: status.getIn(['account', 'id']),
url: status.get('uri'),
type: "favourite",
accountId: status.getIn(["account", "id"]),
url: status.get("uri"),
},
}));
}
};
handlePin = (status) => {
if (status.get('pinned')) {
if (status.get("pinned")) {
this.props.dispatch(unpin(status));
} else {
this.props.dispatch(pin(status));
@@ -275,7 +277,7 @@ class Status extends ImmutablePureComponent {
if (signedIn) {
if (askReplyConfirmation) {
dispatch(openModal({
modalType: 'CONFIRM',
modalType: "CONFIRM",
modalProps: {
message: intl.formatMessage(messages.replyMessage),
confirm: intl.formatMessage(messages.replyConfirm),
@@ -287,11 +289,11 @@ class Status extends ImmutablePureComponent {
}
} else {
dispatch(openModal({
modalType: 'INTERACTION',
modalType: "INTERACTION",
modalProps: {
type: 'reply',
accountId: status.getIn(['account', 'id']),
url: status.get('uri'),
type: "reply",
accountId: status.getIn(["account", "id"]),
url: status.get("uri"),
},
}));
}
@@ -306,7 +308,7 @@ class Status extends ImmutablePureComponent {
const { signedIn } = this.context.identity;
if (signedIn) {
if (status.get('reblogged')) {
if (status.get("reblogged")) {
dispatch(unreblog(status));
} else {
if ((e && e.shiftKey) || !boostModal) {
@@ -317,18 +319,18 @@ class Status extends ImmutablePureComponent {
}
} else {
dispatch(openModal({
modalType: 'INTERACTION',
modalType: "INTERACTION",
modalProps: {
type: 'reblog',
accountId: status.getIn(['account', 'id']),
url: status.get('uri'),
type: "reblog",
accountId: status.getIn(["account", "id"]),
url: status.get("uri"),
},
}));
}
};
handleBookmarkClick = (status) => {
if (status.get('bookmarked')) {
if (status.get("bookmarked")) {
this.props.dispatch(unbookmark(status));
} else {
this.props.dispatch(bookmark(status));
@@ -339,21 +341,21 @@ class Status extends ImmutablePureComponent {
const { dispatch, intl } = this.props;
if (!deleteModal) {
dispatch(deleteStatus(status.get('id'), history, withRedraft));
dispatch(deleteStatus(status.get("id"), history, withRedraft));
} else {
dispatch(openModal({
modalType: 'CONFIRM',
modalType: "CONFIRM",
modalProps: {
message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage),
confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm),
onConfirm: () => dispatch(deleteStatus(status.get('id'), history, withRedraft)),
onConfirm: () => dispatch(deleteStatus(status.get("id"), history, withRedraft)),
},
}));
}
};
handleEditClick = (status, history) => {
this.props.dispatch(editStatus(status.get('id'), history));
this.props.dispatch(editStatus(status.get("id"), history));
};
handleDirectClick = (account, router) => {
@@ -366,15 +368,15 @@ class Status extends ImmutablePureComponent {
handleOpenMedia = (media, index, lang) => {
this.props.dispatch(openModal({
modalType: 'MEDIA',
modalProps: { statusId: this.props.status.get('id'), media, index, lang },
modalType: "MEDIA",
modalProps: { statusId: this.props.status.get("id"), media, index, lang },
}));
};
handleOpenVideo = (media, lang, options) => {
this.props.dispatch(openModal({
modalType: 'VIDEO',
modalProps: { statusId: this.props.status.get('id'), media, lang, options },
modalType: "VIDEO",
modalProps: { statusId: this.props.status.get("id"), media, lang, options },
}));
};
@@ -383,11 +385,11 @@ class Status extends ImmutablePureComponent {
e.preventDefault();
if (status.get('media_attachments').size > 0) {
if (status.getIn(['media_attachments', 0, 'type']) === 'video') {
this.handleOpenVideo(status.getIn(['media_attachments', 0]), { startTime: 0 });
if (status.get("media_attachments").size > 0) {
if (status.getIn(["media_attachments", 0, "type"]) === "video") {
this.handleOpenVideo(status.getIn(["media_attachments", 0]), { startTime: 0 });
} else {
this.handleOpenMedia(status.get('media_attachments'), 0);
this.handleOpenMedia(status.get("media_attachments"), 0);
}
}
};
@@ -397,26 +399,26 @@ class Status extends ImmutablePureComponent {
};
handleConversationMuteClick = (status) => {
if (status.get('muted')) {
this.props.dispatch(unmuteStatus(status.get('id')));
if (status.get("muted")) {
this.props.dispatch(unmuteStatus(status.get("id")));
} else {
this.props.dispatch(muteStatus(status.get('id')));
this.props.dispatch(muteStatus(status.get("id")));
}
};
handleToggleHidden = (status) => {
if (status.get('hidden')) {
this.props.dispatch(revealStatus(status.get('id')));
if (status.get("hidden")) {
this.props.dispatch(revealStatus(status.get("id")));
} else {
this.props.dispatch(hideStatus(status.get('id')));
this.props.dispatch(hideStatus(status.get("id")));
}
};
handleToggleAll = () => {
const { status, ancestorsIds, descendantsIds } = this.props;
const statusIds = [status.get('id')].concat(ancestorsIds.toJS(), descendantsIds.toJS());
const statusIds = [status.get("id")].concat(ancestorsIds.toJS(), descendantsIds.toJS());
if (status.get('hidden')) {
if (status.get("hidden")) {
this.props.dispatch(revealStatus(statusIds));
} else {
this.props.dispatch(hideStatus(statusIds));
@@ -426,41 +428,41 @@ class Status extends ImmutablePureComponent {
handleTranslate = status => {
const { dispatch } = this.props;
if (status.get('translation')) {
dispatch(undoStatusTranslation(status.get('id'), status.get('poll')));
if (status.get("translation")) {
dispatch(undoStatusTranslation(status.get("id"), status.get("poll")));
} else {
dispatch(translateStatus(status.get('id')));
dispatch(translateStatus(status.get("id")));
}
};
handleBlockClick = (status) => {
const { dispatch } = this.props;
const account = status.get('account');
const account = status.get("account");
dispatch(initBlockModal(account));
};
handleReport = (status) => {
this.props.dispatch(initReport(status.get('account'), status));
this.props.dispatch(initReport(status.get("account"), status));
};
handleEmbed = (status) => {
this.props.dispatch(openModal({
modalType: 'EMBED',
modalProps: { id: status.get('id') },
modalType: "EMBED",
modalProps: { id: status.get("id") },
}));
};
handleUnmuteClick = account => {
this.props.dispatch(unmuteAccount(account.get('id')));
this.props.dispatch(unmuteAccount(account.get("id")));
};
handleUnblockClick = account => {
this.props.dispatch(unblockAccount(account.get('id')));
this.props.dispatch(unblockAccount(account.get("id")));
};
handleBlockDomainClick = domain => {
this.props.dispatch(openModal({
modalType: 'CONFIRM',
modalType: "CONFIRM",
modalProps: {
message: <FormattedMessage id='confirmations.domain_block.message' defaultMessage='Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.' values={{ domain: <strong>{domain}</strong> }} />,
confirm: this.props.intl.formatMessage(messages.blockDomainConfirm),
@@ -475,11 +477,11 @@ class Status extends ImmutablePureComponent {
handleHotkeyMoveUp = () => {
this.handleMoveUp(this.props.status.get('id'));
this.handleMoveUp(this.props.status.get("id"));
};
handleHotkeyMoveDown = () => {
this.handleMoveDown(this.props.status.get('id'));
this.handleMoveDown(this.props.status.get("id"));
};
handleHotkeyReply = e => {
@@ -497,11 +499,11 @@ class Status extends ImmutablePureComponent {
handleHotkeyMention = e => {
e.preventDefault();
this.handleMentionClick(this.props.status.get('account'));
this.handleMentionClick(this.props.status.get("account"));
};
handleHotkeyOpenProfile = () => {
this.context.router.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);
this.context.router.history.push(`/@${this.props.status.getIn(["account", "acct"])}`);
};
handleHotkeyToggleHidden = () => {
@@ -515,7 +517,7 @@ class Status extends ImmutablePureComponent {
handleMoveUp = id => {
const { status, ancestorsIds, descendantsIds } = this.props;
if (id === status.get('id')) {
if (id === status.get("id")) {
this._selectChild(ancestorsIds.size - 1, true);
} else {
let index = ancestorsIds.indexOf(id);
@@ -532,7 +534,7 @@ class Status extends ImmutablePureComponent {
handleMoveDown = id => {
const { status, ancestorsIds, descendantsIds } = this.props;
if (id === status.get('id')) {
if (id === status.get("id")) {
this._selectChild(ancestorsIds.size + 1, false);
} else {
let index = ancestorsIds.indexOf(id);
@@ -548,7 +550,7 @@ class Status extends ImmutablePureComponent {
_selectChild (index, align_top) {
const container = this.node;
const element = container.querySelectorAll('.focusable')[index];
const element = container.querySelectorAll(".focusable")[index];
if (element) {
if (align_top && container.scrollTop > element.offsetTop) {
@@ -586,12 +588,12 @@ class Status extends ImmutablePureComponent {
if (status) {
window.requestAnimationFrame(() => {
this.node?.querySelector('.detailed-status__wrapper')?.scrollIntoView(true);
this.node?.querySelector(".detailed-status__wrapper")?.scrollIntoView(true);
// In the single-column interface, `scrollIntoView` will put the post behind the header,
// so compensate for that.
if (!multiColumn) {
const offset = document.querySelector('.column-header__wrapper')?.getBoundingClientRect()?.bottom;
const offset = document.querySelector(".column-header__wrapper")?.getBoundingClientRect()?.bottom;
if (offset) {
const scrollingElement = document.scrollingElement || document.body;
scrollingElement.scrollBy(0, -offset);
@@ -604,7 +606,7 @@ class Status extends ImmutablePureComponent {
componentDidUpdate (prevProps) {
const { status, ancestorsIds } = this.props;
if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get('id') !== status.get('id'))) {
if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get("id") !== status.get("id"))) {
this._scrollStatusIntoView();
}
}
@@ -624,7 +626,7 @@ class Status extends ImmutablePureComponent {
}
// Scroll to focused post if it is loaded
const child = this.node?.querySelector('.detailed-status__wrapper');
const child = this.node?.querySelector(".detailed-status__wrapper");
if (child) {
return [0, child.offsetTop];
}
@@ -660,8 +662,8 @@ class Status extends ImmutablePureComponent {
descendants = <>{this.renderChildren(descendantsIds)}</>;
}
const isLocal = status.getIn(['account', 'acct'], '').indexOf('@') === -1;
const isIndexable = !status.getIn(['account', 'noindex']);
const isLocal = status.getIn(["account", "acct"], "").indexOf("@") === -1;
const isIndexable = !status.getIn(["account", "noindex"]);
const handlers = {
moveUp: this.handleHotkeyMoveUp,
@@ -682,18 +684,18 @@ class Status extends ImmutablePureComponent {
showBackButton
multiColumn={multiColumn}
extraButton={(
<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'} /></button>
<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"} /></button>
)}
/>
<ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}>
<div className={classNames('scrollable', { fullscreen })} ref={this.setRef}>
<div className={classNames("scrollable", { fullscreen })} ref={this.setRef}>
{ancestors}
<HotKeys handlers={handlers}>
<div className={classNames('focusable', 'detailed-status__wrapper', `detailed-status__wrapper-${status.get('visibility')}`)} tabIndex={0} aria-label={textForScreenReader(intl, status, false)}>
<div className={classNames("focusable", "detailed-status__wrapper", `detailed-status__wrapper-${status.get("visibility")}`)} tabIndex={0} aria-label={textForScreenReader(intl, status, false)}>
<DetailedStatus
key={`details-${status.get('id')}`}
key={`details-${status.get("id")}`}
status={status}
onOpenVideo={this.handleOpenVideo}
onOpenMedia={this.handleOpenMedia}
@@ -706,7 +708,7 @@ class Status extends ImmutablePureComponent {
/>
<ActionBar
key={`action-bar-${status.get('id')}`}
key={`action-bar-${status.get("id")}`}
status={status}
onReply={this.handleReplyClick}
onFavourite={this.handleFavouriteClick}
@@ -736,8 +738,8 @@ class Status extends ImmutablePureComponent {
<Helmet>
<title>{titleFromStatus(intl, status)}</title>
<meta name='robots' content={(isLocal && isIndexable) ? 'all' : 'noindex'} />
<link rel='canonical' href={status.get('url')} />
<meta name='robots' content={(isLocal && isIndexable) ? "all" : "noindex"} />
<link rel='canonical' href={status.get("url")} />
</Helmet>
</Column>
);