Move getActualStatus logic to utils
This commit is contained in:
parent
89390083a9
commit
82d717d8ce
|
@ -7,7 +7,7 @@ import { NavLink, useHistory } from 'react-router-dom';
|
||||||
import Icon from 'soapbox/components/icon';
|
import Icon from 'soapbox/components/icon';
|
||||||
import AccountContainer from 'soapbox/containers/account_container';
|
import AccountContainer from 'soapbox/containers/account_container';
|
||||||
import QuotedStatus from 'soapbox/features/status/containers/quoted_status_container';
|
import QuotedStatus from 'soapbox/features/status/containers/quoted_status_container';
|
||||||
import { defaultMediaVisibility, textForScreenReader } from 'soapbox/utils/status';
|
import { defaultMediaVisibility, textForScreenReader, getActualStatus } from 'soapbox/utils/status';
|
||||||
|
|
||||||
import StatusMedia from './status-media';
|
import StatusMedia from './status-media';
|
||||||
import StatusReplyMentions from './status-reply-mentions';
|
import StatusReplyMentions from './status-reply-mentions';
|
||||||
|
@ -201,11 +201,7 @@ const Status: React.FC<IStatus> = (props) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const _properStatus = (): StatusEntity => {
|
const _properStatus = (): StatusEntity => {
|
||||||
if (status.reblog && typeof status.reblog === 'object') {
|
return getActualStatus(status);
|
||||||
return status.reblog;
|
|
||||||
} else {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!status) return null;
|
if (!status) return null;
|
||||||
|
|
|
@ -8,6 +8,7 @@ import StatusContent from 'soapbox/components/status_content';
|
||||||
import { HStack, Text } from 'soapbox/components/ui';
|
import { HStack, Text } from 'soapbox/components/ui';
|
||||||
import AccountContainer from 'soapbox/containers/account_container';
|
import AccountContainer from 'soapbox/containers/account_container';
|
||||||
import QuotedStatus from 'soapbox/features/status/containers/quoted_status_container';
|
import QuotedStatus from 'soapbox/features/status/containers/quoted_status_container';
|
||||||
|
import { getActualStatus } from 'soapbox/utils/status';
|
||||||
|
|
||||||
import StatusInteractionBar from './status-interaction-bar';
|
import StatusInteractionBar from './status-interaction-bar';
|
||||||
|
|
||||||
|
@ -42,12 +43,7 @@ const DetailedStatus: React.FC<IDetailedStatus> = ({
|
||||||
onOpenCompareHistoryModal(status);
|
onOpenCompareHistoryModal(status);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getActualStatus = () => {
|
const actualStatus = getActualStatus(status);
|
||||||
if (!status) return undefined;
|
|
||||||
return status.reblog && typeof status.reblog === 'object' ? status.reblog : status;
|
|
||||||
};
|
|
||||||
|
|
||||||
const actualStatus = getActualStatus();
|
|
||||||
if (!actualStatus) return null;
|
if (!actualStatus) return null;
|
||||||
const { account } = actualStatus;
|
const { account } = actualStatus;
|
||||||
if (!account || typeof account !== 'object') return null;
|
if (!account || typeof account !== 'object') return null;
|
||||||
|
|
|
@ -58,3 +58,17 @@ export const textForScreenReader = (intl: IntlShape, status: StatusEntity, reblo
|
||||||
|
|
||||||
return values.join(', ');
|
return values.join(', ');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Get reblogged status if any, otherwise return the original status. */
|
||||||
|
// @ts-ignore The type seems right, but TS doesn't like it.
|
||||||
|
export const getActualStatus: {
|
||||||
|
(status: StatusEntity): StatusEntity,
|
||||||
|
(status: undefined): undefined,
|
||||||
|
(status: null): null,
|
||||||
|
} = (status) => {
|
||||||
|
if (status?.reblog && typeof status?.reblog === 'object') {
|
||||||
|
return status.reblog as StatusEntity;
|
||||||
|
} else {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue