From 09ea47201f0b3d4472e75a7f9ff3147b95e86461 Mon Sep 17 00:00:00 2001 From: guizmo Date: Mon, 12 Feb 2024 17:24:40 +0100 Subject: [PATCH 01/14] =?UTF-8?q?Migrate=20to=20nativewind=20=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/_layout.tsx | 81 +++-------- app/index.tsx | 96 ++++--------- bun.lockb | Bin 628391 -> 565772 bytes components/Background.tsx | 33 ++--- components/ColorModeFab.tsx | 34 ++--- components/Header.tsx | 271 +++++++++--------------------------- components/ListHeader.tsx | 112 +++++++++++++++ components/ListItem.tsx | 120 ++++++++-------- components/TabView.tsx | 256 +++++++++------------------------- components/base/Fab.tsx | 20 +++ components/base/Icon.tsx | 26 ++++ components/base/Text.tsx | 5 + components/base/index.ts | 3 + components/index.ts | 1 + hooks/useValues.ts | 30 ++-- package.json | 3 - tailwind.config.js | 12 ++ theme.ts | 37 ----- themes.ts | 39 +++++- 19 files changed, 495 insertions(+), 684 deletions(-) create mode 100644 components/ListHeader.tsx create mode 100644 components/base/Fab.tsx create mode 100644 components/base/Icon.tsx create mode 100644 components/base/Text.tsx create mode 100644 components/base/index.ts delete mode 100644 theme.ts diff --git a/app/_layout.tsx b/app/_layout.tsx index c4c21ec..4adad42 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -1,80 +1,51 @@ -import AsyncStorage from '@react-native-async-storage/async-storage' import {DarkTheme, DefaultTheme, ThemeProvider} from '@react-navigation/native' import {useAssets} from 'expo-asset' -import {loadAsync, useFonts} from 'expo-font' +import {useFonts} from 'expo-font' import {Slot, SplashScreen} from 'expo-router' -import * as SystemUI from 'expo-system-ui' -import { - INativebaseConfig, - NativeBaseProvider, - StorageManager, - useColorMode, - useColorModeValue, -} from 'native-base' import {ReactNode, useEffect} from 'react' -import Ionicons from '@expo/vector-icons/Ionicons' +import Feather from '@expo/vector-icons/Feather' +import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons' import {useColorScheme} from 'nativewind' import {View} from 'react-native' import {useAppStore} from '@/store' import {ICONS, IMAGES} from '@/assets' -import {theme} from '@/theme' import {ThemeName, themes} from '@/themes' import '../global.css' -// Native Base config -const colorModeManager: StorageManager = { - get: async () => { - try { - const val = await AsyncStorage.getItem('@color-mode') - return val === 'dark' ? 'dark' : 'light' - } catch (e) { - return 'dark' - } - }, - set: async value => { - try { - if (value) { - await AsyncStorage.setItem('@color-mode', value) - } - } catch (e) { - console.log(e) - } - }, -} -const config: INativebaseConfig = { - strictMode: 'error', - theme, -} - // Prevent the splash screen from auto-hiding before asset loading is complete. SplashScreen.preventAutoHideAsync() export default function RootLayout() { - const [fontsLoaded, error] = useFonts({ - ...Ionicons.font, + const [fontsLoaded, fontsError] = useFonts({ + ...Feather.font, + ...MaterialCommunityIcons.font, }) - const [assets] = useAssets([ + const [assets, assetsError] = useAssets([ ...Object.values(IMAGES), ...Object.values(ICONS), ]) + const isLoading = !fontsLoaded || !assets + // Expo Router uses Error Boundaries to catch errors in the navigation tree. useEffect(() => { - if (error) { - throw error + if (assetsError) { + throw assetsError } - }, [error]) + if (fontsError) { + throw fontsError + } + }, [assetsError, fontsError]) useEffect(() => { - loadAsync(Ionicons.font) - if (fontsLoaded && assets) { + if (!isLoading) { SplashScreen.hideAsync() } - }, [assets, fontsLoaded]) + }, [isLoading]) - if (!fontsLoaded || !assets) { + if (isLoading) { return null } @@ -92,22 +63,12 @@ function Theme({name, children}: {name: ThemeName; children: ReactNode}) { function RootLayoutNav() { const locale = useAppStore(state => state.locale) - const {colorMode} = useColorMode() - const backgroundColor = useColorModeValue( - DefaultTheme.colors.background, - DarkTheme.colors.background, - ) - - useEffect(() => { - SystemUI.setBackgroundColorAsync(backgroundColor) - }, [backgroundColor]) + const {colorScheme} = useColorScheme() return ( - - - - + + ) diff --git a/app/index.tsx b/app/index.tsx index e51200d..947daee 100644 --- a/app/index.tsx +++ b/app/index.tsx @@ -1,104 +1,58 @@ -import {Box, Divider, Text} from 'native-base' -import {useCallback, useState, ReactElement} from 'react' -import {LayoutChangeEvent, ListRenderItem, StyleSheet} from 'react-native' -import Animated, {useSharedValue} from 'react-native-reanimated' -import {Route} from 'react-native-tab-view' -import {useTheme} from '@react-navigation/native' +import {useState, ReactElement} from 'react' +import {View} from 'react-native' +import {useSharedValue} from 'react-native-reanimated' import { Header, LocaleFab, - ListItem, TabView, TabViewProps, ColorModeFab, Background, + ListHeader, } from '@/components' -import {data, DataItem} from '@/data' -import {useValues} from '@/hooks' +import {data} from '@/data' import {i18n} from '@/i18n' +import {Text} from '@/components/base' export default function Home(): ReactElement { - const theme = useTheme() const scrollY = useSharedValue(0) - const [headerHeight, setHeaderHeight] = useState(0) - const {appWidth} = useValues() - const onHeaderLayout = useCallback(({nativeEvent}: LayoutChangeEvent) => { - setHeaderHeight(nativeEvent.layout.height) - }, []) - - const [routes] = useState([ - {key: 'projects', title: i18n.t('home.projects')}, - {key: 'experiences', title: i18n.t('home.experiences')}, - ]) - - const getDataKey = useCallback((item: DataItem) => item.id.toString(), []) - const renderData = useCallback>( - ({item}) => , - [], - ) - const renderScene = useCallback['renderScene']>( - ({route, listProps}) => { - return ( - - ) + const [routes] = useState(() => [ + { + key: 'projects', + title: i18n.t('home.projects'), + data: data.projects, }, - [getDataKey, renderData], - ) + { + key: 'experiences', + title: i18n.t('home.experiences'), + data: data.experiences, + }, + ]) return ( <> - -
+ +
} scrollY={scrollY} - paddingTop={headerHeight} /> - - - + + + + Cette app est cross-platform (iOS + Android + Web) ❤️ - + ) } - -const styles = StyleSheet.create({ - tabView: { - zIndex: 2, - ...StyleSheet.absoluteFillObject, - }, -}) diff --git a/bun.lockb b/bun.lockb index 8e0c1a82efed4631dffdc1142b4a754ba460cfd9..ebfef9ea7ddba45a449b1d3f8bcbba24b503c0df 100755 GIT binary patch delta 138523 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 nj~8zr6V^3z?uP!*r&xKQJ34@&CDA2k$nyo*FW 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

