···
import {useCallback} from 'react'
2
+
import {View} from 'react-native'
···
import {SettingsListItem as AppIconSettingsListItem} from '#/screens/Settings/AppIconSettings/SettingsListItem'
import {type Alf, atoms as a, native, useAlf, useTheme} from '#/alf'
import * as SegmentedControl from '#/components/forms/SegmentedControl'
21
+
import * as Toggle from '#/components/forms/Toggle'
import {type Props as SVGIconProps} from '#/components/icons/common'
import {Moon_Stroke2_Corner0_Rounded as MoonIcon} from '#/components/icons/Moon'
import {Phone_Stroke2_Corner0_Rounded as PhoneIcon} from '#/components/icons/Phone'
···
export function AppearanceSettingsScreen({}: Props) {
37
+
const t = useTheme()
const {colorMode, colorScheme, darkTheme} = useThemePrefs()
const {setColorMode, setColorScheme, setDarkTheme} = useSetThemePrefs()
···
85
+
const colorSchemes = [
86
+
{name: 'witchsky', label: _(msg`Witchsky`)},
87
+
{name: 'bluesky', label: _(msg`Bluesky`)},
88
+
{name: 'blacksky', label: _(msg`Blacksky`)},
89
+
{name: 'deer', label: _(msg`Deer`)},
90
+
{name: 'zeppelin', label: _(msg`Zeppelin`)},
91
+
{name: 'kitty', label: _(msg`Kitty`)},
<LayoutAnimationConfig skipExiting skipEntering>
<Layout.Screen testID="preferencesThreadsScreen">
···
onChange={onChangeAppearance}
117
-
<AppearanceToggleButtonGroup
118
-
title={_(msg`Color scheme`)}
122
-
label: _(msg`Witchsky`),
126
-
label: _(msg`Bluesky`),
130
-
label: _(msg`Blacksky`),
134
-
label: _(msg`Deer`),
138
-
label: _(msg`Zeppelin`),
142
-
label: _(msg`Kitty`),
146
-
value={colorScheme}
147
-
onChange={onChangeScheme}
{colorMode !== 'light' && (
entering={native(FadeInUp)}
···
152
+
<SettingsList.Group>
153
+
<SettingsList.ItemIcon icon={PizzaIcon} />
154
+
<SettingsList.ItemText>
155
+
<Trans>Color Theme</Trans>
156
+
</SettingsList.ItemText>
157
+
<View style={[a.w_full, a.gap_md]}>
158
+
<Text style={[a.flex_1, t.atoms.text_contrast_medium]}>
159
+
<Trans>Choose which color scheme to use:</Trans>
162
+
label={_(msg`Color Theme`)}
164
+
values={[colorScheme]}
165
+
onChange={([value]) =>
166
+
onChangeScheme(value as typeof colorScheme)
168
+
<View style={[a.gap_sm, a.flex_1]}>
169
+
{colorSchemes.map(({name, label}) => (
170
+
<Toggle.Item key={name} name={name} label={label}>
173
+
<Trans>{label}</Trans>
174
+
</Toggle.LabelText>
180
+
</SettingsList.Group>
<Animated.View layout={native(LinearTransition)}>