diff --git a/src/components/activity-notifications/SubscribeProfileButton.tsx b/src/components/activity-notifications/SubscribeProfileButton.tsx index 1d4dce9e31..baecb0bef6 100644 --- a/src/components/activity-notifications/SubscribeProfileButton.tsx +++ b/src/components/activity-notifications/SubscribeProfileButton.tsx @@ -1,4 +1,5 @@ import {useCallback} from 'react' +import {type ModerationOpts} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -13,8 +14,10 @@ import {SubscribeProfileDialog} from './SubscribeProfileDialog' export function SubscribeProfileButton({ profile, + moderationOpts, }: { profile: bsky.profile.AnyProfileView + moderationOpts: ModerationOpts }) { const {_} = useLingui() const requireEmailVerification = useRequireEmailVerification() @@ -53,6 +56,7 @@ export function SubscribeProfileButton({ ) diff --git a/src/components/activity-notifications/SubscribeProfileDialog.tsx b/src/components/activity-notifications/SubscribeProfileDialog.tsx index 89ee455f3b..c6499ac15c 100644 --- a/src/components/activity-notifications/SubscribeProfileDialog.tsx +++ b/src/components/activity-notifications/SubscribeProfileDialog.tsx @@ -1,5 +1,6 @@ import {useMemo, useState} from 'react' import {View} from 'react-native' +import {type ModerationOpts} from '@atproto/api' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' @@ -10,20 +11,29 @@ import {atoms as a} from '#/alf' import {Button, type ButtonProps, ButtonText} from '#/components/Button' import * as Dialog from '#/components/Dialog' import * as Toggle from '#/components/forms/Toggle' +import * as ProfileCard from '#/components/ProfileCard' import {Text} from '#/components/Typography' import type * as bsky from '#/types/bsky' export function SubscribeProfileDialog({ control, profile, + moderationOpts, + includeProfile, }: { control: Dialog.DialogControlProps profile: bsky.profile.AnyProfileView + moderationOpts: ModerationOpts + includeProfile?: boolean }) { return ( - + ) } @@ -34,7 +44,15 @@ const initialState = { replies: false, } -function DialogInner({profile}: {profile: bsky.profile.AnyProfileView}) { +function DialogInner({ + profile, + moderationOpts, + includeProfile, +}: { + profile: bsky.profile.AnyProfileView + moderationOpts: ModerationOpts + includeProfile?: boolean +}) { const {_} = useLingui() const t = useTheme() const control = Dialog.useDialogContext() @@ -90,6 +108,20 @@ function DialogInner({profile}: {profile: bsky.profile.AnyProfileView}) { + {includeProfile && ( + + + + + )} + {hasSession && !subscriptionsDisallowed && ( - + )} {hasSession && } diff --git a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx index ea5415b403..eaf16971ed 100644 --- a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx +++ b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx @@ -16,8 +16,10 @@ import {useActivitySubscriptionsQuery} from '#/state/queries/activity-subscripti import {useNotificationSettingsQuery} from '#/state/queries/notifications/settings' import {List} from '#/view/com/util/List' import {atoms as a, useTheme} from '#/alf' +import {SubscribeProfileDialog} from '#/components/activity-notifications/SubscribeProfileDialog' import * as Admonition from '#/components/Admonition' import {Button, ButtonText} from '#/components/Button' +import {useDialogControl} from '#/components/Dialog' import {Bell_Filled_Corner0_Rounded as BellIcon} from '#/components/icons/Bell' import {BellRinging_Stroke2_Corner0_Rounded as BellRingingIcon} from '#/components/icons/BellRinging' import * as Layout from '#/components/Layout' @@ -197,6 +199,7 @@ function ActivitySubscriptionCard({ profile: bsky.profile.AnyProfileView moderationOpts: ModerationOpts }) { + const control = useDialogControl() const {_} = useLingui() const t = useTheme() @@ -226,7 +229,8 @@ function ActivitySubscriptionCard({ )} size="small" color="primary" - variant="solid"> + variant="solid" + onPress={control.open}> Edit @@ -234,6 +238,13 @@ function ActivitySubscriptionCard({ {/* */} + + ) }