Remove type assertion when not needed
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
ba5e018e3c
commit
b1daf3ef13
|
@ -10,7 +10,7 @@ import Icon from './icon';
|
||||||
import { Button, HStack, Stack, Text } from './ui';
|
import { Button, HStack, Stack, Text } from './ui';
|
||||||
import VerificationBadge from './verification-badge';
|
import VerificationBadge from './verification-badge';
|
||||||
|
|
||||||
import type { Account as AccountEntity, Status as StatusEntity } from 'soapbox/types/entities';
|
import type { Status as StatusEntity } from 'soapbox/types/entities';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
eventBanner: { id: 'event.banner', defaultMessage: 'Event banner' },
|
eventBanner: { id: 'event.banner', defaultMessage: 'Event banner' },
|
||||||
|
@ -30,7 +30,7 @@ const EventPreview: React.FC<IEventPreview> = ({ status, className, hideAction,
|
||||||
|
|
||||||
const me = useAppSelector((state) => state.me);
|
const me = useAppSelector((state) => state.me);
|
||||||
|
|
||||||
const account = status.account as AccountEntity;
|
const account = status.account;
|
||||||
const event = status.event!;
|
const event = status.event!;
|
||||||
|
|
||||||
const banner = event.banner;
|
const banner = event.banner;
|
||||||
|
|
|
@ -15,7 +15,7 @@ import StatusContent from './status-content';
|
||||||
import StatusReplyMentions from './status-reply-mentions';
|
import StatusReplyMentions from './status-reply-mentions';
|
||||||
import SensitiveContentOverlay from './statuses/sensitive-content-overlay';
|
import SensitiveContentOverlay from './statuses/sensitive-content-overlay';
|
||||||
|
|
||||||
import type { Account as AccountEntity, Status as StatusEntity } from 'soapbox/types/entities';
|
import type { Status as StatusEntity } from 'soapbox/types/entities';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },
|
cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },
|
||||||
|
@ -51,7 +51,7 @@ const QuotedStatus: React.FC<IQuotedStatus> = ({ status, onCancel, compose }) =>
|
||||||
|
|
||||||
const handleExpandClick: MouseEventHandler<HTMLDivElement> = (e) => {
|
const handleExpandClick: MouseEventHandler<HTMLDivElement> = (e) => {
|
||||||
if (!status) return;
|
if (!status) return;
|
||||||
const account = status.account as AccountEntity;
|
const account = status.account;
|
||||||
|
|
||||||
if (!compose && e.button === 0) {
|
if (!compose && e.button === 0) {
|
||||||
const statusUrl = `/@${account.acct}/posts/${status.id}`;
|
const statusUrl = `/@${account.acct}/posts/${status.id}`;
|
||||||
|
@ -79,7 +79,7 @@ const QuotedStatus: React.FC<IQuotedStatus> = ({ status, onCancel, compose }) =>
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const account = status.account as AccountEntity;
|
const account = status.account;
|
||||||
|
|
||||||
let actions = {};
|
let actions = {};
|
||||||
if (onCancel) {
|
if (onCancel) {
|
||||||
|
|
|
@ -29,7 +29,7 @@ import { getReactForStatus, reduceEmoji } from 'soapbox/utils/emoji-reacts';
|
||||||
import GroupPopover from './groups/popover/group-popover';
|
import GroupPopover from './groups/popover/group-popover';
|
||||||
|
|
||||||
import type { Menu } from 'soapbox/components/dropdown-menu';
|
import type { Menu } from 'soapbox/components/dropdown-menu';
|
||||||
import type { Account, Group, Status } from 'soapbox/types/entities';
|
import type { Group, Status } from 'soapbox/types/entities';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
adminAccount: { id: 'status.admin_account', defaultMessage: 'Moderate @{name}' },
|
adminAccount: { id: 'status.admin_account', defaultMessage: 'Moderate @{name}' },
|
||||||
|
@ -131,7 +131,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
const unmuteGroup = useUnmuteGroup(group as Group);
|
const unmuteGroup = useUnmuteGroup(group as Group);
|
||||||
const isMutingGroup = !!group?.relationship?.muting;
|
const isMutingGroup = !!group?.relationship?.muting;
|
||||||
const deleteGroupStatus = useDeleteGroupStatus(group as Group, status.id);
|
const deleteGroupStatus = useDeleteGroupStatus(group as Group, status.id);
|
||||||
const blockGroupMember = useBlockGroupMember(group as Group, status?.account as any);
|
const blockGroupMember = useBlockGroupMember(group as Group, status.account);
|
||||||
|
|
||||||
const me = useAppSelector(state => state.me);
|
const me = useAppSelector(state => state.me);
|
||||||
const { groupRelationship } = useGroupRelationship(status.group?.id);
|
const { groupRelationship } = useGroupRelationship(status.group?.id);
|
||||||
|
@ -266,20 +266,20 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMentionClick: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleMentionClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
dispatch(mentionCompose(status.account as Account));
|
dispatch(mentionCompose(status.account));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDirectClick: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleDirectClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
dispatch(directCompose(status.account as Account));
|
dispatch(directCompose(status.account));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleChatClick: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleChatClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
const account = status.account as Account;
|
const account = status.account;
|
||||||
dispatch(launchChat(account.id, history));
|
dispatch(launchChat(account.id, history));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMuteClick: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleMuteClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
dispatch(initMuteModal(status.account as Account));
|
dispatch(initMuteModal(status.account));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleMuteGroupClick: React.EventHandler<React.MouseEvent> = () =>
|
const handleMuteGroupClick: React.EventHandler<React.MouseEvent> = () =>
|
||||||
|
@ -304,7 +304,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleBlockClick: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleBlockClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
const account = status.account as Account;
|
const account = status.account;
|
||||||
|
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
icon: require('@tabler/icons/ban.svg'),
|
icon: require('@tabler/icons/ban.svg'),
|
||||||
|
@ -332,7 +332,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleReport: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleReport: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
dispatch(initReport(ReportableEntities.STATUS, status.account as Account, { status }));
|
dispatch(initReport(ReportableEntities.STATUS, status.account, { status }));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleConversationMuteClick: React.EventHandler<React.MouseEvent> = (e) => {
|
const handleConversationMuteClick: React.EventHandler<React.MouseEvent> = (e) => {
|
||||||
|
@ -346,7 +346,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const onModerate: React.MouseEventHandler = (e) => {
|
const onModerate: React.MouseEventHandler = (e) => {
|
||||||
const account = status.account as Account;
|
const account = status.account;
|
||||||
dispatch(openModal('ACCOUNT_MODERATION', { accountId: account.id }));
|
dispatch(openModal('ACCOUNT_MODERATION', { accountId: account.id }));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDeleteFromGroup: React.EventHandler<React.MouseEvent> = () => {
|
const handleDeleteFromGroup: React.EventHandler<React.MouseEvent> = () => {
|
||||||
const account = status.account as Account;
|
const account = status.account;
|
||||||
|
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
heading: intl.formatMessage(messages.deleteHeading),
|
heading: intl.formatMessage(messages.deleteHeading),
|
||||||
|
@ -378,10 +378,10 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
const handleBlockFromGroup = () => {
|
const handleBlockFromGroup = () => {
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
heading: intl.formatMessage(messages.groupBlockFromGroupHeading),
|
heading: intl.formatMessage(messages.groupBlockFromGroupHeading),
|
||||||
message: intl.formatMessage(messages.groupBlockFromGroupMessage, { name: (status.account as any).username }),
|
message: intl.formatMessage(messages.groupBlockFromGroupMessage, { name: status.account.username }),
|
||||||
confirm: intl.formatMessage(messages.groupBlockConfirm),
|
confirm: intl.formatMessage(messages.groupBlockConfirm),
|
||||||
onConfirm: () => {
|
onConfirm: () => {
|
||||||
blockGroupMember({ account_ids: [(status.account as any).id] }, {
|
blockGroupMember({ account_ids: [status.account.id] }, {
|
||||||
onSuccess() {
|
onSuccess() {
|
||||||
toast.success(intl.formatMessage(messages.blocked, { name: account?.acct }));
|
toast.success(intl.formatMessage(messages.blocked, { name: account?.acct }));
|
||||||
},
|
},
|
||||||
|
@ -553,7 +553,7 @@ const StatusActionBar: React.FC<IStatusActionBar> = ({
|
||||||
|
|
||||||
if (isGroupStatus && !!status.group) {
|
if (isGroupStatus && !!status.group) {
|
||||||
const group = status.group as Group;
|
const group = status.group as Group;
|
||||||
const account = status.account as Account;
|
const account = status.account;
|
||||||
const isGroupOwner = groupRelationship?.role === GroupRoles.OWNER;
|
const isGroupOwner = groupRelationship?.role === GroupRoles.OWNER;
|
||||||
const isGroupAdmin = groupRelationship?.role === GroupRoles.ADMIN;
|
const isGroupAdmin = groupRelationship?.role === GroupRoles.ADMIN;
|
||||||
const isStatusFromOwner = group.owner.id === account.id;
|
const isStatusFromOwner = group.owner.id === account.id;
|
||||||
|
|
|
@ -8,7 +8,7 @@ import HoverStatusWrapper from 'soapbox/components/hover-status-wrapper';
|
||||||
import { useAppDispatch } from 'soapbox/hooks';
|
import { useAppDispatch } from 'soapbox/hooks';
|
||||||
import { isPubkey } from 'soapbox/utils/nostr';
|
import { isPubkey } from 'soapbox/utils/nostr';
|
||||||
|
|
||||||
import type { Account, Status } from 'soapbox/types/entities';
|
import type { Status } from 'soapbox/types/entities';
|
||||||
|
|
||||||
interface IStatusReplyMentions {
|
interface IStatusReplyMentions {
|
||||||
status: Status;
|
status: Status;
|
||||||
|
@ -21,7 +21,7 @@ const StatusReplyMentions: React.FC<IStatusReplyMentions> = ({ status, hoverable
|
||||||
const handleOpenMentionsModal: React.MouseEventHandler<HTMLSpanElement> = (e) => {
|
const handleOpenMentionsModal: React.MouseEventHandler<HTMLSpanElement> = (e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
||||||
const account = status.account as Account;
|
const account = status.account;
|
||||||
|
|
||||||
dispatch(openModal('MENTIONS', {
|
dispatch(openModal('MENTIONS', {
|
||||||
username: account.acct,
|
username: account.acct,
|
||||||
|
|
|
@ -24,10 +24,7 @@ import StatusInfo from './statuses/status-info';
|
||||||
import Tombstone from './tombstone';
|
import Tombstone from './tombstone';
|
||||||
import { Card, Icon, Stack, Text } from './ui';
|
import { Card, Icon, Stack, Text } from './ui';
|
||||||
|
|
||||||
import type {
|
import type { Status as StatusEntity } from 'soapbox/types/entities';
|
||||||
Account as AccountEntity,
|
|
||||||
Status as StatusEntity,
|
|
||||||
} from 'soapbox/types/entities';
|
|
||||||
|
|
||||||
// Defined in components/scrollable-list
|
// Defined in components/scrollable-list
|
||||||
export type ScrollPosition = { height: number; top: number };
|
export type ScrollPosition = { height: number; top: number };
|
||||||
|
@ -168,7 +165,7 @@ const Status: React.FC<IStatus> = (props) => {
|
||||||
|
|
||||||
const handleHotkeyMention = (e?: KeyboardEvent): void => {
|
const handleHotkeyMention = (e?: KeyboardEvent): void => {
|
||||||
e?.preventDefault();
|
e?.preventDefault();
|
||||||
dispatch(mentionCompose(actualStatus.account as AccountEntity));
|
dispatch(mentionCompose(actualStatus.account));
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleHotkeyOpen = (): void => {
|
const handleHotkeyOpen = (): void => {
|
||||||
|
|
|
@ -28,7 +28,7 @@ import EventActionButton from '../components/event-action-button';
|
||||||
import EventDate from '../components/event-date';
|
import EventDate from '../components/event-date';
|
||||||
|
|
||||||
import type { Menu as MenuType } from 'soapbox/components/dropdown-menu';
|
import type { Menu as MenuType } from 'soapbox/components/dropdown-menu';
|
||||||
import type { Account as AccountEntity, Status as StatusEntity } from 'soapbox/types/entities';
|
import type { Status as StatusEntity } from 'soapbox/types/entities';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
bannerHeader: { id: 'event.banner', defaultMessage: 'Event banner' },
|
bannerHeader: { id: 'event.banner', defaultMessage: 'Event banner' },
|
||||||
|
@ -88,7 +88,7 @@ const EventHeader: React.FC<IEventHeader> = ({ status }) => {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const account = status.account as AccountEntity;
|
const account = status.account;
|
||||||
const event = status.event;
|
const event = status.event;
|
||||||
const banner = event.banner;
|
const banner = event.banner;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import { buildStatus } from '../builder';
|
||||||
|
|
||||||
import ScheduledStatusActionBar from './scheduled-status-action-bar';
|
import ScheduledStatusActionBar from './scheduled-status-action-bar';
|
||||||
|
|
||||||
import type { Account as AccountEntity, Status as StatusEntity } from 'soapbox/types/entities';
|
import type { Status as StatusEntity } from 'soapbox/types/entities';
|
||||||
|
|
||||||
interface IScheduledStatus {
|
interface IScheduledStatus {
|
||||||
statusId: string;
|
statusId: string;
|
||||||
|
@ -28,7 +28,7 @@ const ScheduledStatus: React.FC<IScheduledStatus> = ({ statusId, ...other }) =>
|
||||||
|
|
||||||
if (!status) return null;
|
if (!status) return null;
|
||||||
|
|
||||||
const account = status.account as AccountEntity;
|
const account = status.account;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={clsx('status__wrapper', `status__wrapper-${status.visibility}`, { 'status__wrapper-reply': !!status.in_reply_to_id })} tabIndex={0}>
|
<div className={clsx('status__wrapper', `status__wrapper-${status.visibility}`, { 'status__wrapper-reply': !!status.in_reply_to_id })} tabIndex={0}>
|
||||||
|
|
|
@ -14,7 +14,7 @@ import { buildStatus } from '../util/pending-status-builder';
|
||||||
|
|
||||||
import PollPreview from './poll-preview';
|
import PollPreview from './poll-preview';
|
||||||
|
|
||||||
import type { Account as AccountEntity, Status as StatusEntity } from 'soapbox/types/entities';
|
import type { Status as StatusEntity } from 'soapbox/types/entities';
|
||||||
|
|
||||||
const shouldHaveCard = (pendingStatus: StatusEntity) => {
|
const shouldHaveCard = (pendingStatus: StatusEntity) => {
|
||||||
return Boolean(pendingStatus.content.match(/https?:\/\/\S*/));
|
return Boolean(pendingStatus.content.match(/https?:\/\/\S*/));
|
||||||
|
@ -54,7 +54,7 @@ const PendingStatus: React.FC<IPendingStatus> = ({ idempotencyKey, className, mu
|
||||||
if (!status) return null;
|
if (!status) return null;
|
||||||
if (!status.account) return null;
|
if (!status.account) return null;
|
||||||
|
|
||||||
const account = status.account as AccountEntity;
|
const account = status.account;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={clsx('opacity-50', className)}>
|
<div className={clsx('opacity-50', className)}>
|
||||||
|
|
Loading…
Reference in New Issue