diff --git a/src/screens/Onboarding/StepProfile/index.tsx b/src/screens/Onboarding/StepProfile/index.tsx index 641423da38..2be7d7a9be 100644 --- a/src/screens/Onboarding/StepProfile/index.tsx +++ b/src/screens/Onboarding/StepProfile/index.tsx @@ -1,5 +1,11 @@ import React from 'react' -import {View} from 'react-native' +import { + ColorValue, + FlatList, + ListRenderItemInfo, + StyleSheet, + View, +} from 'react-native' import {useLingui} from '@lingui/react' import {msg, Trans} from '@lingui/macro' @@ -20,6 +26,17 @@ import { } from '#/screens/Onboarding/Layout' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import {IconCircle} from '#/components/IconCircle' +import {Image} from 'expo-image' +import {usePalette} from 'lib/hooks/usePalette' +import {configurableLabelGroups} from 'state/queries/preferences' + +type AvatarPlaceholder = 'thinking' | 'heart' | 'laughing' + +interface Avatar { + imageUri?: string + backgroundColor?: ColorValue + placeholder?: AvatarPlaceholder +} export function StepProfile() { const {_} = useLingui() @@ -27,6 +44,7 @@ export function StepProfile() { const {track} = useAnalytics() const {state, dispatch} = React.useContext(Context) const onboardDispatch = useOnboardingDispatch() + const [avatar, setAvatar] = React.useState({}) React.useEffect(() => { track('OnboardingV2:StepProfile:Start') @@ -49,52 +67,7 @@ export function StepProfile() { - - - - - Public - - - - Your posts, likes, and blocks are public. Mutes are private. - - - - - - - - - Open - - - Never lose access to your followers or data. - - - - - {/**/} - - - Flexible - - - Choose the algorithms that power your custom feeds. - - - + @@ -114,3 +87,78 @@ export function StepProfile() { ) } + +function AvatarCircle({ + avatar, + setAvatar, +}: { + avatar: Avatar + setAvatar: React.Dispatch> +}) { + if (avatar.imageUri) { + return ( + + + + ) + } + + return ( + + ) +} + +const colors = ['image', 'red', 'blue', 'green', 'orange'] as const +type Color = (typeof colors)[number] + +function ColorItem({color}: {color: Color}) { + if (color === 'image') return null + + return ( + + ) +} +function colorRenderItem({item}: ListRenderItemInfo) { + return +} + +function Items({type}: {type: 'icons' | 'colors'}) { + return ( + + ) +} + +const styles = StyleSheet.create({ + imageContainer: { + borderRadius: 100, + height: 150, + width: 250, + overflow: 'hidden', + }, + paletteContainer: { + height: 90, + width: 90, + marginHorizontal: 5, + }, + flatListContainer: { + paddingLeft: 40, + paddingRight: 40, + }, +})