fix up debugmod
This commit is contained in:
@@ -688,11 +688,6 @@
|
|||||||
"count": 1
|
"count": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"src/view/screens/DebugMod.tsx": {
|
|
||||||
"@typescript-eslint/no-explicit-any": {
|
|
||||||
"count": 1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"src/view/shell/createNativeStackNavigatorWithAuth.tsx": {
|
"src/view/shell/createNativeStackNavigatorWithAuth.tsx": {
|
||||||
"@typescript-eslint/no-explicit-any": {
|
"@typescript-eslint/no-explicit-any": {
|
||||||
"count": 1
|
"count": 1
|
||||||
|
|||||||
+308
-290
@@ -1,5 +1,6 @@
|
|||||||
import {useMemo, useState} from 'react'
|
import {useMemo, useState} from 'react'
|
||||||
import {View} from 'react-native'
|
import {View} from 'react-native'
|
||||||
|
import {useSharedValue} from 'react-native-reanimated'
|
||||||
import {
|
import {
|
||||||
type AppBskyActorDefs,
|
type AppBskyActorDefs,
|
||||||
type AppBskyFeedDefs,
|
type AppBskyFeedDefs,
|
||||||
@@ -54,6 +55,7 @@ import * as ProfileCard from '#/components/ProfileCard'
|
|||||||
import {H1, H3, P, Text} from '#/components/Typography'
|
import {H1, H3, P, Text} from '#/components/Typography'
|
||||||
import {ScreenHider} from '../../components/moderation/ScreenHider'
|
import {ScreenHider} from '../../components/moderation/ScreenHider'
|
||||||
import {NotificationFeedItem} from '../com/notifications/NotificationFeedItem'
|
import {NotificationFeedItem} from '../com/notifications/NotificationFeedItem'
|
||||||
|
import {PagerHeaderProvider} from '../com/pager/PagerHeaderContext'
|
||||||
import {PostFeedItem} from '../com/posts/PostFeedItem'
|
import {PostFeedItem} from '../com/posts/PostFeedItem'
|
||||||
|
|
||||||
const LABEL_VALUES: (keyof typeof LABELS)[] = Object.keys(
|
const LABEL_VALUES: (keyof typeof LABELS)[] = Object.keys(
|
||||||
@@ -272,325 +274,341 @@ export const DebugModScreen = ({}: NativeStackScreenProps<
|
|||||||
return moderatePost(post, modOpts)
|
return moderatePost(post, modOpts)
|
||||||
}, [post, modOpts])
|
}, [post, modOpts])
|
||||||
|
|
||||||
|
const sv = useSharedValue(0)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout.Screen>
|
<Layout.Screen>
|
||||||
<moderationOptsOverrideContext.Provider value={modOpts}>
|
<PagerHeaderProvider headerHeight={0} scrollY={sv}>
|
||||||
<ScrollView>
|
<moderationOptsOverrideContext.Provider value={modOpts}>
|
||||||
<CenteredView style={[t.atoms.bg, a.px_lg, a.py_lg]}>
|
<ScrollView>
|
||||||
<H1 style={[a.text_5xl, a.font_semi_bold, a.pb_lg]}>
|
<CenteredView style={[t.atoms.bg, a.px_lg, a.py_lg]}>
|
||||||
Moderation states
|
<H1 style={[a.text_5xl, a.font_semi_bold, a.pb_lg]}>
|
||||||
</H1>
|
Moderation states
|
||||||
|
</H1>
|
||||||
|
|
||||||
<Heading title="" subtitle="Scenario" />
|
<Heading title="" subtitle="Scenario" />
|
||||||
<ToggleButton.Group
|
<ToggleButton.Group
|
||||||
label="Scenario"
|
label="Scenario"
|
||||||
values={scenario}
|
values={scenario}
|
||||||
onChange={setScenario}>
|
onChange={setScenario}>
|
||||||
<ToggleButton.Button name="label" label="Label">
|
<ToggleButton.Button name="label" label="Label">
|
||||||
<ToggleButton.ButtonText>Label</ToggleButton.ButtonText>
|
<ToggleButton.ButtonText>Label</ToggleButton.ButtonText>
|
||||||
</ToggleButton.Button>
|
</ToggleButton.Button>
|
||||||
<ToggleButton.Button name="block" label="Block">
|
<ToggleButton.Button name="block" label="Block">
|
||||||
<ToggleButton.ButtonText>Block</ToggleButton.ButtonText>
|
<ToggleButton.ButtonText>Block</ToggleButton.ButtonText>
|
||||||
</ToggleButton.Button>
|
</ToggleButton.Button>
|
||||||
<ToggleButton.Button name="mute" label="Mute">
|
<ToggleButton.Button name="mute" label="Mute">
|
||||||
<ToggleButton.ButtonText>Mute</ToggleButton.ButtonText>
|
<ToggleButton.ButtonText>Mute</ToggleButton.ButtonText>
|
||||||
</ToggleButton.Button>
|
</ToggleButton.Button>
|
||||||
</ToggleButton.Group>
|
</ToggleButton.Group>
|
||||||
|
|
||||||
{scenario[0] === 'label' && (
|
{scenario[0] === 'label' && (
|
||||||
<>
|
<>
|
||||||
<View
|
<View
|
||||||
style={[
|
style={[
|
||||||
a.border,
|
a.border,
|
||||||
a.rounded_sm,
|
a.rounded_sm,
|
||||||
a.mt_lg,
|
a.mt_lg,
|
||||||
a.mb_lg,
|
a.mb_lg,
|
||||||
a.p_lg,
|
a.p_lg,
|
||||||
t.atoms.border_contrast_medium,
|
t.atoms.border_contrast_medium,
|
||||||
]}>
|
]}>
|
||||||
<Toggle.Group
|
|
||||||
label="Toggle"
|
|
||||||
type="radio"
|
|
||||||
values={label}
|
|
||||||
onChange={setLabel}>
|
|
||||||
<View style={[a.flex_row, a.gap_md, a.flex_wrap]}>
|
|
||||||
{LABEL_VALUES.map(labelValue => {
|
|
||||||
let targetFixed = target[0]
|
|
||||||
if (
|
|
||||||
targetFixed !== 'account' &&
|
|
||||||
targetFixed !== 'profile'
|
|
||||||
) {
|
|
||||||
targetFixed = 'content'
|
|
||||||
}
|
|
||||||
const disabled =
|
|
||||||
isSelfLabel &&
|
|
||||||
LABELS[labelValue].flags.includes('no-self')
|
|
||||||
return (
|
|
||||||
<Toggle.Item
|
|
||||||
key={labelValue}
|
|
||||||
name={labelValue}
|
|
||||||
label={labelStrings[labelValue].name}
|
|
||||||
disabled={disabled}
|
|
||||||
style={disabled ? {opacity: 0.5} : undefined}>
|
|
||||||
<Toggle.Radio />
|
|
||||||
<Toggle.LabelText>{labelValue}</Toggle.LabelText>
|
|
||||||
</Toggle.Item>
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
<Toggle.Item
|
|
||||||
name="custom"
|
|
||||||
label="Custom label"
|
|
||||||
disabled={isSelfLabel}
|
|
||||||
style={isSelfLabel ? {opacity: 0.5} : undefined}>
|
|
||||||
<Toggle.Radio />
|
|
||||||
<Toggle.LabelText>Custom label</Toggle.LabelText>
|
|
||||||
</Toggle.Item>
|
|
||||||
</View>
|
|
||||||
</Toggle.Group>
|
|
||||||
|
|
||||||
{label[0] === 'custom' ? (
|
|
||||||
<CustomLabelForm
|
|
||||||
def={customLabelDef}
|
|
||||||
setDef={setCustomLabelDef}
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<>
|
|
||||||
<View style={{height: 10}} />
|
|
||||||
<Divider />
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<View style={{height: 10}} />
|
|
||||||
|
|
||||||
<SmallToggler label="Advanced">
|
|
||||||
<Toggle.Group
|
<Toggle.Group
|
||||||
label="Toggle"
|
label="Toggle"
|
||||||
type="checkbox"
|
type="radio"
|
||||||
values={scenarioSwitches}
|
values={label}
|
||||||
onChange={setScenarioSwitches}>
|
onChange={setLabel}>
|
||||||
<View
|
<View style={[a.flex_row, a.gap_md, a.flex_wrap]}>
|
||||||
style={[a.gap_md, a.flex_row, a.flex_wrap, a.pt_md]}>
|
{LABEL_VALUES.map(labelValue => {
|
||||||
<Toggle.Item name="targetMe" label="Target is me">
|
let targetFixed = target[0]
|
||||||
<Toggle.Checkbox />
|
if (
|
||||||
<Toggle.LabelText>Target is me</Toggle.LabelText>
|
targetFixed !== 'account' &&
|
||||||
</Toggle.Item>
|
targetFixed !== 'profile'
|
||||||
<Toggle.Item name="following" label="Following target">
|
) {
|
||||||
<Toggle.Checkbox />
|
targetFixed = 'content'
|
||||||
<Toggle.LabelText>Following target</Toggle.LabelText>
|
}
|
||||||
</Toggle.Item>
|
const disabled =
|
||||||
<Toggle.Item name="selfLabel" label="Self label">
|
isSelfLabel &&
|
||||||
<Toggle.Checkbox />
|
LABELS[labelValue].flags.includes('no-self')
|
||||||
<Toggle.LabelText>Self label</Toggle.LabelText>
|
return (
|
||||||
</Toggle.Item>
|
<Toggle.Item
|
||||||
<Toggle.Item name="noAdult" label="Adult disabled">
|
key={labelValue}
|
||||||
<Toggle.Checkbox />
|
name={labelValue}
|
||||||
<Toggle.LabelText>Adult disabled</Toggle.LabelText>
|
label={labelStrings[labelValue].name}
|
||||||
</Toggle.Item>
|
disabled={disabled}
|
||||||
<Toggle.Item name="loggedOut" label="Signed out">
|
style={disabled ? {opacity: 0.5} : undefined}>
|
||||||
<Toggle.Checkbox />
|
<Toggle.Radio />
|
||||||
<Toggle.LabelText>Signed out</Toggle.LabelText>
|
<Toggle.LabelText>{labelValue}</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
<Toggle.Item
|
||||||
|
name="custom"
|
||||||
|
label="Custom label"
|
||||||
|
disabled={isSelfLabel}
|
||||||
|
style={isSelfLabel ? {opacity: 0.5} : undefined}>
|
||||||
|
<Toggle.Radio />
|
||||||
|
<Toggle.LabelText>Custom label</Toggle.LabelText>
|
||||||
</Toggle.Item>
|
</Toggle.Item>
|
||||||
</View>
|
</View>
|
||||||
</Toggle.Group>
|
</Toggle.Group>
|
||||||
|
|
||||||
{LABELS[label[0] as keyof typeof LABELS]?.configurable !==
|
{label[0] === 'custom' ? (
|
||||||
false && (
|
<CustomLabelForm
|
||||||
<View style={[a.mt_md]}>
|
def={customLabelDef}
|
||||||
<Text
|
setDef={setCustomLabelDef}
|
||||||
style={[
|
/>
|
||||||
a.font_semi_bold,
|
) : (
|
||||||
a.text_xs,
|
<>
|
||||||
t.atoms.text,
|
<View style={{height: 10}} />
|
||||||
a.pb_sm,
|
<Divider />
|
||||||
]}>
|
</>
|
||||||
Preference
|
)}
|
||||||
</Text>
|
|
||||||
<Toggle.Group
|
<View style={{height: 10}} />
|
||||||
label="Preference"
|
|
||||||
type="radio"
|
<SmallToggler label="Advanced">
|
||||||
values={visibility}
|
<Toggle.Group
|
||||||
onChange={setVisiblity}>
|
label="Toggle"
|
||||||
<View
|
type="checkbox"
|
||||||
|
values={scenarioSwitches}
|
||||||
|
onChange={setScenarioSwitches}>
|
||||||
|
<View
|
||||||
|
style={[a.gap_md, a.flex_row, a.flex_wrap, a.pt_md]}>
|
||||||
|
<Toggle.Item name="targetMe" label="Target is me">
|
||||||
|
<Toggle.Checkbox />
|
||||||
|
<Toggle.LabelText>Target is me</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item
|
||||||
|
name="following"
|
||||||
|
label="Following target">
|
||||||
|
<Toggle.Checkbox />
|
||||||
|
<Toggle.LabelText>
|
||||||
|
Following target
|
||||||
|
</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item name="selfLabel" label="Self label">
|
||||||
|
<Toggle.Checkbox />
|
||||||
|
<Toggle.LabelText>Self label</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item name="noAdult" label="Adult disabled">
|
||||||
|
<Toggle.Checkbox />
|
||||||
|
<Toggle.LabelText>Adult disabled</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item name="loggedOut" label="Signed out">
|
||||||
|
<Toggle.Checkbox />
|
||||||
|
<Toggle.LabelText>Signed out</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
</View>
|
||||||
|
</Toggle.Group>
|
||||||
|
|
||||||
|
{LABELS[label[0] as keyof typeof LABELS]?.configurable !==
|
||||||
|
false && (
|
||||||
|
<View style={[a.mt_md]}>
|
||||||
|
<Text
|
||||||
style={[
|
style={[
|
||||||
a.flex_row,
|
a.font_semi_bold,
|
||||||
a.gap_md,
|
a.text_xs,
|
||||||
a.flex_wrap,
|
t.atoms.text,
|
||||||
a.align_center,
|
a.pb_sm,
|
||||||
]}>
|
]}>
|
||||||
<Toggle.Item name="hide" label="Hide">
|
Preference
|
||||||
|
</Text>
|
||||||
|
<Toggle.Group
|
||||||
|
label="Preference"
|
||||||
|
type="radio"
|
||||||
|
values={visibility}
|
||||||
|
onChange={setVisiblity}>
|
||||||
|
<View
|
||||||
|
style={[
|
||||||
|
a.flex_row,
|
||||||
|
a.gap_md,
|
||||||
|
a.flex_wrap,
|
||||||
|
a.align_center,
|
||||||
|
]}>
|
||||||
|
<Toggle.Item name="hide" label="Hide">
|
||||||
|
<Toggle.Radio />
|
||||||
|
<Toggle.LabelText>Hide</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item name="warn" label="Warn">
|
||||||
|
<Toggle.Radio />
|
||||||
|
<Toggle.LabelText>Warn</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item name="ignore" label="Ignore">
|
||||||
|
<Toggle.Radio />
|
||||||
|
<Toggle.LabelText>Ignore</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
</View>
|
||||||
|
</Toggle.Group>
|
||||||
|
</View>
|
||||||
|
)}
|
||||||
|
</SmallToggler>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View style={[a.flex_row, a.flex_wrap, a.gap_md]}>
|
||||||
|
<View>
|
||||||
|
<Text
|
||||||
|
style={[
|
||||||
|
a.font_semi_bold,
|
||||||
|
a.text_xs,
|
||||||
|
t.atoms.text,
|
||||||
|
a.pl_md,
|
||||||
|
a.pb_xs,
|
||||||
|
]}>
|
||||||
|
Target
|
||||||
|
</Text>
|
||||||
|
<View
|
||||||
|
style={[
|
||||||
|
a.border,
|
||||||
|
a.rounded_full,
|
||||||
|
a.px_md,
|
||||||
|
a.py_sm,
|
||||||
|
t.atoms.border_contrast_medium,
|
||||||
|
t.atoms.bg,
|
||||||
|
]}>
|
||||||
|
<Toggle.Group
|
||||||
|
label="Target"
|
||||||
|
type="radio"
|
||||||
|
values={target}
|
||||||
|
onChange={setTarget}>
|
||||||
|
<View style={[a.flex_row, a.gap_md, a.flex_wrap]}>
|
||||||
|
<Toggle.Item name="account" label="Account">
|
||||||
<Toggle.Radio />
|
<Toggle.Radio />
|
||||||
<Toggle.LabelText>Hide</Toggle.LabelText>
|
<Toggle.LabelText>Account</Toggle.LabelText>
|
||||||
</Toggle.Item>
|
</Toggle.Item>
|
||||||
<Toggle.Item name="warn" label="Warn">
|
<Toggle.Item name="profile" label="Profile">
|
||||||
<Toggle.Radio />
|
<Toggle.Radio />
|
||||||
<Toggle.LabelText>Warn</Toggle.LabelText>
|
<Toggle.LabelText>Profile</Toggle.LabelText>
|
||||||
</Toggle.Item>
|
</Toggle.Item>
|
||||||
<Toggle.Item name="ignore" label="Ignore">
|
<Toggle.Item name="post" label="Post">
|
||||||
<Toggle.Radio />
|
<Toggle.Radio />
|
||||||
<Toggle.LabelText>Ignore</Toggle.LabelText>
|
<Toggle.LabelText>Post</Toggle.LabelText>
|
||||||
|
</Toggle.Item>
|
||||||
|
<Toggle.Item name="embed" label="Embed">
|
||||||
|
<Toggle.Radio />
|
||||||
|
<Toggle.LabelText>Embed</Toggle.LabelText>
|
||||||
</Toggle.Item>
|
</Toggle.Item>
|
||||||
</View>
|
</View>
|
||||||
</Toggle.Group>
|
</Toggle.Group>
|
||||||
</View>
|
</View>
|
||||||
)}
|
|
||||||
</SmallToggler>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<View style={[a.flex_row, a.flex_wrap, a.gap_md]}>
|
|
||||||
<View>
|
|
||||||
<Text
|
|
||||||
style={[
|
|
||||||
a.font_semi_bold,
|
|
||||||
a.text_xs,
|
|
||||||
t.atoms.text,
|
|
||||||
a.pl_md,
|
|
||||||
a.pb_xs,
|
|
||||||
]}>
|
|
||||||
Target
|
|
||||||
</Text>
|
|
||||||
<View
|
|
||||||
style={[
|
|
||||||
a.border,
|
|
||||||
a.rounded_full,
|
|
||||||
a.px_md,
|
|
||||||
a.py_sm,
|
|
||||||
t.atoms.border_contrast_medium,
|
|
||||||
t.atoms.bg,
|
|
||||||
]}>
|
|
||||||
<Toggle.Group
|
|
||||||
label="Target"
|
|
||||||
type="radio"
|
|
||||||
values={target}
|
|
||||||
onChange={setTarget}>
|
|
||||||
<View style={[a.flex_row, a.gap_md, a.flex_wrap]}>
|
|
||||||
<Toggle.Item name="account" label="Account">
|
|
||||||
<Toggle.Radio />
|
|
||||||
<Toggle.LabelText>Account</Toggle.LabelText>
|
|
||||||
</Toggle.Item>
|
|
||||||
<Toggle.Item name="profile" label="Profile">
|
|
||||||
<Toggle.Radio />
|
|
||||||
<Toggle.LabelText>Profile</Toggle.LabelText>
|
|
||||||
</Toggle.Item>
|
|
||||||
<Toggle.Item name="post" label="Post">
|
|
||||||
<Toggle.Radio />
|
|
||||||
<Toggle.LabelText>Post</Toggle.LabelText>
|
|
||||||
</Toggle.Item>
|
|
||||||
<Toggle.Item name="embed" label="Embed">
|
|
||||||
<Toggle.Radio />
|
|
||||||
<Toggle.LabelText>Embed</Toggle.LabelText>
|
|
||||||
</Toggle.Item>
|
|
||||||
</View>
|
|
||||||
</Toggle.Group>
|
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Spacer />
|
|
||||||
|
|
||||||
<Heading title="" subtitle="Results" />
|
|
||||||
|
|
||||||
<ToggleButton.Group
|
|
||||||
label="Results"
|
|
||||||
values={view}
|
|
||||||
onChange={setView}>
|
|
||||||
<ToggleButton.Button name="post" label="Post">
|
|
||||||
<ToggleButton.ButtonText>Post</ToggleButton.ButtonText>
|
|
||||||
</ToggleButton.Button>
|
|
||||||
<ToggleButton.Button name="notifications" label="Notifications">
|
|
||||||
<ToggleButton.ButtonText>Notifications</ToggleButton.ButtonText>
|
|
||||||
</ToggleButton.Button>
|
|
||||||
<ToggleButton.Button name="account" label="Account">
|
|
||||||
<ToggleButton.ButtonText>Account</ToggleButton.ButtonText>
|
|
||||||
</ToggleButton.Button>
|
|
||||||
<ToggleButton.Button name="data" label="Data">
|
|
||||||
<ToggleButton.ButtonText>Data</ToggleButton.ButtonText>
|
|
||||||
</ToggleButton.Button>
|
|
||||||
</ToggleButton.Group>
|
|
||||||
|
|
||||||
<View
|
|
||||||
style={[
|
|
||||||
a.border,
|
|
||||||
a.rounded_sm,
|
|
||||||
a.mt_lg,
|
|
||||||
a.p_md,
|
|
||||||
t.atoms.border_contrast_medium,
|
|
||||||
]}>
|
|
||||||
{view[0] === 'post' && (
|
|
||||||
<>
|
|
||||||
<Heading title="Post" subtitle="in feed" />
|
|
||||||
<MockPostFeedItem post={post} moderation={postModeration} />
|
|
||||||
|
|
||||||
<Heading title="Post" subtitle="viewed directly" />
|
|
||||||
<MockPostThreadItem post={post} moderationOpts={modOpts} />
|
|
||||||
|
|
||||||
<Heading title="Post" subtitle="reply in thread" />
|
|
||||||
<MockPostThreadItem
|
|
||||||
post={post}
|
|
||||||
moderationOpts={modOpts}
|
|
||||||
isReply
|
|
||||||
/>
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{view[0] === 'notifications' && (
|
<Spacer />
|
||||||
<>
|
|
||||||
<Heading title="Notification" subtitle="quote or reply" />
|
|
||||||
<MockNotifItem notif={replyNotif} moderationOpts={modOpts} />
|
|
||||||
<View style={{height: 20}} />
|
|
||||||
<Heading title="Notification" subtitle="follow or like" />
|
|
||||||
<MockNotifItem notif={followNotif} moderationOpts={modOpts} />
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{view[0] === 'account' && (
|
<Heading title="" subtitle="Results" />
|
||||||
<>
|
|
||||||
<Heading title="Account" subtitle="in listing" />
|
|
||||||
<MockAccountCard
|
|
||||||
profile={profile}
|
|
||||||
moderation={profileModeration}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Heading title="Account" subtitle="viewing directly" />
|
<ToggleButton.Group
|
||||||
<MockAccountScreen
|
label="Results"
|
||||||
profile={profile}
|
values={view}
|
||||||
moderation={profileModeration}
|
onChange={setView}>
|
||||||
moderationOpts={modOpts}
|
<ToggleButton.Button name="post" label="Post">
|
||||||
/>
|
<ToggleButton.ButtonText>Post</ToggleButton.ButtonText>
|
||||||
</>
|
</ToggleButton.Button>
|
||||||
)}
|
<ToggleButton.Button name="notifications" label="Notifications">
|
||||||
|
<ToggleButton.ButtonText>
|
||||||
|
Notifications
|
||||||
|
</ToggleButton.ButtonText>
|
||||||
|
</ToggleButton.Button>
|
||||||
|
<ToggleButton.Button name="account" label="Account">
|
||||||
|
<ToggleButton.ButtonText>Account</ToggleButton.ButtonText>
|
||||||
|
</ToggleButton.Button>
|
||||||
|
<ToggleButton.Button name="data" label="Data">
|
||||||
|
<ToggleButton.ButtonText>Data</ToggleButton.ButtonText>
|
||||||
|
</ToggleButton.Button>
|
||||||
|
</ToggleButton.Group>
|
||||||
|
|
||||||
{view[0] === 'data' && (
|
<View
|
||||||
<>
|
style={[
|
||||||
<ModerationUIView
|
a.border,
|
||||||
label="Profile Moderation UI"
|
a.rounded_sm,
|
||||||
mod={profileModeration}
|
a.mt_lg,
|
||||||
/>
|
a.p_md,
|
||||||
<ModerationUIView
|
t.atoms.border_contrast_medium,
|
||||||
label="Post Moderation UI"
|
]}>
|
||||||
mod={postModeration}
|
{view[0] === 'post' && (
|
||||||
/>
|
<>
|
||||||
<DataView
|
<Heading title="Post" subtitle="in feed" />
|
||||||
label={label[0]}
|
<MockPostFeedItem post={post} moderation={postModeration} />
|
||||||
data={LABELS[label[0] as keyof typeof LABELS]}
|
|
||||||
/>
|
|
||||||
<DataView
|
|
||||||
label="Profile Moderation Data"
|
|
||||||
data={profileModeration}
|
|
||||||
/>
|
|
||||||
<DataView
|
|
||||||
label="Post Moderation Data"
|
|
||||||
data={postModeration}
|
|
||||||
/>
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<View style={{height: 400}} />
|
<Heading title="Post" subtitle="viewed directly" />
|
||||||
</CenteredView>
|
<MockPostThreadItem post={post} moderationOpts={modOpts} />
|
||||||
</ScrollView>
|
|
||||||
</moderationOptsOverrideContext.Provider>
|
<Heading title="Post" subtitle="reply in thread" />
|
||||||
|
<MockPostThreadItem
|
||||||
|
post={post}
|
||||||
|
moderationOpts={modOpts}
|
||||||
|
isReply
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{view[0] === 'notifications' && (
|
||||||
|
<>
|
||||||
|
<Heading title="Notification" subtitle="quote or reply" />
|
||||||
|
<MockNotifItem
|
||||||
|
notif={replyNotif}
|
||||||
|
moderationOpts={modOpts}
|
||||||
|
/>
|
||||||
|
<View style={{height: 20}} />
|
||||||
|
<Heading title="Notification" subtitle="follow or like" />
|
||||||
|
<MockNotifItem
|
||||||
|
notif={followNotif}
|
||||||
|
moderationOpts={modOpts}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{view[0] === 'account' && (
|
||||||
|
<>
|
||||||
|
<Heading title="Account" subtitle="in listing" />
|
||||||
|
<MockAccountCard
|
||||||
|
profile={profile}
|
||||||
|
moderation={profileModeration}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Heading title="Account" subtitle="viewing directly" />
|
||||||
|
<MockAccountScreen
|
||||||
|
profile={profile}
|
||||||
|
moderation={profileModeration}
|
||||||
|
moderationOpts={modOpts}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{view[0] === 'data' && (
|
||||||
|
<>
|
||||||
|
<ModerationUIView
|
||||||
|
label="Profile Moderation UI"
|
||||||
|
mod={profileModeration}
|
||||||
|
/>
|
||||||
|
<ModerationUIView
|
||||||
|
label="Post Moderation UI"
|
||||||
|
mod={postModeration}
|
||||||
|
/>
|
||||||
|
<DataView
|
||||||
|
label={label[0]}
|
||||||
|
data={LABELS[label[0] as keyof typeof LABELS]}
|
||||||
|
/>
|
||||||
|
<DataView
|
||||||
|
label="Profile Moderation Data"
|
||||||
|
data={profileModeration}
|
||||||
|
/>
|
||||||
|
<DataView
|
||||||
|
label="Post Moderation Data"
|
||||||
|
data={postModeration}
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View style={{height: 400}} />
|
||||||
|
</CenteredView>
|
||||||
|
</ScrollView>
|
||||||
|
</moderationOptsOverrideContext.Provider>
|
||||||
|
</PagerHeaderProvider>
|
||||||
</Layout.Screen>
|
</Layout.Screen>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -760,7 +778,7 @@ function SmallToggler({
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
function DataView({label, data}: {label: string; data: any}) {
|
function DataView({label, data}: {label: string; data: unknown}) {
|
||||||
return (
|
return (
|
||||||
<Toggler label={label}>
|
<Toggler label={label}>
|
||||||
<Text style={[{fontFamily: 'monospace'}, a.p_md]}>
|
<Text style={[{fontFamily: 'monospace'}, a.p_md]}>
|
||||||
|
|||||||
Reference in New Issue
Block a user