blob: a4f0494aacffa31cfb4c2acd9d91abd5fede6f8b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import { Pressable, View } from "react-native";
import CustomSafeAreaView from "@/components/ui/CustomSafeAreaView";
import { Divider } from "@/components/ui/Divider";
import { Text } from "@/components/ui/Text";
import useAppSettings from "@/lib/settings";
import { Check } from "lucide-react-native";
export default function ThemePage() {
const { settings, setSettings } = useAppSettings();
const options = (["light", "dark", "system"] as const)
.map((theme) => {
const isChecked = settings.theme === theme;
return [
<Pressable
onPress={() => setSettings({ ...settings, theme })}
className="flex flex-row justify-between"
key={theme}
>
<Text>
{
{ light: "Light Mode", dark: "Dark Mode", system: "System" }[
theme
]
}
</Text>
{isChecked && <Check color="rgb(0, 122, 255)" />}
</Pressable>,
<Divider
key={theme + "-divider"}
orientation="horizontal"
className="my-3 h-0.5 w-full"
/>,
];
})
.flat();
options.pop();
return (
<CustomSafeAreaView>
<View className="flex h-full w-full items-center px-4 py-2">
<View className="w-full rounded-lg bg-card px-4 py-2">{options}</View>
</View>
</CustomSafeAreaView>
);
}
|