mirror of
https://github.com/kennethnym/aris.git
synced 2026-03-21 17:41:18 +00:00
feat: add Expo React Native client scaffold
- Expo SDK 54 / React Native 0.81 with expo-router - Tailscale devcontainer feature for direct device connectivity - Dev proxy for React Native DevTools access over Tailscale - EAS build configuration for development/preview/production - Ona automation for Expo dev server Co-authored-by: Ona <no-reply@ona.com>
This commit is contained in:
1
apps/aris-client/src/hooks/use-color-scheme.ts
Normal file
1
apps/aris-client/src/hooks/use-color-scheme.ts
Normal file
@@ -0,0 +1 @@
|
||||
export { useColorScheme } from "react-native"
|
||||
21
apps/aris-client/src/hooks/use-color-scheme.web.ts
Normal file
21
apps/aris-client/src/hooks/use-color-scheme.web.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { useEffect, useState } from "react"
|
||||
import { useColorScheme as useRNColorScheme } from "react-native"
|
||||
|
||||
/**
|
||||
* To support static rendering, this value needs to be re-calculated on the client side for web
|
||||
*/
|
||||
export function useColorScheme() {
|
||||
const [hasHydrated, setHasHydrated] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
setHasHydrated(true)
|
||||
}, [])
|
||||
|
||||
const colorScheme = useRNColorScheme()
|
||||
|
||||
if (hasHydrated) {
|
||||
return colorScheme
|
||||
}
|
||||
|
||||
return "light"
|
||||
}
|
||||
21
apps/aris-client/src/hooks/use-theme-color.ts
Normal file
21
apps/aris-client/src/hooks/use-theme-color.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
/**
|
||||
* Learn more about light and dark modes:
|
||||
* https://docs.expo.dev/guides/color-schemes/
|
||||
*/
|
||||
|
||||
import { Colors } from "@/constants/theme"
|
||||
import { useColorScheme } from "@/hooks/use-color-scheme"
|
||||
|
||||
export function useThemeColor(
|
||||
props: { light?: string; dark?: string },
|
||||
colorName: keyof typeof Colors.light & keyof typeof Colors.dark,
|
||||
) {
|
||||
const theme = useColorScheme() ?? "light"
|
||||
const colorFromProps = props[theme]
|
||||
|
||||
if (colorFromProps) {
|
||||
return colorFromProps
|
||||
} else {
|
||||
return Colors[theme][colorName]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user