diff options
| author | MohamedBassem <me@mbassem.com> | 2024-04-17 17:56:21 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-04-17 18:13:31 +0100 |
| commit | c46482cdaaf883971736488750513663dd023076 (patch) | |
| tree | 9e3d70fd9e7ae39f8ef21e0651049558e5c5fa5b /apps/mobile/components/navigation/stack.tsx | |
| parent | bb44ebcb9967bde81d15e2f7858d515777681c10 (diff) | |
| download | karakeep-c46482cdaaf883971736488750513663dd023076.tar.zst | |
mobile: Add dark mode support
Diffstat (limited to 'apps/mobile/components/navigation/stack.tsx')
| -rw-r--r-- | apps/mobile/components/navigation/stack.tsx | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/apps/mobile/components/navigation/stack.tsx b/apps/mobile/components/navigation/stack.tsx new file mode 100644 index 00000000..f53b3652 --- /dev/null +++ b/apps/mobile/components/navigation/stack.tsx @@ -0,0 +1,27 @@ +import { TextStyle, ViewStyle } from "react-native"; +import { Stack } from "expo-router/stack"; +import { cssInterop } from "nativewind"; + +interface StackProps extends React.ComponentProps<typeof Stack> { + contentStyle?: ViewStyle; + headerStyle?: TextStyle; +} + +function StackImpl({ contentStyle, headerStyle, ...props }: StackProps) { + props.screenOptions = { + ...props.screenOptions, + contentStyle, + headerStyle: { + backgroundColor: headerStyle?.backgroundColor?.toString(), + }, + navigationBarColor: contentStyle?.backgroundColor?.toString(), + headerTintColor: headerStyle?.color?.toString(), + }; + return <Stack {...props} />; +} + +// Changing this requires reloading the app +export const StyledStack = cssInterop(StackImpl, { + contentClassName: "contentStyle", + headerClassName: "headerStyle", +}); |
