From 047df5939f3c24512f7be8ba4bf57a1672641cd7 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Thu, 22 Feb 2024 16:32:22 -0800 Subject: [PATCH] A bunch of speculative non-working UI --- src/alf/atoms.ts | 3 + src/components/ModerationServiceCard/Card.tsx | 2 +- .../ModerationServiceCard/index.tsx | 2 +- src/lib/moderation/useLabelGroupStrings.ts | 4 + src/screens/Moderation/index.tsx | 298 +++++++++++++++++- .../Profile/Sections/ContentFilters.tsx | 4 +- .../PreferenceRow.tsx | 33 +- src/view/screens/Profile.tsx | 2 +- 8 files changed, 320 insertions(+), 28 deletions(-) diff --git a/src/alf/atoms.ts b/src/alf/atoms.ts index f75e8ffe0b..6969803bd6 100644 --- a/src/alf/atoms.ts +++ b/src/alf/atoms.ts @@ -216,6 +216,9 @@ export const atoms = { font_normal: { fontWeight: tokens.fontWeight.normal, }, + font_semibold: { + fontWeight: '500', + }, font_bold: { fontWeight: tokens.fontWeight.semibold, }, diff --git a/src/components/ModerationServiceCard/Card.tsx b/src/components/ModerationServiceCard/Card.tsx index a30c8c065e..b53447331c 100644 --- a/src/components/ModerationServiceCard/Card.tsx +++ b/src/components/ModerationServiceCard/Card.tsx @@ -78,7 +78,7 @@ export function Content({ ) : ( - Moderation service managed by @{sanitizeHandle(handle, '@')} + Moderation service managed by {sanitizeHandle(handle, '@')} )} diff --git a/src/components/ModerationServiceCard/index.tsx b/src/components/ModerationServiceCard/index.tsx index 3806064980..0f1ba8aa9e 100644 --- a/src/components/ModerationServiceCard/index.tsx +++ b/src/components/ModerationServiceCard/index.tsx @@ -23,7 +23,7 @@ export function Link({ return ( { + try { + await setAdultContentPref({ + enabled: selected, + }) + } catch (e) { + // TODO + console.error(e) + } + }, + [setAdultContentPref], + ) + return ( @@ -275,6 +297,110 @@ export function ModerationScreenInner({ + + Content filters + + + + + Enable adult content + + + + + {adultContentEnabled ? ( + Enabled + ) : ( + Disabled + )} + + + + + + {adultContentEnabled && ( + <> + + g.id === 'porn')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + g.id === 'suggestive')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + g.id === 'nudity')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + g.id === 'violence')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + )} + + + + + Hide posts by bots + + + Bots are automated users which follow the rules. + + + + + + {false ? Enabled : Disabled} + + + + + + + - Labelers + Advanced - - + + + + + + + + {modservices.map(mod => { return ( + { + undefined /* + Bluesky Safety{' '} + + @safety.bsky.app + + + + g.id === 'intolerance')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + g.id === 'misrepresentation')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + g.id === 'security')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + g.id === 'spam')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + + {modservices.map(mod => { + return ( + <> + + {mod.creator.displayName}{' '} + + @{mod.creator.handle} + + + + {mod.policies.labelValues + .filter(label => !label.startsWith('!')) + .map((label, i) => { + return ( + + {i !== 0 && } + + + ) + })} + + + ) + })} + + + Other + + + g.id === 'bot')!.id} + labelers={[]} + preferences={preferences} + openModSettingsDialog={openModSettingsDialog} + /> + + ) })} - + */ + } + - + {name} {description} @@ -431,15 +701,17 @@ function LabelGroup({ )} values={[value]} onChange={onChangeVisibility}> - - {labelOptions.hide} - {labelOptions.warn} - - {labelOptions.show} + + {labelOptions.hide} + { + undefined /* + {labelOptions.show} + */ + } diff --git a/src/screens/Profile/Sections/ContentFilters.tsx b/src/screens/Profile/Sections/ContentFilters.tsx index 67a3bd1b68..68b1574fbc 100644 --- a/src/screens/Profile/Sections/ContentFilters.tsx +++ b/src/screens/Profile/Sections/ContentFilters.tsx @@ -161,7 +161,7 @@ export function ProfileContentFiltersSectionInner({ borderWidth: 0, paddingHorizontal: a.px_xl.paddingLeft, }}> - {isSubscribed ? ( + {false /* TODO wanted? isSubscribed*/ ? ( @@ -185,7 +185,7 @@ export function ProfileContentFiltersSectionInner({ ) : ( - This labeler moderates the following types of content. + This service labels the following types of content. )} diff --git a/src/screens/ProfileModerationService/PreferenceRow.tsx b/src/screens/ProfileModerationService/PreferenceRow.tsx index dba8f0000e..9cde55db95 100644 --- a/src/screens/ProfileModerationService/PreferenceRow.tsx +++ b/src/screens/ProfileModerationService/PreferenceRow.tsx @@ -12,7 +12,7 @@ import {logger} from '#/logger' import {useTheme, atoms as a} from '#/alf' import {Text} from '#/components/Typography' -import * as Toggle from '#/components/forms/Toggle' +import * as ToggleButton from '#/components/forms/ToggleButton' export function PreferenceRow({ labelGroup, @@ -50,6 +50,12 @@ export function PreferenceRow({ } }, [mutateAsync, enabled, modservicePreferences, labelGroup]) + const labelOptions = { + hide: _(msg`Hide`), + warn: _(msg`Warn`), + show: _(msg`Ignore`), + } + return ( {modservicePreferences && ( - - {enabled ? 'Enabled' : 'Disabled'} - - + {}}> + + {labelOptions.show} + + + {labelOptions.warn} + + + {labelOptions.hide} + + )} diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index 5c13162930..90684d655c 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -490,7 +490,7 @@ function ProfileScreenLoadedV2({ const sectionTitles = useMemo(() => { return [ - showFiltersTab ? _(msg`Content Filters`) : undefined, + showFiltersTab ? _(msg`Content filters`) : undefined, showPostsTab ? _(msg`Posts`) : undefined, showRepliesTab ? _(msg`Replies`) : undefined, showMediaTab ? _(msg`Media`) : undefined,