diff --git a/__e2e__/flows/curate-lists.yml b/__e2e__/flows/curate-lists.yml index 906199e979..cc97b0fd72 100644 --- a/__e2e__/flows/curate-lists.yml +++ b/__e2e__/flows/curate-lists.yml @@ -145,21 +145,21 @@ appId: xyz.blueskyweb.app id: "profileHeaderDropdownBtn" - tapOn: "Add to Lists" - assertVisible: - id: "userAddRemoveListsModal" + id: "userAddRemoveListsDialog" - tapOn: id: "user-bob.test-addBtn" - tapOn: id: "doneBtn" - assertNotVisible: - id: "userAddRemoveListsModal" + id: "userAddRemoveListsDialog" - tapOn: id: "profileHeaderDropdownBtn" - tapOn: "Add to Lists" - assertVisible: - id: "userAddRemoveListsModal" + id: "userAddRemoveListsDialog" - tapOn: id: "user-bob.test-addBtn" - tapOn: id: "doneBtn" - assertNotVisible: - id: "userAddRemoveListsModal" + id: "userAddRemoveListsDialog" diff --git a/src/components/dialogs/lists/UserAddRemoveListsDialog.tsx b/src/components/dialogs/lists/UserAddRemoveListsDialog.tsx index 4c0c550649..4d5f939dcc 100644 --- a/src/components/dialogs/lists/UserAddRemoveListsDialog.tsx +++ b/src/components/dialogs/lists/UserAddRemoveListsDialog.tsx @@ -3,6 +3,7 @@ import {View} from 'react-native' import {Trans, useLingui} from '@lingui/react/macro' import {useQueryClient} from '@tanstack/react-query' +import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {isNetworkError} from '#/lib/strings/errors' import {sanitizeHandle} from '#/lib/strings/handles' @@ -27,34 +28,25 @@ import {TimesLarge_Stroke2_Corner0_Rounded as XIcon} from '#/components/icons/Ti import {Loader} from '#/components/Loader' import * as Toast from '#/components/Toast' import {Text} from '#/components/Typography' +import type * as bsky from '#/types/bsky' export type UserAddRemoveListsDialogProps = { control: Dialog.DialogControlProps - subjectDid: string - displayName: string - handle: string + profile: bsky.profile.AnyProfileView | undefined onAdd?: (listUri: string) => void onRemove?: (listUri: string) => void } export function UserAddRemoveListsDialog({ control, - subjectDid, - displayName, - handle, + profile, onAdd, onRemove, }: UserAddRemoveListsDialogProps) { return ( - + ) } @@ -82,12 +74,14 @@ function Empty() { } function ListsContent({ - subjectDid, - displayName, - handle, + profile, onAdd, onRemove, -}: Omit) { +}: { + profile: bsky.profile.AnyProfileView | undefined + onAdd?: (listUri: string) => void + onRemove?: (listUri: string) => void +}) { const control = Dialog.useDialogContext() const {t: l} = useLingui() @@ -98,7 +92,7 @@ function ListsContent({ hasNextPage, isFetchingNextPage, fetchNextPage, - } = useListsWithMembershipQuery({actor: subjectDid}) + } = useListsWithMembershipQuery({actor: profile?.did}) const listItems = data?.pages.flatMap(page => page.listsWithMembership) || [] @@ -112,17 +106,16 @@ function ListsContent({ }, [isFetchingNextPage, hasNextPage, isError, fetchNextPage]) const renderItem = useCallback( - ({item}: {item: ListWithMembership}) => ( - - ), - [subjectDid, displayName, handle, onAdd, onRemove], + ({item}: {item: ListWithMembership}) => + profile ? ( + + ) : null, + [profile, onAdd, onRemove], ) const onClose = useCallback(() => { @@ -139,9 +132,16 @@ function ListsContent({ native(a.pt_lg), ]}> - Update {sanitizeDisplayName(displayName)} in Lists + {profile ? ( + + Update {createSanitizedDisplayName(profile, true)} in Lists + + ) : ( + Update in Lists + )}