diff --git a/src/components/dropdown-menu/dropdown-menu.tsx b/src/components/dropdown-menu/dropdown-menu.tsx index 84af570bb..08189700f 100644 --- a/src/components/dropdown-menu/dropdown-menu.tsx +++ b/src/components/dropdown-menu/dropdown-menu.tsx @@ -9,9 +9,9 @@ import { closeDropdownMenu as closeDropdownMenuRedux, openDropdownMenu } from 's import { closeModal, openModal } from 'soapbox/actions/modals.ts'; import IconButton from 'soapbox/components/ui/icon-button.tsx'; import Portal from 'soapbox/components/ui/portal.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import { useAppDispatch } from 'soapbox/hooks/useAppDispatch.ts'; import { userTouching } from 'soapbox/is-mobile.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import DropdownMenuItem, { MenuItem } from './dropdown-menu-item.tsx'; @@ -27,7 +27,7 @@ interface IDropdownMenu { onShiftClick?: React.EventHandler; placement?: Placement; src?: string; - status?: EntityTypes[Entities.STATUSES]; + status?: StatusEntity; title?: string; } diff --git a/src/components/pure-event-preview.tsx b/src/components/pure-event-preview.tsx index 1c06724ec..57915e364 100644 --- a/src/components/pure-event-preview.tsx +++ b/src/components/pure-event-preview.tsx @@ -7,7 +7,6 @@ import Button from 'soapbox/components/ui/button.tsx'; import HStack from 'soapbox/components/ui/hstack.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import Text from 'soapbox/components/ui/text.tsx'; -import { EntityTypes, Entities } from 'soapbox/entity-store/entities.ts'; import PureEventActionButton from 'soapbox/features/event/components/pure-event-action-button.tsx'; import PureEventDate from 'soapbox/features/event/components/pure-event-date.tsx'; import { useAppSelector } from 'soapbox/hooks/useAppSelector.ts'; @@ -15,6 +14,7 @@ import { useAppSelector } from 'soapbox/hooks/useAppSelector.ts'; import Icon from './icon.tsx'; import VerificationBadge from './verification-badge.tsx'; +import type { Status as StatusEntity } from 'soapbox/schemas/index.ts'; const messages = defineMessages({ eventBanner: { id: 'event.banner', defaultMessage: 'Event banner' }, @@ -23,7 +23,7 @@ const messages = defineMessages({ }); interface IPureEventPreview { - status: EntityTypes[Entities.STATUSES]; + status: StatusEntity; className?: string; hideAction?: boolean; floatingAction?: boolean; diff --git a/src/components/pure-status-content.tsx b/src/components/pure-status-content.tsx index a728ecd6b..b28d27c37 100644 --- a/src/components/pure-status-content.tsx +++ b/src/components/pure-status-content.tsx @@ -4,7 +4,7 @@ import { useState, useRef, useLayoutEffect, useMemo, memo } from 'react'; import { FormattedMessage } from 'react-intl'; import Icon from 'soapbox/components/icon.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import { isOnlyEmoji as _isOnlyEmoji } from 'soapbox/utils/only-emoji.ts'; import { getTextDirection } from 'soapbox/utils/rtl.ts'; @@ -28,7 +28,7 @@ const ReadMoreButton: React.FC = ({ onClick }) => ( ); interface IPureStatusContent { - status: EntityTypes[Entities.STATUSES]; + status: StatusEntity; onClick?: () => void; collapsable?: boolean; translatable?: boolean; diff --git a/src/components/pure-status-list.tsx b/src/components/pure-status-list.tsx index 11a12907b..be3ed8914 100644 --- a/src/components/pure-status-list.tsx +++ b/src/components/pure-status-list.tsx @@ -6,11 +6,11 @@ import { FormattedMessage } from 'react-intl'; import LoadGap from 'soapbox/components/load-gap.tsx'; import PureStatus from 'soapbox/components/pure-status.tsx'; import ScrollableList from 'soapbox/components/scrollable-list.tsx'; -import { EntityTypes, Entities } from 'soapbox/entity-store/entities.ts'; import FeedSuggestions from 'soapbox/features/feed-suggestions/feed-suggestions.tsx'; import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder-status.tsx'; import PendingStatus from 'soapbox/features/ui/components/pending-status.tsx'; import { useSoapboxConfig } from 'soapbox/hooks/useSoapboxConfig.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import type { VirtuosoHandle } from 'react-virtuoso'; import type { IScrollableList } from 'soapbox/components/scrollable-list.tsx'; @@ -19,11 +19,11 @@ interface IPureStatusList extends Omit void; /** Whether the data is currently being fetched. */ @@ -124,7 +124,7 @@ const PureStatusList: React.FC = ({ ); }; - const renderStatus = (status: EntityTypes[Entities.STATUSES]) => { + const renderStatus = (status: StatusEntity) => { return ( void; muted?: boolean; hidden?: boolean; @@ -126,7 +126,7 @@ const PureStatus: React.FC = (props) => { } }, [overlay.current]); - const statusImmutable = normalizeStatus(status) as Status; // TODO: remove this line, it will be removed once all components in this file are pure. + const statusImmutable = normalizeStatus(status) as LegacyStatus; // TODO: remove this line, it will be removed once all components in this file are pure. const handleToggleMediaVisibility = (): void => { setShowMedia(!showMedia); diff --git a/src/components/pure-translate-button.tsx b/src/components/pure-translate-button.tsx index b5632e35d..3408da423 100644 --- a/src/components/pure-translate-button.tsx +++ b/src/components/pure-translate-button.tsx @@ -5,14 +5,14 @@ import { translateStatus, undoStatusTranslation } from 'soapbox/actions/statuses import Button from 'soapbox/components/ui/button.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import Text from 'soapbox/components/ui/text.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import { useAppDispatch } from 'soapbox/hooks/useAppDispatch.ts'; import { useAppSelector } from 'soapbox/hooks/useAppSelector.ts'; import { useFeatures } from 'soapbox/hooks/useFeatures.ts'; import { useInstance } from 'soapbox/hooks/useInstance.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; interface IPureTranslateButton { - status: EntityTypes[Entities.STATUSES]; + status: StatusEntity; } const PureTranslateButton: React.FC = ({ status }) => { diff --git a/src/components/quoted-status.tsx b/src/components/quoted-status.tsx index 413b90ccf..e509222c5 100644 --- a/src/components/quoted-status.tsx +++ b/src/components/quoted-status.tsx @@ -7,8 +7,8 @@ import { useHistory } from 'react-router-dom'; import StatusMedia from 'soapbox/components/status-media.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import AccountContainer from 'soapbox/containers/account-container.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import { useSettings } from 'soapbox/hooks/useSettings.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import { defaultMediaVisibility } from 'soapbox/utils/status.ts'; import EventPreview from './event-preview.tsx'; @@ -18,7 +18,7 @@ import StatusContent from './status-content.tsx'; import StatusReplyMentions from './status-reply-mentions.tsx'; import SensitiveContentOverlay from './statuses/sensitive-content-overlay.tsx'; -import type { Status as StatusEntity } from 'soapbox/types/entities.ts'; +import type { Status as LegacyStatus } from 'soapbox/types/entities.ts'; const messages = defineMessages({ cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' }, @@ -26,7 +26,7 @@ const messages = defineMessages({ interface IQuotedStatus { /** The quoted status entity. */ - status?: StatusEntity; + status?: LegacyStatus; /** Callback when cancelled (during compose). */ onCancel?: Function; /** Whether the status is shown in the post composer. */ @@ -139,7 +139,7 @@ const QuotedStatus: React.FC = ({ status, onCancel, compose }) => {status.media_attachments.size > 0 && ( = ({ /> )} - + void; muted?: boolean; hidden?: boolean; @@ -466,7 +466,7 @@ const Status: React.FC = (props) => { {(quote || actualStatus.card || actualStatus.media_attachments.size > 0) && ( = ({ status }) => { - +
diff --git a/src/features/compose/components/reply-indicator.tsx b/src/features/compose/components/reply-indicator.tsx index 7d12ae738..5c7bea75d 100644 --- a/src/features/compose/components/reply-indicator.tsx +++ b/src/features/compose/components/reply-indicator.tsx @@ -5,12 +5,12 @@ import AttachmentThumbs from 'soapbox/components/attachment-thumbs.tsx'; import Markup from 'soapbox/components/markup.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import AccountContainer from 'soapbox/containers/account-container.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import { getTextDirection } from 'soapbox/utils/rtl.ts'; interface IReplyIndicator { className?: string; - status?: EntityTypes[Entities.STATUSES]; + status?: StatusEntity; onCancel?: () => void; hideActions: boolean; } diff --git a/src/features/compose/containers/reply-indicator-container.ts b/src/features/compose/containers/reply-indicator-container.ts index a0ba71397..b2399abc2 100644 --- a/src/features/compose/containers/reply-indicator-container.ts +++ b/src/features/compose/containers/reply-indicator-container.ts @@ -1,13 +1,14 @@ import { connect } from 'react-redux'; import { cancelReplyCompose } from 'soapbox/actions/compose.ts'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import { makeGetStatus } from 'soapbox/selectors/index.ts'; import ReplyIndicator from '../components/reply-indicator.tsx'; import type { AppDispatch, RootState } from 'soapbox/store.ts'; -import type { Status } from 'soapbox/types/entities.ts'; +import type { Status as LegacyStatus } from 'soapbox/types/entities.ts'; + const makeMapStateToProps = () => { const getStatus = makeGetStatus(); @@ -17,7 +18,7 @@ const makeMapStateToProps = () => { const editing = !!state.compose.get(composeId)?.id; return { - status: (getStatus(state, { id: statusId }) as Status)?.toJS() as EntityTypes[Entities.STATUSES], + status: (getStatus(state, { id: statusId }) as LegacyStatus)?.toJS() as StatusEntity, hideActions: editing, }; }; diff --git a/src/features/event/components/pure-event-action-button.tsx b/src/features/event/components/pure-event-action-button.tsx index d2a9a0e19..598f4536e 100644 --- a/src/features/event/components/pure-event-action-button.tsx +++ b/src/features/event/components/pure-event-action-button.tsx @@ -5,9 +5,9 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { joinEvent, leaveEvent } from 'soapbox/actions/events.ts'; import { openModal } from 'soapbox/actions/modals.ts'; import Button from 'soapbox/components/ui/button.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import { useAppDispatch } from 'soapbox/hooks/useAppDispatch.ts'; import { useAppSelector } from 'soapbox/hooks/useAppSelector.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import type { ButtonThemes } from 'soapbox/components/ui/useButtonStyles.ts'; @@ -17,7 +17,7 @@ const messages = defineMessages({ }); interface IPureEventAction { - status: EntityTypes[Entities.STATUSES]; + status: StatusEntity; theme?: ButtonThemes; } diff --git a/src/features/event/components/pure-event-date.tsx b/src/features/event/components/pure-event-date.tsx index 59bcef9bb..6b5aed7a7 100644 --- a/src/features/event/components/pure-event-date.tsx +++ b/src/features/event/components/pure-event-date.tsx @@ -3,11 +3,10 @@ import { FormattedDate } from 'react-intl'; import Icon from 'soapbox/components/icon.tsx'; import HStack from 'soapbox/components/ui/hstack.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; - +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; interface IPureEventDate { - status: EntityTypes[Entities.STATUSES]; + status: StatusEntity; } const PureEventDate: React.FC = ({ status }) => { diff --git a/src/features/event/event-information.tsx b/src/features/event/event-information.tsx index 9d64356a4..461c275ca 100644 --- a/src/features/event/event-information.tsx +++ b/src/features/event/event-information.tsx @@ -15,16 +15,16 @@ import HStack from 'soapbox/components/ui/hstack.tsx'; import Icon from 'soapbox/components/ui/icon.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import Text from 'soapbox/components/ui/text.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import QuotedStatus from 'soapbox/features/status/containers/quoted-status-container.tsx'; import { useAppDispatch } from 'soapbox/hooks/useAppDispatch.ts'; import { useAppSelector } from 'soapbox/hooks/useAppSelector.ts'; import { useSettings } from 'soapbox/hooks/useSettings.ts'; import { useSoapboxConfig } from 'soapbox/hooks/useSoapboxConfig.ts'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import { makeGetStatus } from 'soapbox/selectors/index.ts'; import { defaultMediaVisibility } from 'soapbox/utils/status.ts'; -import type { Status as StatusEntity } from 'soapbox/types/entities.ts'; +import type { Status as StatusLegacy } from 'soapbox/types/entities.ts'; type RouteParams = { statusId: string }; @@ -36,7 +36,7 @@ const EventInformation: React.FC = ({ params }) => { const dispatch = useAppDispatch(); const getStatus = useCallback(makeGetStatus(), []); - const status = useAppSelector(state => getStatus(state, { id: params.statusId })) as StatusEntity; + const status = useAppSelector(state => getStatus(state, { id: params.statusId })) as StatusLegacy; const { tileServer } = useSoapboxConfig(); const { displayMedia } = useSettings(); @@ -209,7 +209,7 @@ const EventInformation: React.FC = ({ params }) => { )} diff --git a/src/features/status/components/detailed-status.tsx b/src/features/status/components/detailed-status.tsx index 2f0c82053..e4d471a4e 100644 --- a/src/features/status/components/detailed-status.tsx +++ b/src/features/status/components/detailed-status.tsx @@ -16,19 +16,19 @@ import HStack from 'soapbox/components/ui/hstack.tsx'; import Icon from 'soapbox/components/ui/icon.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import Text from 'soapbox/components/ui/text.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import QuotedStatus from 'soapbox/features/status/containers/quoted-status-container.tsx'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import { getActualStatus } from 'soapbox/utils/status.ts'; import StatusInteractionBar from './status-interaction-bar.tsx'; -import type { Group, Status as StatusEntity } from 'soapbox/types/entities.ts'; +import type { Group, Status as LegacyStatus } from 'soapbox/types/entities.ts'; interface IDetailedStatus { - status: StatusEntity; + status: LegacyStatus; showMedia?: boolean; withMedia?: boolean; - onOpenCompareHistoryModal: (status: StatusEntity) => void; + onOpenCompareHistoryModal: (status: LegacyStatus) => void; onToggleMediaVisibility: () => void; } @@ -163,7 +163,7 @@ const DetailedStatus: React.FC = ({ {(withMedia && (quote || actualStatus.card || actualStatus.media_attachments.size > 0)) && ( diff --git a/src/features/ui/components/modals/actions-modal.tsx b/src/features/ui/components/modals/actions-modal.tsx index 9aacd9b3e..4cbeca94a 100644 --- a/src/features/ui/components/modals/actions-modal.tsx +++ b/src/features/ui/components/modals/actions-modal.tsx @@ -4,15 +4,15 @@ import { spring } from 'react-motion'; import HStack from 'soapbox/components/ui/hstack.tsx'; import SvgIcon from 'soapbox/components/ui/svg-icon.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import ReplyIndicator from 'soapbox/features/compose/components/reply-indicator.tsx'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; import Motion from '../../util/optional-motion.tsx'; import type { Menu, MenuItem } from 'soapbox/components/dropdown-menu/index.ts'; interface IActionsModal { - status: EntityTypes[Entities.STATUSES]; + status: StatusEntity; actions: Menu; onClick: () => void; onClose: () => void; diff --git a/src/features/ui/components/modals/boost-modal.tsx b/src/features/ui/components/modals/boost-modal.tsx index afe841a3c..730586dcd 100644 --- a/src/features/ui/components/modals/boost-modal.tsx +++ b/src/features/ui/components/modals/boost-modal.tsx @@ -5,10 +5,10 @@ import Icon from 'soapbox/components/icon.tsx'; import Modal from 'soapbox/components/ui/modal.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; import Text from 'soapbox/components/ui/text.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import ReplyIndicator from 'soapbox/features/compose/components/reply-indicator.tsx'; +import { Status as StatusEntity } from 'soapbox/schemas/index.ts'; -import type { Status as StatusEntity } from 'soapbox/types/entities.ts'; +import type { Status as LegacyStatus } from 'soapbox/types/entities.ts'; const messages = defineMessages({ cancel_reblog: { id: 'status.cancel_reblog_private', defaultMessage: 'Un-repost' }, @@ -16,8 +16,8 @@ const messages = defineMessages({ }); interface IBoostModal { - status: StatusEntity; - onReblog: (status: StatusEntity) => void; + status: LegacyStatus; + onReblog: (status: LegacyStatus) => void; onClose: () => void; } @@ -38,7 +38,7 @@ const BoostModal: React.FC = ({ status, onReblog, onClose }) => { confirmationText={intl.formatMessage(buttonText)} > - + {/* eslint-disable-next-line formatjs/no-literal-string-in-jsx */} diff --git a/src/features/ui/components/modals/media-modal.tsx b/src/features/ui/components/modals/media-modal.tsx index 59c3a6763..62573f1b3 100644 --- a/src/features/ui/components/modals/media-modal.tsx +++ b/src/features/ui/components/modals/media-modal.tsx @@ -19,7 +19,6 @@ import HStack from 'soapbox/components/ui/hstack.tsx'; import IconButton from 'soapbox/components/ui/icon-button.tsx'; import Icon from 'soapbox/components/ui/icon.tsx'; import Stack from 'soapbox/components/ui/stack.tsx'; -import { Entities, EntityTypes } from 'soapbox/entity-store/entities.ts'; import Audio from 'soapbox/features/audio/index.tsx'; import PlaceholderStatus from 'soapbox/features/placeholder/components/placeholder-status.tsx'; import Thread from 'soapbox/features/status/components/thread.tsx'; @@ -27,8 +26,8 @@ import Video from 'soapbox/features/video/index.tsx'; import { useAppDispatch } from 'soapbox/hooks/useAppDispatch.ts'; import { userTouching } from 'soapbox/is-mobile.ts'; import { normalizeStatus } from 'soapbox/normalizers/index.ts'; -import { Attachment } from 'soapbox/schemas/index.ts'; -import { Status } from 'soapbox/types/entities.ts'; +import { Status as StatusEntity, Attachment } from 'soapbox/schemas/index.ts'; +import { Status as LegacyStatus } from 'soapbox/types/entities.ts'; import { getActualStatus } from 'soapbox/utils/status.ts'; import ImageLoader from '../image-loader.tsx'; @@ -56,7 +55,7 @@ const containerStyle: React.CSSProperties = { interface IMediaModal { media: readonly Attachment[]; - status?: EntityTypes[Entities.STATUSES]; + status?: StatusEntity; index: number; time?: number; onClose(): void; @@ -343,7 +342,7 @@ const MediaModal: React.FC = (props) => { className={clsx('absolute bottom-2 flex w-full transition-opacity', navigationHiddenClassName)} > @@ -361,7 +360,7 @@ const MediaModal: React.FC = (props) => { } >