i_-(uav!SA3yc4EY(N^}r4`A*6rpq(E`UU&? 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

>MWTcjX+KU(4SdL0PLCpvI#Vp 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 lzIQLfnnZcHZJAli(() => { - const {colorMode} = useColorMode() +export const Background = memo(({className, style, ...props}) => { + const {colorScheme} = useColorScheme() const colorProgress = useSharedValue(0) useEffect(() => { - colorProgress.value = withTiming(colorMode === 'light' ? 0 : 1) - }, [colorMode, colorProgress]) + colorProgress.value = withTiming(colorScheme === 'light' ? 0 : 1) + }, [colorProgress, colorScheme]) const contentStyle = useAnimatedStyle(() => { return { @@ -31,14 +29,11 @@ export const Background = memo(() => { } }) - return -}) - -const styles = StyleSheet.create({ - gradient: { - ...StyleSheet.absoluteFillObject, - }, - content: { - ...StyleSheet.absoluteFillObject, - }, + return ( + + ) }) diff --git a/components/ColorModeFab.tsx b/components/ColorModeFab.tsx index b0f4501..6aa01c1 100644 --- a/components/ColorModeFab.tsx +++ b/components/ColorModeFab.tsx @@ -1,26 +1,22 @@ -import {Fab, useColorMode} from 'native-base' import {memo} from 'react' +import {useColorScheme} from 'nativewind' + +import {Fab} from './base' export const ColorModeFab = memo(() => { - const {toggleColorMode} = useColorMode() + const {toggleColorScheme, colorScheme} = useColorScheme() return ( - - // } - /> + + + ) }) diff --git a/components/Header.tsx b/components/Header.tsx index aaf9c5d..9e6bf9f 100644 --- a/components/Header.tsx +++ b/components/Header.tsx @@ -1,55 +1,44 @@ -import { - Avatar, - Box, - Icon, - Image, - Row, - Text, - useColorMode, - useColorModeValue, -} from 'native-base' -import {memo, useMemo} from 'react' -import {StyleSheet, Platform, LayoutChangeEvent} from 'react-native' +import {memo} from 'react' +import {Image, Platform, View} from 'react-native' import Animated, { Extrapolation, + SharedValue, interpolate, useAnimatedProps, useAnimatedStyle, } from 'react-native-reanimated' import {BlurView, BlurViewProps} from 'expo-blur' import {useSafeAreaInsets} from 'react-native-safe-area-context' +import {useColorScheme} from 'nativewind' import {i18n} from '@/i18n' import {IMAGES} from '@/assets' import {useValues} from '@/hooks' +import {Text} from './base' + export type HeaderProps = { - scrollY: Animated.SharedValue - onLayout: (event: LayoutChangeEvent) => void + scrollY: SharedValue } const AnimatedBlurView = Animated.createAnimatedComponent(BlurView) -export const Header = memo(({scrollY, onLayout}) => { - const {colorMode} = useColorMode() +export const Header = memo(({scrollY}) => { + const {colorScheme} = useColorScheme() const insets = useSafeAreaInsets() - const backgroundColor = useColorModeValue('white', 'black') - const { - headerOffset, - coverHeight, - smallCoverHeight, - avatarSize, - smallAvatarSize, - avatarOffset, - } = useValues() + const {headerHeight, smallHeaderHeight, headerOffset, smallAvatarHeight} = + useValues() + + const headerThreshold = headerOffset + smallAvatarHeight / 2 - const coverStyle = useAnimatedStyle(() => { + const headerStyle = useAnimatedStyle(() => { return { + zIndex: scrollY.value < headerOffset ? -1 : 1, height: interpolate( scrollY.value, - [0, headerOffset], - [coverHeight, smallCoverHeight], + [0, headerHeight - smallHeaderHeight], + [headerHeight, smallHeaderHeight], { extrapolateRight: Extrapolation.CLAMP, }, @@ -57,28 +46,26 @@ export const Header = memo(({scrollY, onLayout}) => { } }) - const avatarStyle = useAnimatedStyle(() => { - const size = interpolate( - scrollY.value, - [0, headerOffset], - [avatarSize, smallAvatarSize], - { - extrapolateRight: Extrapolation.CLAMP, - extrapolateLeft: Extrapolation.CLAMP, - }, - ) + const headerContentStyle = useAnimatedStyle(() => { return { - height: size, - width: size, - marginTop: interpolate( + opacity: interpolate( scrollY.value, - [0, headerOffset], - [0, avatarOffset], + [headerThreshold, headerThreshold + 50], + [0, 1], + ), + transform: [ { - extrapolateLeft: Extrapolation.CLAMP, - extrapolateRight: Extrapolation.CLAMP, + translateY: interpolate( + scrollY.value, + [headerThreshold, headerThreshold + 50], + [50, 0], + { + extrapolateLeft: Extrapolation.CLAMP, + extrapolateRight: Extrapolation.CLAMP, + }, + ), }, - ), + ], } }) @@ -89,10 +76,7 @@ export const Header = memo(({scrollY, onLayout}) => { ? 0 : interpolate( scrollY.value, - [ - headerOffset + smallAvatarSize, - headerOffset + smallAvatarSize + 50, - ], + [headerThreshold, headerThreshold + 50], [0, 50], { extrapolateLeft: Extrapolation.CLAMP, @@ -102,175 +86,52 @@ export const Header = memo(({scrollY, onLayout}) => { } }) - const coverContentStyle = useAnimatedStyle(() => { - return { - opacity: interpolate( - scrollY.value, - [headerOffset + smallAvatarSize, headerOffset + smallAvatarSize + 50], - [0, 1], - ), - transform: [ - { - translateY: interpolate( - scrollY.value, - [ - headerOffset + smallAvatarSize, - headerOffset + smallAvatarSize + 50, - ], - [50, 0], - { - extrapolateLeft: Extrapolation.CLAMP, - extrapolateRight: Extrapolation.CLAMP, - }, - ), - }, - ], - } - }) - - const coverOverlayStyle = useAnimatedStyle(() => { + const headerOverlayStyle = useAnimatedStyle(() => { return { opacity: Platform.OS === 'ios' ? 0 : interpolate( scrollY.value, - [ - headerOffset + smallAvatarSize, - headerOffset + smallAvatarSize + 50, - ], + [headerThreshold, headerThreshold + 50], [0, 0.7], {extrapolateRight: Extrapolation.CLAMP}, ), } }) - const headerStyle = useAnimatedStyle(() => { - return { - zIndex: scrollY.value >= headerOffset ? 1 : 10, - transform: [{translateY: -scrollY.value}], - } - }) - - const data = useMemo<{description?: string; icon: string; link?: string}[]>( - () => [ - { - icon: 'map-pin', - description: i18n.t('home.locationDescription'), - }, - { - icon: 'gift', - description: i18n.t('home.birthdayDescription'), - }, - // { - // icon: 'github', - // link: 'github.com/martinezguillaume/portfolio', - // description: 'github.com', - // }, - { - icon: 'calendar', - description: i18n.t('home.developerDescription'), - }, - ], - [], - ) - return ( - <> - - cover - - - - - - - - - Guillaume Martinez - {i18n.t('home.title')} - - - - - + + cover - - - Guillaume Martinez - - {i18n.t('home.title')} - - {i18n.t('home.description')} - - - {data.map(item => ( - - {/* FIXME: add an icon */} - {' '} - {item.description} - - ))} - - - + className="absolute inset-x-0 inset-y-0 bg-background" + style={headerOverlayStyle} + /> + + + + + + + Guillaume Martinez + {i18n.t('home.title')} + + + + + ) }) - -const styles = StyleSheet.create({ - header: { - pointerEvents: 'none', - position: 'absolute', - left: 0, - right: 0, - paddingHorizontal: 16, - }, - blurView: { - ...StyleSheet.absoluteFillObject, - justifyContent: 'center', - alignItems: 'center', - overflow: 'hidden', - }, - coverOverlay: { - ...StyleSheet.absoluteFillObject, - }, - cover: { - pointerEvents: 'none', - position: 'absolute', - left: 0, - right: 0, - zIndex: 5, - }, - avatar: { - borderRadius: 200, - borderWidth: 4, - }, -}) diff --git a/components/ListHeader.tsx b/components/ListHeader.tsx new file mode 100644 index 0000000..36dd235 --- /dev/null +++ b/components/ListHeader.tsx @@ -0,0 +1,112 @@ +import Animated, { + Extrapolation, + SharedValue, + interpolate, + useAnimatedStyle, +} from 'react-native-reanimated' +import {Linking, View} from 'react-native' +import {useMemo} from 'react' + +import {IMAGES} from '@/assets' +import {useValues} from '@/hooks' +import {i18n} from '@/i18n' + +import {Icon, IconProps, Text} from './base' + +type ListHeaderProps = { + scrollY: SharedValue +} + +export const ListHeader = ({scrollY}: ListHeaderProps) => { + const { + smallHeaderHeight, + headerOffset, + avatarHeight, + avatarOffset, + smallAvatarHeight, + headerHeight, + } = useValues() + + const data = useMemo< + {description?: string; icon: IconProps; link?: string}[] + >( + () => [ + { + icon: {name: 'map-pin'}, + description: i18n.t('home.locationDescription'), + }, + { + icon: {name: 'gift'}, + description: i18n.t('home.birthdayDescription'), + }, + { + icon: {name: 'github'}, + link: 'https://github.com/martinezguillaume/portfolio', + description: 'github.com', + }, + { + icon: {name: 'calendar'}, + description: i18n.t('home.developerDescription'), + }, + ], + [], + ) + + const avatarStyle = useAnimatedStyle(() => { + const size = interpolate( + scrollY.value, + [0, headerOffset], + [avatarHeight, smallAvatarHeight], + { + extrapolateRight: Extrapolation.CLAMP, + extrapolateLeft: Extrapolation.CLAMP, + }, + ) + return { + height: size, + width: size, + } + }) + + return ( + + + + + + Guillaume Martinez + {i18n.t('home.title')} + + {i18n.t('home.description')} + + + {data.map(item => ( + + { + if (item.link) { + Linking.openURL(item.link) + } + } + : undefined + } + className={`${ + item.link ? 'text-primary' : 'text-secondary' + } text-sm`}> + {' '} + {item.description} + + + ))} + + + ) +} diff --git a/components/ListItem.tsx b/components/ListItem.tsx index b2829a8..7ad9921 100644 --- a/components/ListItem.tsx +++ b/components/ListItem.tsx @@ -1,84 +1,89 @@ -import { - Avatar, - Column, - Icon, - IIconProps, - Image, - Row, - Text, - IImageProps, -} from 'native-base' import {memo} from 'react' import dayjs from 'dayjs' +import {ImageProps, View, Image} from 'react-native' import {DataItem, DataSkill} from '@/data' import {ICONS} from '@/assets' +import {Icon, IconProps, Text} from './base' + export type ListItemProps = { data: DataItem } const skillIcon: Record< DataSkill, - ({type?: 'icon'} & IIconProps) | ({type: 'image'} & IImageProps) + ({as?: 'icon'} & IconProps) | ({as: 'image'} & ImageProps) > = { react: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'react', }, aws: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'aws', + className: 'text-2xl', }, html: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-html5', }, css: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-css3', }, js: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-javascript', }, ts: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-typescript', }, graphql: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'graphql', }, 'react-native': { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'react', }, java: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-java', - size: 6, + className: 'text-2xl', }, kotlin: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-kotlin', - size: 5, + className: '!text-lg', }, swift: { - // as: MaterialCommunityIcons, + as: 'icon', + type: 'material-community-icons', name: 'language-swift', }, 'objective-c': { - type: 'image', + as: 'image', source: ICONS['objective-c'], alt: 'objective-c', - size: 6, + className: 'size-6', }, expo: { - type: 'image', + as: 'image', source: ICONS.expo, alt: 'expo', - px: 1, + className: 'mx-[1]', }, } @@ -97,13 +102,16 @@ export const ListItem = memo( }, }) => { return ( - - + + - - + + {title} - + {' · '} {subtitle} @@ -112,65 +120,59 @@ export const ListItem = memo( {description && {description}} {pictures && ( - + {pictures.map(picture => ( item-picture ))} - + )} {skills && ( - + {skills.map(skill => { const icon = skillIcon[skill] - if (icon.type === 'image') { + if (icon.as === 'image') { return ( ) } else { return ( - + ) } })} - + )} - + {location && ( - - {/* FIXME: add an icon */} - {location} + + {location} )} - - {/* FIXME: add an icon */} - {' '} + + {' '} {dayjs(startDate).format(!endDate ? 'MMMM YYYY' : 'MMM YYYY')} {endDate && ` - ${dayjs(endDate).format('MMM YYYY')}`} - - - + + + ) }, ) diff --git a/components/TabView.tsx b/components/TabView.tsx index e733f24..dbd0dae 100644 --- a/components/TabView.tsx +++ b/components/TabView.tsx @@ -1,218 +1,96 @@ -import {Box, Divider, Text, useToken} from 'native-base' -import { - ReactElement, - ReactNode, - Ref, - useCallback, - useRef, - useState, -} from 'react' -import {Dimensions, Platform, ScrollViewProps, StyleSheet} from 'react-native' import Animated, { - Extrapolate, - interpolate, SharedValue, useAnimatedScrollHandler, - useAnimatedStyle, } from 'react-native-reanimated' -import { - NavigationState, - Route, - SceneRendererProps, - TabView as RNTabView, - TabViewProps as RNTabViewProps, - TabBar as RNTabBar, -} from 'react-native-tab-view' +import {Pressable, View, ListRenderItem} from 'react-native' +import {useCallback, useMemo, useState} from 'react' import {DataItem} from '@/data' import {useValues} from '@/hooks' +import {ListItem} from './ListItem' +import {Text} from './base' import {Background} from './Background' -const initialLayout = {width: Dimensions.get('window').width} -const INDICATOR_WIDTH = 100 - -export type TabViewProps = Omit< - RNTabViewProps, - 'navigationState' | 'onIndexChange' | 'renderScene' -> & { - routes: T[] - renderScene: ( - props: SceneRendererProps & { - route: T - listProps: Partial & { - ref: Ref> - } - }, - ) => ReactNode +export type TabViewProps = { + ListHeaderComponent: React.ReactElement scrollY: SharedValue - paddingTop: number + routes: {key: string; title: string; data: DataItem[]}[] } -export const TabView = ({ +type TabViewDataItem = DataItem | 'tab' + +export const TabView = ({ routes, - renderScene: renderSceneProps, + ListHeaderComponent, scrollY, - paddingTop, - ...props -}: TabViewProps): ReactElement => { - const primary = useToken('colors', 'primary') - const muted = useToken('colors', 'muted') - - const {smallCoverHeight, insets, tabBarHeight, appWidth} = useValues() - const [index, setIndex] = useState(0) - - const listRef = useRef<{key: string; value: Animated.FlatList}[]>( - [], - ) - const listOffset = useRef>({}) +}: TabViewProps) => { + const {smallHeaderHeight} = useValues() const scrollHandler = useAnimatedScrollHandler(event => { - const y = event.contentOffset.y - scrollY.value = y - const curRoute = routes[index].key - listOffset.current[curRoute] = y + scrollY.value = event.contentOffset.y }) - const syncScrollOffset = useCallback(() => { - const curRouteKey = routes[index].key - listRef.current.forEach(item => { - if (item.key !== curRouteKey) { - if (scrollY.value < paddingTop && scrollY.value >= 0) { - if (item.value) { - // @ts-ignore issue: https://github.com/software-mansion/react-native-reanimated/issues/3023 - item.value.scrollToOffset({ - offset: scrollY.value, - animated: false, - }) - listOffset.current[item.key] = scrollY.value - } - } else if (scrollY.value >= paddingTop) { - if ( - listOffset.current[item.key] < paddingTop || - listOffset.current[item.key] == null - ) { - if (item.value) { - // @ts-ignore issue: https://github.com/software-mansion/react-native-reanimated/issues/3023 - item.value.scrollToOffset({ - offset: paddingTop, - animated: false, - }) - listOffset.current[item.key] = paddingTop - } - } - } - } - }) - }, [index, paddingTop, routes, scrollY.value]) + const [index, setIndex] = useState(0) - const tabBarStyle = useAnimatedStyle(() => { - return { - position: 'absolute', - left: 0, - right: 0, - zIndex: 99, - transform: [ - { - translateY: interpolate( - scrollY.value, - [0, paddingTop - smallCoverHeight], - [paddingTop, smallCoverHeight], - { - extrapolateRight: Extrapolate.CLAMP, - }, - ), - }, - ], - } - }) + const currentRoute = routes[index] + + const data = useMemo( + () => ['tab', ...currentRoute.data], + [currentRoute.data], + ) - const renderTabBar = useCallback( - ( - tabBarProps: SceneRendererProps & { - navigationState: NavigationState - }, - ) => ( - + const TabBar = useMemo( + () => ( + - - ( - - - {route.title} - - - )} - /> - - - + {routes.map((route, i) => ( + setIndex(i)}> + + + + {route.title} + + + + + ))} + ), - [appWidth, muted, primary, routes.length, syncScrollOffset, tabBarStyle], + [index, routes], ) - const renderScene = useCallback['renderScene']>( - sceneProps => - renderSceneProps({ - ...sceneProps, - listProps: { - showsVerticalScrollIndicator: false, - contentContainerStyle: { - paddingTop: paddingTop + tabBarHeight, - paddingBottom: insets.bottom, - }, - scrollEventThrottle: 16, - onScroll: scrollHandler, - onMomentumScrollEnd: syncScrollOffset, - onScrollEndDrag: syncScrollOffset, - ref: ref => { - if (ref) { - const found = listRef.current.find( - e => e.key === sceneProps.route.key, - ) - if (!found) { - listRef.current.push({ - key: sceneProps.route.key, - value: ref, - }) - } - } - }, - }, - }), - [ - insets.bottom, - paddingTop, - renderSceneProps, - scrollHandler, - syncScrollOffset, - tabBarHeight, - ], + const getItemId = useCallback( + (item: TabViewDataItem) => (item === 'tab' ? item : item.id.toString()), + [], + ) + const renderItem = useCallback>( + ({item}) => (item === 'tab' ? TabBar : ), + [TabBar], + ) + const renderSeparator = useCallback( + () => , + [], ) return ( - ) } - -const styles = StyleSheet.create({ - tabBar: { - elevation: 0, - backgroundColor: 'transparent', - }, -}) diff --git a/components/base/Fab.tsx b/components/base/Fab.tsx new file mode 100644 index 0000000..efbc5eb --- /dev/null +++ b/components/base/Fab.tsx @@ -0,0 +1,20 @@ +import {Pressable, PressableProps} from 'react-native' + +import {Icon, IconProps} from './Icon' + +type FabProps = PressableProps + +export const Fab = ({className, ...props}: FabProps) => { + return ( + + ) +} + +type FabIconProps = IconProps + +Fab.Icon = ({className, ...props}: FabIconProps) => ( + +) diff --git a/components/base/Icon.tsx b/components/base/Icon.tsx new file mode 100644 index 0000000..f45e9bc --- /dev/null +++ b/components/base/Icon.tsx @@ -0,0 +1,26 @@ +import Feather from '@expo/vector-icons/Feather' +import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons' +import {ComponentProps} from 'react' + +export type IconProps = + | ({ + type?: 'feather' + } & ComponentProps) + | ({ + type: 'material-community-icons' + } & ComponentProps) + +export const Icon = ({className, ...props}: IconProps) => { + const defaultClassName = 'text-primary text-base' + + if (props.type === 'material-community-icons') { + return ( + + ) + } + + return +} diff --git a/components/base/Text.tsx b/components/base/Text.tsx new file mode 100644 index 0000000..e71a338 --- /dev/null +++ b/components/base/Text.tsx @@ -0,0 +1,5 @@ +import {Text as RNText, TextProps as RNTextProps} from 'react-native' + +export const Text = ({className, ...props}: RNTextProps) => ( + +) diff --git a/components/base/index.ts b/components/base/index.ts new file mode 100644 index 0000000..e17eba9 --- /dev/null +++ b/components/base/index.ts @@ -0,0 +1,3 @@ +export * from './Icon' +export * from './Fab' +export * from './Text' diff --git a/components/index.ts b/components/index.ts index 16ccb86..308844d 100644 --- a/components/index.ts +++ b/components/index.ts @@ -4,3 +4,4 @@ export * from './TabView' export * from './LocaleFab' export * from './ColorModeFab' export * from './Background' +export * from './ListHeader' diff --git a/hooks/useValues.ts b/hooks/useValues.ts index db933f8..159dc5e 100644 --- a/hooks/useValues.ts +++ b/hooks/useValues.ts @@ -1,32 +1,24 @@ -import {useBreakpointValue} from 'native-base' import {useMemo} from 'react' -import {Dimensions} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' -export const COVER_HEIGHT = 160 -export const COVER_HEIGHT_SMALL = 80 -export const AVATAR_SIZE = 160 -export const AVATAR_SIZE_SMALL = 100 +export const HEADER_HEIGHT = 160 +export const HEADER_HEIGHT_SMALL = 80 +export const AVATAR_HEIGHT = 140 +export const AVATAR_HEIGHT_SMALL = 80 export const useValues = () => { const insets = useSafeAreaInsets() - const appWidth = useBreakpointValue({ - base: Dimensions.get('window').width, - md: 600, - }) return useMemo( () => ({ - coverHeight: insets.top + COVER_HEIGHT, - smallCoverHeight: insets.top + COVER_HEIGHT_SMALL, - avatarSize: AVATAR_SIZE, - smallAvatarSize: AVATAR_SIZE_SMALL, - headerOffset: COVER_HEIGHT - COVER_HEIGHT_SMALL, - avatarOffset: AVATAR_SIZE - AVATAR_SIZE_SMALL, - tabBarHeight: 48, + headerHeight: insets.top + HEADER_HEIGHT, + smallHeaderHeight: insets.top + HEADER_HEIGHT_SMALL, + avatarHeight: AVATAR_HEIGHT, + smallAvatarHeight: AVATAR_HEIGHT_SMALL, + headerOffset: HEADER_HEIGHT - HEADER_HEIGHT_SMALL, + avatarOffset: AVATAR_HEIGHT - AVATAR_HEIGHT_SMALL, insets, - appWidth: appWidth, }), - [appWidth, insets], + [insets], ) } diff --git a/package.json b/package.json index 8825564..d0bdbfa 100644 --- a/package.json +++ b/package.json @@ -29,19 +29,16 @@ "expo-status-bar": "~1.11.1", "expo-system-ui": "~2.9.3", "i18n-js": "^4.3.0", - "native-base": "^3.4.28", "nativewind": "^4.0.1", "normalize-css-color": "^1.0.2", "patch-package": "^8.0.0", "react": "18.2.0", "react-dom": "18.2.0", "react-native": "0.73.2", - "react-native-pager-view": "6.2.3", "react-native-reanimated": "~3.6.2", "react-native-safe-area-context": "4.8.2", "react-native-screens": "~3.29.0", "react-native-svg": "14.1.0", - "react-native-tab-view": "^3.1.1", "react-native-web": "~0.19.6", "zustand": "^4.4.1" }, diff --git a/tailwind.config.js b/tailwind.config.js index 7d06379..9d03610 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,5 +1,6 @@ /** @type {import('tailwindcss').Config} */ module.exports = { + darkMode: 'class', content: ['./app/**/*.{js,jsx,ts,tsx}', './components/**/*.{js,jsx,ts,tsx}'], presets: [require('nativewind/preset')], theme: { @@ -7,12 +8,23 @@ module.exports = { colors: { primary: { DEFAULT: 'var(--color-primary)', + contrast: 'var(--color-primary-contrast)', + }, + background: { + DEFAULT: 'var(--color-background)', + contrast: 'var(--color-background-contrast)', + }, + divider: { + DEFAULT: 'var(--color-divider)', }, }, textColor: { primary: { DEFAULT: 'var(--color-text-primary)', }, + secondary: { + DEFAULT: 'var(--color-text-secondary)', + }, }, }, }, diff --git a/theme.ts b/theme.ts deleted file mode 100644 index cacabae..0000000 --- a/theme.ts +++ /dev/null @@ -1,37 +0,0 @@ -import {extendTheme} from 'native-base' - -export const theme = extendTheme({ - components: { - Text: { - baseStyle: { - lineHeight: null, - }, - }, - Divider: { - baseStyle: { - _dark: { - backgroundColor: 'muted.800', - }, - _light: { - backgroundColor: 'muted.300', - }, - }, - }, - Box: { - baseStyle: { - _dark: { - borderColor: 'muted.800', - }, - _light: { - borderColor: 'muted.300', - }, - }, - }, - }, -}) - -type CustomThemeType = typeof theme - -declare module 'native-base' { - interface ICustomTheme extends CustomThemeType {} -} diff --git a/themes.ts b/themes.ts index 2b596ab..eae4172 100644 --- a/themes.ts +++ b/themes.ts @@ -1,11 +1,28 @@ import {vars, cssInterop} from 'nativewind' -import Ionicons from '@expo/vector-icons/Ionicons' +import Feather from '@expo/vector-icons/Feather' +import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons' +import {Image} from 'react-native' -cssInterop(Ionicons, { +cssInterop(Feather, { className: { target: 'style', + }, +}) + +cssInterop(MaterialCommunityIcons, { + className: { + target: 'style', + }, +}) + +cssInterop(Image, { + className: { + target: 'style', + }, + tintClassName: { + target: false, nativeStyleToProp: { - fontSize: 'size', + color: 'tintColor', }, }, }) @@ -20,11 +37,27 @@ export const themes: Record< twitter: { light: vars({ '--color-primary': '#1d9bf0', + '--color-primary-contrast': '#FFF', + + '--color-background': '#FFF', + '--color-background-contrast': '#000', + + '--color-divider': 'rgba(0, 0, 0, 0.1)', + '--color-text-primary': '#000', + '--color-text-secondary': 'rgba(0, 0, 0, 0.6)', }), dark: vars({ '--color-primary': '#1d9bf0', + '--color-primary-contrast': '#000', + + '--color-background': '#000', + '--color-background-contrast': '#FFF', + + '--color-divider': 'rgba(255, 255, 255, 0.2)', + '--color-text-primary': '#FFF', + '--color-text-secondary': 'rgba(255, 255, 255, 0.6)', }), }, } From 858dbb0526ee44cdef69e7a9d06c8f8a4506acd5 Mon Sep 17 00:00:00 2001 From: guizmo Date: Mon, 12 Feb 2024 17:24:48 +0100 Subject: [PATCH 02/14] Update avatar --- assets/images/avatar.jpeg | Bin 0 -> 65149 bytes assets/images/avatar.jpg | Bin 550687 -> 0 bytes assets/images/index.ts | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/images/avatar.jpeg delete mode 100644 assets/images/avatar.jpg diff --git a/assets/images/avatar.jpeg b/assets/images/avatar.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3a711660d2ae2ce6aab71ac9f89037cddc4498ba GIT binary patch literal 65149 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