From a0645902c0712f13853648fae5418a8a2f6ff7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Mon, 27 Oct 2025 12:19:04 +0100 Subject: [PATCH] pl-fe: remove account normalizer and so MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: nicole mikołajczyk --- packages/pl-fe/src/actions/accounts.test.ts | 9 ++++----- packages/pl-fe/src/actions/auth.ts | 2 +- packages/pl-fe/src/actions/compose.ts | 7 +++---- packages/pl-fe/src/actions/export-data.ts | 3 +-- packages/pl-fe/src/actions/reports.ts | 2 +- packages/pl-fe/src/actions/security.ts | 2 +- .../src/api/hooks/accounts/use-account-lookup.ts | 7 +++---- packages/pl-fe/src/api/hooks/accounts/use-account.ts | 7 +++---- packages/pl-fe/src/api/hooks/admin/use-suggest.ts | 2 +- packages/pl-fe/src/api/hooks/admin/use-verify.ts | 2 +- .../src/api/hooks/groups/use-demote-group-member.ts | 5 ++--- .../hooks/groups/use-group-membership-requests.ts | 5 ++--- .../src/api/hooks/groups/use-promote-group-member.ts | 3 +-- packages/pl-fe/src/components/account-hover-card.tsx | 2 +- packages/pl-fe/src/components/account.tsx | 2 +- .../pl-fe/src/components/dropdown-navigation.tsx | 2 +- packages/pl-fe/src/components/quoted-status.test.tsx | 5 ++--- packages/pl-fe/src/components/status-action-bar.tsx | 3 +-- packages/pl-fe/src/entity-store/entities.ts | 3 +-- .../pl-fe/src/features/account/components/header.tsx | 2 +- .../notifications/components/notification.tsx | 3 +-- .../pl-fe/src/features/status/components/thread.tsx | 2 +- .../src/features/ui/components/action-button.tsx | 2 +- .../ui/components/panels/account-note-panel.tsx | 2 +- .../ui/components/panels/pinned-accounts-panel.tsx | 2 +- .../ui/components/panels/profile-fields-panel.tsx | 2 +- .../ui/components/panels/profile-info-panel.tsx | 2 +- .../ui/components/panels/profile-media-panel.tsx | 2 +- .../ui/components/panels/who-to-follow-panel.tsx | 2 +- .../src/features/ui/components/profile-dropdown.tsx | 2 +- .../ui/components/profile-familiar-followers.tsx | 2 +- .../src/features/ui/components/profile-field.tsx | 2 +- .../src/features/ui/components/profile-stats.tsx | 2 +- .../features/ui/components/subscription-button.tsx | 2 +- .../modals/report-modal/steps/other-actions-step.tsx | 2 +- .../src/modals/report-modal/steps/reason-step.tsx | 2 +- packages/pl-fe/src/normalizers/account.ts | 5 ----- packages/pl-fe/src/normalizers/group-member.ts | 12 ------------ packages/pl-fe/src/normalizers/status.ts | 4 ---- packages/pl-fe/src/pages/dashboard/account.tsx | 2 +- .../src/pages/groups/group-membership-requests.tsx | 2 +- packages/pl-fe/src/queries/settings/domain-blocks.ts | 2 +- packages/pl-fe/src/reducers/auth.ts | 2 +- packages/pl-fe/src/reducers/compose.ts | 3 +-- packages/pl-fe/src/selectors/index.ts | 3 +-- packages/pl-fe/src/utils/accounts.ts | 2 +- packages/pl-fe/src/utils/badges.ts | 2 +- 47 files changed, 56 insertions(+), 91 deletions(-) delete mode 100644 packages/pl-fe/src/normalizers/account.ts delete mode 100644 packages/pl-fe/src/normalizers/group-member.ts diff --git a/packages/pl-fe/src/actions/accounts.test.ts b/packages/pl-fe/src/actions/accounts.test.ts index 3c1e628ca..2128d76d9 100644 --- a/packages/pl-fe/src/actions/accounts.test.ts +++ b/packages/pl-fe/src/actions/accounts.test.ts @@ -3,7 +3,6 @@ import { Map as ImmutableMap } from 'immutable'; import { __stub } from 'pl-fe/api'; import { buildInstance, buildRelationship } from 'pl-fe/jest/factory'; import { mockStore, rootState } from 'pl-fe/jest/test-helpers'; -import { normalizeAccount } from 'pl-fe/normalizers/account'; import { createAccount, @@ -51,12 +50,12 @@ describe('fetchAccount()', () => { describe('when the account has "should_refetch" set to false', () => { beforeEach(() => { - const account = normalizeAccount({ + const account = { id, acct: 'justin-username', display_name: 'Justin L', avatar: 'test.jpg', - }); + }; const state = { ...rootState, @@ -149,13 +148,13 @@ describe('fetchAccountByUsername()', () => { let state, account: any; beforeEach(() => { - account = normalizeAccount({ + account = { id, acct: username, display_name: 'Tiger', avatar: 'test.jpg', birthday: undefined, - }); + }; state = { ...rootState, diff --git a/packages/pl-fe/src/actions/auth.ts b/packages/pl-fe/src/actions/auth.ts index 95b9d1df5..d2e4d125f 100644 --- a/packages/pl-fe/src/actions/auth.ts +++ b/packages/pl-fe/src/actions/auth.ts @@ -37,7 +37,7 @@ import { type PlfeResponse, getClient } from '../api'; import { importEntities } from './importer'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; import type { AppDispatch, RootState } from 'pl-fe/store'; const SWITCH_ACCOUNT = 'SWITCH_ACCOUNT' as const; diff --git a/packages/pl-fe/src/actions/compose.ts b/packages/pl-fe/src/actions/compose.ts index 943f68ed9..baebb0c66 100644 --- a/packages/pl-fe/src/actions/compose.ts +++ b/packages/pl-fe/src/actions/compose.ts @@ -20,10 +20,9 @@ import { saveSettings } from './settings'; import { createStatus } from './statuses'; import type { EditorState } from 'lexical'; -import type { Account as BaseAccount, CreateStatusParams, CustomEmoji, Group, MediaAttachment, Status as BaseStatus, Tag, Poll, ScheduledStatus, InteractionPolicy, UpdateMediaParams } from 'pl-api'; +import type { Account, CreateStatusParams, CustomEmoji, Group, MediaAttachment, Status as BaseStatus, Tag, Poll, ScheduledStatus, InteractionPolicy, UpdateMediaParams } from 'pl-api'; import type { AutoSuggestion } from 'pl-fe/components/autosuggest-input'; import type { Emoji } from 'pl-fe/features/emoji'; -import type { Account } from 'pl-fe/normalizers/account'; import type { Status } from 'pl-fe/normalizers/status'; import type { Policy, Rule, Scope } from 'pl-fe/pages/settings/interaction-policies'; import type { ClearLinkSuggestion } from 'pl-fe/reducers/compose'; @@ -688,7 +687,7 @@ interface ComposeSuggestionsReadyAction { composeId: string; token: string; emojis?: Emoji[]; - accounts?: BaseAccount[]; + accounts?: Account[]; } const readyComposeSuggestionsEmojis = (composeId: string, token: string, emojis: Emoji[]) => ({ @@ -698,7 +697,7 @@ const readyComposeSuggestionsEmojis = (composeId: string, token: string, emojis: emojis, }); -const readyComposeSuggestionsAccounts = (composeId: string, token: string, accounts: BaseAccount[]) => ({ +const readyComposeSuggestionsAccounts = (composeId: string, token: string, accounts: Account[]) => ({ type: COMPOSE_SUGGESTIONS_READY, composeId, token, diff --git a/packages/pl-fe/src/actions/export-data.ts b/packages/pl-fe/src/actions/export-data.ts index 05ed669a0..4a62dad52 100644 --- a/packages/pl-fe/src/actions/export-data.ts +++ b/packages/pl-fe/src/actions/export-data.ts @@ -1,7 +1,6 @@ import { defineMessages } from 'react-intl'; import { getClient } from 'pl-fe/api'; -import { normalizeAccount } from 'pl-fe/normalizers/account'; import toast from 'pl-fe/toast'; import type { Account, PaginatedResponse } from 'pl-api'; @@ -32,7 +31,7 @@ const listAccounts = async (response: PaginatedResponse) => { Array.prototype.push.apply(followings, response.items); } - accounts = followings.map((account) => normalizeAccount(account).fqn); + accounts = followings.map((account) => account.fqn); return Array.from(new Set(accounts)); }; diff --git a/packages/pl-fe/src/actions/reports.ts b/packages/pl-fe/src/actions/reports.ts index bc7b505f6..a6391b729 100644 --- a/packages/pl-fe/src/actions/reports.ts +++ b/packages/pl-fe/src/actions/reports.ts @@ -2,7 +2,7 @@ import { useModalsStore } from 'pl-fe/stores/modals'; import { getClient } from '../api'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; import type { Status } from 'pl-fe/normalizers/status'; import type { AppDispatch, RootState } from 'pl-fe/store'; diff --git a/packages/pl-fe/src/actions/security.ts b/packages/pl-fe/src/actions/security.ts index 966922c20..8eb4c715b 100644 --- a/packages/pl-fe/src/actions/security.ts +++ b/packages/pl-fe/src/actions/security.ts @@ -11,7 +11,7 @@ import { normalizeUsername } from 'pl-fe/utils/input'; import { AUTH_LOGGED_OUT, messages } from './auth'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; import type { AppDispatch, RootState } from 'pl-fe/store'; const changePassword = (oldPassword: string, newPassword: string) => diff --git a/packages/pl-fe/src/api/hooks/accounts/use-account-lookup.ts b/packages/pl-fe/src/api/hooks/accounts/use-account-lookup.ts index 4e47b4459..23eee35fd 100644 --- a/packages/pl-fe/src/api/hooks/accounts/use-account-lookup.ts +++ b/packages/pl-fe/src/api/hooks/accounts/use-account-lookup.ts @@ -5,10 +5,9 @@ import { useEntityLookup } from 'pl-fe/entity-store/hooks/use-entity-lookup'; import { useClient } from 'pl-fe/hooks/use-client'; import { useFeatures } from 'pl-fe/hooks/use-features'; import { useLoggedIn } from 'pl-fe/hooks/use-logged-in'; -import { type Account, normalizeAccount } from 'pl-fe/normalizers/account'; import { useRelationshipQuery } from 'pl-fe/queries/accounts/use-relationship'; -import type { Account as BaseAccount } from 'pl-api'; +import type { Account } from 'pl-api'; interface UseAccountLookupOpts { withRelationship?: boolean; @@ -20,11 +19,11 @@ const useAccountLookup = (acct: string | undefined, opts: UseAccountLookupOpts = const { me } = useLoggedIn(); const { withRelationship } = opts; - const { entity, isUnauthorized, ...result } = useEntityLookup( + const { entity, isUnauthorized, ...result } = useEntityLookup( Entities.ACCOUNTS, (account) => account.acct.toLowerCase() === acct?.toLowerCase(), () => client.accounts.lookupAccount(acct!), - { enabled: !!acct, transform: normalizeAccount }, + { enabled: !!acct }, ); const { diff --git a/packages/pl-fe/src/api/hooks/accounts/use-account.ts b/packages/pl-fe/src/api/hooks/accounts/use-account.ts index e286dce38..e4a13ae79 100644 --- a/packages/pl-fe/src/api/hooks/accounts/use-account.ts +++ b/packages/pl-fe/src/api/hooks/accounts/use-account.ts @@ -6,10 +6,9 @@ import { useAppSelector } from 'pl-fe/hooks/use-app-selector'; import { useClient } from 'pl-fe/hooks/use-client'; import { useFeatures } from 'pl-fe/hooks/use-features'; import { useLoggedIn } from 'pl-fe/hooks/use-logged-in'; -import { type Account, normalizeAccount } from 'pl-fe/normalizers/account'; import { useRelationshipQuery } from 'pl-fe/queries/accounts/use-relationship'; -import type { Account as BaseAccount } from 'pl-api'; +import type { Account } from 'pl-api'; interface UseAccountOpts { withRelationship?: boolean; @@ -21,10 +20,10 @@ const useAccount = (accountId?: string, opts: UseAccountOpts = {}) => { const { me } = useLoggedIn(); const { withRelationship } = opts; - const { entity, isUnauthorized, ...result } = useEntity( + const { entity, isUnauthorized, ...result } = useEntity( [Entities.ACCOUNTS, accountId!], () => client.accounts.getAccount(accountId!), - { enabled: !!accountId, transform: normalizeAccount }, + { enabled: !!accountId }, ); const meta = useAppSelector((state) => accountId ? state.accounts_meta[accountId] : undefined); diff --git a/packages/pl-fe/src/api/hooks/admin/use-suggest.ts b/packages/pl-fe/src/api/hooks/admin/use-suggest.ts index 643e34d37..32fd4de8d 100644 --- a/packages/pl-fe/src/api/hooks/admin/use-suggest.ts +++ b/packages/pl-fe/src/api/hooks/admin/use-suggest.ts @@ -2,7 +2,7 @@ import { EntityCallbacks } from 'pl-fe/entity-store/hooks/types'; import { useTransaction } from 'pl-fe/entity-store/hooks/use-transaction'; import { useClient } from 'pl-fe/hooks/use-client'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const useSuggest = () => { const client = useClient(); diff --git a/packages/pl-fe/src/api/hooks/admin/use-verify.ts b/packages/pl-fe/src/api/hooks/admin/use-verify.ts index f0e04db04..988e265e4 100644 --- a/packages/pl-fe/src/api/hooks/admin/use-verify.ts +++ b/packages/pl-fe/src/api/hooks/admin/use-verify.ts @@ -2,7 +2,7 @@ import { useTransaction } from 'pl-fe/entity-store/hooks/use-transaction'; import { useClient } from 'pl-fe/hooks/use-client'; import type { EntityCallbacks } from 'pl-fe/entity-store/hooks/types'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const useVerify = () => { const client = useClient(); diff --git a/packages/pl-fe/src/api/hooks/groups/use-demote-group-member.ts b/packages/pl-fe/src/api/hooks/groups/use-demote-group-member.ts index 7a1a6c64c..98d46508b 100644 --- a/packages/pl-fe/src/api/hooks/groups/use-demote-group-member.ts +++ b/packages/pl-fe/src/api/hooks/groups/use-demote-group-member.ts @@ -3,9 +3,8 @@ import * as v from 'valibot'; import { Entities } from 'pl-fe/entity-store/entities'; import { useCreateEntity } from 'pl-fe/entity-store/hooks/use-create-entity'; import { useClient } from 'pl-fe/hooks/use-client'; -import { normalizeGroupMember } from 'pl-fe/normalizers/group-member'; -import type { Group, GroupMember as GroupMember, GroupRole } from 'pl-api'; +import type { Group, GroupMember, GroupRole } from 'pl-api'; const useDemoteGroupMember = (group: Pick, groupMember: Pick) => { const client = useClient(); @@ -13,7 +12,7 @@ const useDemoteGroupMember = (group: Pick, groupMember: Pick client.experimental.groups.demoteGroupUsers(group.id, account_ids, role), - { schema: v.pipe(v.any(), v.transform(arr => arr[0])), transform: normalizeGroupMember }, + { schema: v.pipe(v.any(), v.transform(arr => arr[0])) }, ); return createEntity; diff --git a/packages/pl-fe/src/api/hooks/groups/use-group-membership-requests.ts b/packages/pl-fe/src/api/hooks/groups/use-group-membership-requests.ts index 2951f1cdb..ac231fe38 100644 --- a/packages/pl-fe/src/api/hooks/groups/use-group-membership-requests.ts +++ b/packages/pl-fe/src/api/hooks/groups/use-group-membership-requests.ts @@ -4,10 +4,10 @@ import { Entities } from 'pl-fe/entity-store/entities'; import { useDismissEntity } from 'pl-fe/entity-store/hooks/use-dismiss-entity'; import { useEntities } from 'pl-fe/entity-store/hooks/use-entities'; import { useClient } from 'pl-fe/hooks/use-client'; -import { normalizeAccount } from 'pl-fe/normalizers/account'; import { useGroupRelationship } from './use-group-relationship'; +import type { Account } from 'pl-api'; import type { ExpandedEntitiesPath } from 'pl-fe/entity-store/hooks/types'; const useGroupMembershipRequests = (groupId: string) => { @@ -16,11 +16,10 @@ const useGroupMembershipRequests = (groupId: string) => { const { groupRelationship: relationship } = useGroupRelationship(groupId); - const { entities, invalidate, fetchEntities, ...rest } = useEntities( + const { entities, invalidate, fetchEntities, ...rest } = useEntities( path, () => client.experimental.groups.getGroupMembershipRequests(groupId), { - transform: normalizeAccount, enabled: relationship?.role === GroupRoles.OWNER || relationship?.role === GroupRoles.ADMIN, }, ); diff --git a/packages/pl-fe/src/api/hooks/groups/use-promote-group-member.ts b/packages/pl-fe/src/api/hooks/groups/use-promote-group-member.ts index 84a132593..57f954a1e 100644 --- a/packages/pl-fe/src/api/hooks/groups/use-promote-group-member.ts +++ b/packages/pl-fe/src/api/hooks/groups/use-promote-group-member.ts @@ -3,7 +3,6 @@ import * as v from 'valibot'; import { Entities } from 'pl-fe/entity-store/entities'; import { useCreateEntity } from 'pl-fe/entity-store/hooks/use-create-entity'; import { useClient } from 'pl-fe/hooks/use-client'; -import { normalizeGroupMember } from 'pl-fe/normalizers/group-member'; import type { Group, GroupMember, GroupRole } from 'pl-api'; @@ -13,7 +12,7 @@ const usePromoteGroupMember = (group: Pick, groupMember: Pick client.experimental.groups.promoteGroupUsers(group.id, account_ids, role), - { schema: v.pipe(v.any(), v.transform(arr => arr[0])), transform: normalizeGroupMember }, + { schema: v.pipe(v.any(), v.transform(arr => arr[0])) }, ); return createEntity; diff --git a/packages/pl-fe/src/components/account-hover-card.tsx b/packages/pl-fe/src/components/account-hover-card.tsx index 87058afd3..fd1a8f1d2 100644 --- a/packages/pl-fe/src/components/account-hover-card.tsx +++ b/packages/pl-fe/src/components/account-hover-card.tsx @@ -27,7 +27,7 @@ import { ParsedContent } from './parsed-content'; import { dateFormatOptions } from './relative-timestamp'; import Scrobble from './scrobble'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const messages = { pronouns: { id: 'account.pronouns.with_label', defaultMessage: 'Pronouns: {pronouns}' }, diff --git a/packages/pl-fe/src/components/account.tsx b/packages/pl-fe/src/components/account.tsx index d662964a2..4e4942d4f 100644 --- a/packages/pl-fe/src/components/account.tsx +++ b/packages/pl-fe/src/components/account.tsx @@ -22,7 +22,7 @@ import Badge from './badge'; import { ParsedContent } from './parsed-content'; import RelativeTimestamp from './relative-timestamp'; -import type { Account as AccountSchema } from 'pl-fe/normalizers/account'; +import type { Account as AccountSchema } from 'pl-api'; import type { StatusApprovalStatus } from 'pl-fe/normalizers/status'; interface IInstanceFavicon { diff --git a/packages/pl-fe/src/components/dropdown-navigation.tsx b/packages/pl-fe/src/components/dropdown-navigation.tsx index 231743d7b..b991efb0d 100644 --- a/packages/pl-fe/src/components/dropdown-navigation.tsx +++ b/packages/pl-fe/src/components/dropdown-navigation.tsx @@ -27,7 +27,7 @@ import { useSettings } from 'pl-fe/stores/settings'; import { useIsSidebarOpen, useUiStoreActions } from 'pl-fe/stores/ui'; import sourceCode from 'pl-fe/utils/code'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; interface IDropdownNavigationLink { href?: string; diff --git a/packages/pl-fe/src/components/quoted-status.test.tsx b/packages/pl-fe/src/components/quoted-status.test.tsx index a5dac5119..47773018f 100644 --- a/packages/pl-fe/src/components/quoted-status.test.tsx +++ b/packages/pl-fe/src/components/quoted-status.test.tsx @@ -1,7 +1,6 @@ import React from 'react'; import { render, screen, rootState } from 'pl-fe/jest/test-helpers'; -import { normalizeAccount } from 'pl-fe/normalizers/account'; import { normalizeStatus } from 'pl-fe/normalizers/status'; import QuotedStatus from './quoted-status'; @@ -10,11 +9,11 @@ import type { ReducerStatus } from 'pl-fe/reducers/statuses'; describe('', () => { it('renders content', () => { - const account = normalizeAccount({ + const account = { id: '1', acct: 'alex', url: 'https://soapbox.test/users/alex', - }); + }; const status = normalizeStatus({ id: '1', diff --git a/packages/pl-fe/src/components/status-action-bar.tsx b/packages/pl-fe/src/components/status-action-bar.tsx index d69df4681..824c0598d 100644 --- a/packages/pl-fe/src/components/status-action-bar.tsx +++ b/packages/pl-fe/src/components/status-action-bar.tsx @@ -1,4 +1,4 @@ -import { type CustomEmoji, GroupRoles, Group } from 'pl-api'; +import { type Account, type CustomEmoji, type Group, GroupRoles } from 'pl-api'; import React, { useCallback, useMemo } from 'react'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { useHistory, useRouteMatch } from 'react-router-dom'; @@ -41,7 +41,6 @@ import Popover from './ui/popover'; import type { Menu } from 'pl-fe/components/dropdown-menu'; import type { Emoji as EmojiType } from 'pl-fe/features/emoji'; import type { UnauthorizedModalAction } from 'pl-fe/modals/unauthorized-modal'; -import type { Account } from 'pl-fe/normalizers/account'; import type { SelectedStatus } from 'pl-fe/selectors'; import type { Me } from 'pl-fe/types/pl-fe'; diff --git a/packages/pl-fe/src/entity-store/entities.ts b/packages/pl-fe/src/entity-store/entities.ts index 5ab905746..4f822f0ac 100644 --- a/packages/pl-fe/src/entity-store/entities.ts +++ b/packages/pl-fe/src/entity-store/entities.ts @@ -1,5 +1,4 @@ -import type { GroupMember, GroupRelationship, Group } from 'pl-api'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account, Group, GroupMember, GroupRelationship } from 'pl-api'; enum Entities { ACCOUNTS = 'Accounts', diff --git a/packages/pl-fe/src/features/account/components/header.tsx b/packages/pl-fe/src/features/account/components/header.tsx index a6cc9c88b..67e4ad23e 100644 --- a/packages/pl-fe/src/features/account/components/header.tsx +++ b/packages/pl-fe/src/features/account/components/header.tsx @@ -45,8 +45,8 @@ import { useSettings } from 'pl-fe/stores/settings'; import toast from 'pl-fe/toast'; import copy from 'pl-fe/utils/copy'; +import type { Account as AccountEntity } from 'pl-api'; import type { PlfeResponse } from 'pl-fe/api'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; const messages = defineMessages({ edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, diff --git a/packages/pl-fe/src/features/notifications/components/notification.tsx b/packages/pl-fe/src/features/notifications/components/notification.tsx index 2da731274..4bac0addb 100644 --- a/packages/pl-fe/src/features/notifications/components/notification.tsx +++ b/packages/pl-fe/src/features/notifications/components/notification.tsx @@ -23,8 +23,7 @@ import { useSettings } from 'pl-fe/stores/settings'; import { useStatusMetaActions } from 'pl-fe/stores/status-meta'; import { NotificationType } from 'pl-fe/utils/notification'; -import type { NotificationGroup } from 'pl-api'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account, NotificationGroup } from 'pl-api'; import type { Status as StatusEntity } from 'pl-fe/normalizers/status'; const notificationForScreenReader = (intl: IntlShape, message: string, timestamp: string) => { diff --git a/packages/pl-fe/src/features/status/components/thread.tsx b/packages/pl-fe/src/features/status/components/thread.tsx index 14ae863e1..b1486611a 100644 --- a/packages/pl-fe/src/features/status/components/thread.tsx +++ b/packages/pl-fe/src/features/status/components/thread.tsx @@ -26,7 +26,7 @@ import { textForScreenReader } from 'pl-fe/utils/status'; import DetailedStatus from './detailed-status'; import ThreadStatus from './thread-status'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; import type { Status } from 'pl-fe/normalizers/status'; import type { SelectedStatus } from 'pl-fe/selectors'; import type { VirtuosoHandle } from 'react-virtuoso'; diff --git a/packages/pl-fe/src/features/ui/components/action-button.tsx b/packages/pl-fe/src/features/ui/components/action-button.tsx index 0f7c93433..813a68840 100644 --- a/packages/pl-fe/src/features/ui/components/action-button.tsx +++ b/packages/pl-fe/src/features/ui/components/action-button.tsx @@ -20,7 +20,7 @@ import { import { useModalsActions } from 'pl-fe/stores/modals'; import toast from 'pl-fe/toast'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const messages = defineMessages({ block: { id: 'account.block', defaultMessage: 'Block @{name}' }, diff --git a/packages/pl-fe/src/features/ui/components/panels/account-note-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/account-note-panel.tsx index 0aa716912..cb5910457 100644 --- a/packages/pl-fe/src/features/ui/components/panels/account-note-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/account-note-panel.tsx @@ -9,7 +9,7 @@ import Widget from 'pl-fe/components/ui/widget'; import { useAppSelector } from 'pl-fe/hooks/use-app-selector'; import { useUpdateAccountNoteMutation } from 'pl-fe/queries/accounts/use-relationship'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; const messages = defineMessages({ placeholder: { id: 'account_note.placeholder', defaultMessage: 'Click to add a note' }, diff --git a/packages/pl-fe/src/features/ui/components/panels/pinned-accounts-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/pinned-accounts-panel.tsx index 122756e4c..fcac227e5 100644 --- a/packages/pl-fe/src/features/ui/components/panels/pinned-accounts-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/pinned-accounts-panel.tsx @@ -7,7 +7,7 @@ import Emojify from 'pl-fe/features/emoji/emojify'; import { WhoToFollowPanel } from 'pl-fe/features/ui/util/async-components'; import { useEndorsedAccounts } from 'pl-fe/queries/accounts/use-endorsed-accounts'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; interface IPinnedAccountsPanel { account: Pick; diff --git a/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx index 09a8a4376..c7842690e 100644 --- a/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/profile-fields-panel.tsx @@ -5,7 +5,7 @@ import Widget from 'pl-fe/components/ui/widget'; import ProfileField from '../profile-field'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; interface IProfileFieldsPanel { account: Pick; diff --git a/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx index 9426d810b..60041531e 100644 --- a/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/profile-info-panel.tsx @@ -21,7 +21,7 @@ import ProfileFamiliarFollowers from '../profile-familiar-followers'; import ProfileField from '../profile-field'; import ProfileStats from '../profile-stats'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const messages = defineMessages({ linkVerifiedOn: { id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}' }, diff --git a/packages/pl-fe/src/features/ui/components/panels/profile-media-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/profile-media-panel.tsx index b7871ab7a..799fa0619 100644 --- a/packages/pl-fe/src/features/ui/components/panels/profile-media-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/profile-media-panel.tsx @@ -8,7 +8,7 @@ import { type AccountGalleryAttachment, useAccountGallery } from 'pl-fe/hooks/us import { MediaItem } from 'pl-fe/pages/accounts/account-gallery'; import { useModalsActions } from 'pl-fe/stores/modals'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; interface IProfileMediaPanel { account?: Account; diff --git a/packages/pl-fe/src/features/ui/components/panels/who-to-follow-panel.tsx b/packages/pl-fe/src/features/ui/components/panels/who-to-follow-panel.tsx index 328d9f585..a9e2b441d 100644 --- a/packages/pl-fe/src/features/ui/components/panels/who-to-follow-panel.tsx +++ b/packages/pl-fe/src/features/ui/components/panels/who-to-follow-panel.tsx @@ -9,7 +9,7 @@ import PlaceholderSidebarSuggestions from 'pl-fe/features/placeholder/components import { useFeatures } from 'pl-fe/hooks/use-features'; import { useDismissSuggestion, useSuggestions } from 'pl-fe/queries/suggestions'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; const messages = defineMessages({ dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' }, diff --git a/packages/pl-fe/src/features/ui/components/profile-dropdown.tsx b/packages/pl-fe/src/features/ui/components/profile-dropdown.tsx index ff12d9b9c..748e7ae68 100644 --- a/packages/pl-fe/src/features/ui/components/profile-dropdown.tsx +++ b/packages/pl-fe/src/features/ui/components/profile-dropdown.tsx @@ -15,7 +15,7 @@ import { RootState } from 'pl-fe/store'; import ThemeToggle from './theme-toggle'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; const messages = defineMessages({ add: { id: 'profile_dropdown.add_account', defaultMessage: 'Add an existing account' }, diff --git a/packages/pl-fe/src/features/ui/components/profile-familiar-followers.tsx b/packages/pl-fe/src/features/ui/components/profile-familiar-followers.tsx index 77f133622..531f95c35 100644 --- a/packages/pl-fe/src/features/ui/components/profile-familiar-followers.tsx +++ b/packages/pl-fe/src/features/ui/components/profile-familiar-followers.tsx @@ -12,7 +12,7 @@ import Emojify from 'pl-fe/features/emoji/emojify'; import { useFamiliarFollowers } from 'pl-fe/queries/accounts/use-familiar-followers'; import { useModalsActions } from 'pl-fe/stores/modals'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; interface IFamiliarFollowerLink { id: string; diff --git a/packages/pl-fe/src/features/ui/components/profile-field.tsx b/packages/pl-fe/src/features/ui/components/profile-field.tsx index 0bd0eebef..7c442b15e 100644 --- a/packages/pl-fe/src/features/ui/components/profile-field.tsx +++ b/packages/pl-fe/src/features/ui/components/profile-field.tsx @@ -11,7 +11,7 @@ import Emojify from 'pl-fe/features/emoji/emojify'; import { CryptoAddress, LightningAddress } from 'pl-fe/features/ui/util/async-components'; import { unescapeHTML } from 'pl-fe/utils/html'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const getTicker = (value: string): string => (value.match(/\$([a-zA-Z]*)/i) || [])[1]; const isTicker = (value: string): boolean => Boolean(getTicker(value)); diff --git a/packages/pl-fe/src/features/ui/components/profile-stats.tsx b/packages/pl-fe/src/features/ui/components/profile-stats.tsx index af19fee51..8058d7d8c 100644 --- a/packages/pl-fe/src/features/ui/components/profile-stats.tsx +++ b/packages/pl-fe/src/features/ui/components/profile-stats.tsx @@ -7,7 +7,7 @@ import Text from 'pl-fe/components/ui/text'; import { useSettings } from 'pl-fe/stores/settings'; import { shortNumberFormat } from 'pl-fe/utils/numbers'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const messages = defineMessages({ followers: { id: 'account.followers', defaultMessage: 'Followers' }, diff --git a/packages/pl-fe/src/features/ui/components/subscription-button.tsx b/packages/pl-fe/src/features/ui/components/subscription-button.tsx index 4b326ada6..a97d7e82a 100644 --- a/packages/pl-fe/src/features/ui/components/subscription-button.tsx +++ b/packages/pl-fe/src/features/ui/components/subscription-button.tsx @@ -6,7 +6,7 @@ import { useFeatures } from 'pl-fe/hooks/use-features'; import { useFollowAccountMutation } from 'pl-fe/queries/accounts/use-relationship'; import toast from 'pl-fe/toast'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; const messages = defineMessages({ subscribe: { id: 'account.subscribe', defaultMessage: 'Subscribe to notifications from @{name}' }, diff --git a/packages/pl-fe/src/modals/report-modal/steps/other-actions-step.tsx b/packages/pl-fe/src/modals/report-modal/steps/other-actions-step.tsx index 61c8e4fc2..9174c9ff1 100644 --- a/packages/pl-fe/src/modals/report-modal/steps/other-actions-step.tsx +++ b/packages/pl-fe/src/modals/report-modal/steps/other-actions-step.tsx @@ -12,7 +12,7 @@ import { useFeatures } from 'pl-fe/hooks/use-features'; import StatusCheckBox from 'pl-fe/modals/report-modal/components/status-check-box'; import { getDomain } from 'pl-fe/utils/accounts'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const messages = defineMessages({ addAdditionalStatuses: { id: 'report.other_actions.add_additional', defaultMessage: 'Would you like to add additional statuses to this report?' }, diff --git a/packages/pl-fe/src/modals/report-modal/steps/reason-step.tsx b/packages/pl-fe/src/modals/report-modal/steps/reason-step.tsx index fd4b9ac86..694b204e4 100644 --- a/packages/pl-fe/src/modals/report-modal/steps/reason-step.tsx +++ b/packages/pl-fe/src/modals/report-modal/steps/reason-step.tsx @@ -8,7 +8,7 @@ import Text from 'pl-fe/components/ui/text'; import Textarea from 'pl-fe/components/ui/textarea'; import { useInstance } from 'pl-fe/hooks/use-instance'; -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const messages = defineMessages({ placeholder: { id: 'report.placeholder', defaultMessage: 'Additional comments' }, diff --git a/packages/pl-fe/src/normalizers/account.ts b/packages/pl-fe/src/normalizers/account.ts deleted file mode 100644 index a75b7ba86..000000000 --- a/packages/pl-fe/src/normalizers/account.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { Account } from 'pl-api'; - -const normalizeAccount = (account: Account) => account; - -export { normalizeAccount, type Account }; diff --git a/packages/pl-fe/src/normalizers/group-member.ts b/packages/pl-fe/src/normalizers/group-member.ts deleted file mode 100644 index 5a2e3ea85..000000000 --- a/packages/pl-fe/src/normalizers/group-member.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { normalizeAccount } from './account'; - -import type { GroupMember as BaseGroupMember } from 'pl-api'; - -const normalizeGroupMember = (groupMember: BaseGroupMember) => ({ - ...groupMember, - account: normalizeAccount(groupMember.account), -}); - -type GroupMember = ReturnType; - -export { normalizeGroupMember, type GroupMember }; diff --git a/packages/pl-fe/src/normalizers/status.ts b/packages/pl-fe/src/normalizers/status.ts index 5f0bd8fa5..d0a4b5e02 100644 --- a/packages/pl-fe/src/normalizers/status.ts +++ b/packages/pl-fe/src/normalizers/status.ts @@ -8,8 +8,6 @@ import * as v from 'valibot'; import { unescapeHTML } from 'pl-fe/utils/html'; -import { normalizeAccount } from './account'; - const domParser = new DOMParser(); type StatusApprovalStatus = Exclude; @@ -117,8 +115,6 @@ const normalizeStatus = (status: BaseStatus & { deleted: false, ...status, quote_id: status.quote_id || null, - account: normalizeAccount(status.account), - accounts: status.accounts?.map(normalizeAccount), mentions, event, group, diff --git a/packages/pl-fe/src/pages/dashboard/account.tsx b/packages/pl-fe/src/pages/dashboard/account.tsx index 347e9e3d2..ef20281ad 100644 --- a/packages/pl-fe/src/pages/dashboard/account.tsx +++ b/packages/pl-fe/src/pages/dashboard/account.tsx @@ -26,7 +26,7 @@ import { useOwnAccount } from 'pl-fe/hooks/use-own-account'; import toast from 'pl-fe/toast'; import { badgeToTag, tagToBadge, getBadges } from 'pl-fe/utils/badges'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; const messages = defineMessages({ columnHeading: { id: 'column.admin.account', defaultMessage: 'Moderate @{acct}' }, diff --git a/packages/pl-fe/src/pages/groups/group-membership-requests.tsx b/packages/pl-fe/src/pages/groups/group-membership-requests.tsx index 8d52cdb9b..a052cf6a6 100644 --- a/packages/pl-fe/src/pages/groups/group-membership-requests.tsx +++ b/packages/pl-fe/src/pages/groups/group-membership-requests.tsx @@ -12,8 +12,8 @@ import Spinner from 'pl-fe/components/ui/spinner'; import ColumnForbidden from 'pl-fe/features/ui/components/column-forbidden'; import toast from 'pl-fe/toast'; +import type { Account as AccountEntity } from 'pl-api'; import type { PlfeResponse } from 'pl-fe/api'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; type RouteParams = { groupId: string }; diff --git a/packages/pl-fe/src/queries/settings/domain-blocks.ts b/packages/pl-fe/src/queries/settings/domain-blocks.ts index da6bf5d71..4decf3a2c 100644 --- a/packages/pl-fe/src/queries/settings/domain-blocks.ts +++ b/packages/pl-fe/src/queries/settings/domain-blocks.ts @@ -6,8 +6,8 @@ import { makePaginatedResponseQueryOptions } from '../utils/make-paginated-respo import { mutationOptions } from '../utils/mutation-options'; import type { MinifiedSuggestion } from '../trends/use-suggested-accounts'; +import type { Account } from 'pl-api'; import type { EntityStore } from 'pl-fe/entity-store/types'; -import type { Account } from 'pl-fe/normalizers/account'; import type { RootState, Store } from 'pl-fe/store'; let store: Store; diff --git a/packages/pl-fe/src/reducers/auth.ts b/packages/pl-fe/src/reducers/auth.ts index e07468c2d..1c20329b2 100644 --- a/packages/pl-fe/src/reducers/auth.ts +++ b/packages/pl-fe/src/reducers/auth.ts @@ -22,7 +22,7 @@ import { import { ME_FETCH_SKIP, type MeAction } from '../actions/me'; import type { PlfeResponse } from 'pl-fe/api'; -import type { Account as AccountEntity } from 'pl-fe/normalizers/account'; +import type { Account as AccountEntity } from 'pl-api'; const instance = (() => { try { diff --git a/packages/pl-fe/src/reducers/compose.ts b/packages/pl-fe/src/reducers/compose.ts index d8b92a370..28a122822 100644 --- a/packages/pl-fe/src/reducers/compose.ts +++ b/packages/pl-fe/src/reducers/compose.ts @@ -72,10 +72,9 @@ import { FE_NAME } from '../actions/settings'; import { TIMELINE_DELETE, type TimelineAction } from '../actions/timelines'; import { unescapeHTML } from '../utils/html'; -import type { CredentialAccount, Instance, InteractionPolicy, MediaAttachment, Status as BaseStatus, Tag } from 'pl-api'; +import type { Account, CredentialAccount, Instance, InteractionPolicy, MediaAttachment, Status as BaseStatus, Tag } from 'pl-api'; import type { Emoji } from 'pl-fe/features/emoji'; import type { Language } from 'pl-fe/features/preferences'; -import type { Account } from 'pl-fe/normalizers/account'; import type { Status } from 'pl-fe/normalizers/status'; const getResetFileKey = () => Math.floor((Math.random() * 0x10000)); diff --git a/packages/pl-fe/src/selectors/index.ts b/packages/pl-fe/src/selectors/index.ts index d57780bb3..337742cb3 100644 --- a/packages/pl-fe/src/selectors/index.ts +++ b/packages/pl-fe/src/selectors/index.ts @@ -7,9 +7,8 @@ import { validId } from 'pl-fe/utils/auth'; import ConfigDB from 'pl-fe/utils/config-db'; import { shouldFilter } from 'pl-fe/utils/timelines'; -import type { Filter, FilterResult, NotificationGroup, Group } from 'pl-api'; +import type { Account, Filter, FilterResult, Group, NotificationGroup } from 'pl-api'; import type { EntityStore } from 'pl-fe/entity-store/types'; -import type { Account } from 'pl-fe/normalizers/account'; import type { minifyAdminReport } from 'pl-fe/queries/utils/minify-list'; import type { MinifiedStatus } from 'pl-fe/reducers/statuses'; import type { MRFSimple } from 'pl-fe/schemas/pleroma'; diff --git a/packages/pl-fe/src/utils/accounts.ts b/packages/pl-fe/src/utils/accounts.ts index d3e9a1e43..7c0c72018 100644 --- a/packages/pl-fe/src/utils/accounts.ts +++ b/packages/pl-fe/src/utils/accounts.ts @@ -1,4 +1,4 @@ -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; const getDomainFromURL = (account: Pick): string => { try { diff --git a/packages/pl-fe/src/utils/badges.ts b/packages/pl-fe/src/utils/badges.ts index f1bcd8312..89722683f 100644 --- a/packages/pl-fe/src/utils/badges.ts +++ b/packages/pl-fe/src/utils/badges.ts @@ -1,4 +1,4 @@ -import type { Account } from 'pl-fe/normalizers/account'; +import type { Account } from 'pl-api'; /** Convert a plain tag into a badge. */ const tagToBadge = (tag: string) => `badge:${tag}`;