add icons
This commit is contained in:
@@ -29,6 +29,7 @@ import {IconCircle} from '#/components/IconCircle'
|
|||||||
import {Image} from 'expo-image'
|
import {Image} from 'expo-image'
|
||||||
import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions'
|
import {usePhotoLibraryPermission} from 'lib/hooks/usePermissions'
|
||||||
import {openCropper, openPicker} from 'lib/media/picker'
|
import {openCropper, openPicker} from 'lib/media/picker'
|
||||||
|
import {Emoji, emojis, emojiItems} from './types'
|
||||||
import {SelectImageButton} from '#/screens/Onboarding/StepProfile/SelectImageButton'
|
import {SelectImageButton} from '#/screens/Onboarding/StepProfile/SelectImageButton'
|
||||||
|
|
||||||
interface Avatar {
|
interface Avatar {
|
||||||
@@ -75,10 +76,13 @@ export function StepProfile() {
|
|||||||
<IconCircle icon={StreamingLive} style={[a.mb_2xl]} />
|
<IconCircle icon={StreamingLive} style={[a.mb_2xl]} />
|
||||||
|
|
||||||
<Title>
|
<Title>
|
||||||
<Trans>Upload a profile picture</Trans>
|
<Trans>Set your profile picture</Trans>
|
||||||
</Title>
|
</Title>
|
||||||
<Description>
|
<Description>
|
||||||
<Trans>Help people know you're not a bot!</Trans>
|
<Trans>
|
||||||
|
Help people know you're not a bot by uploading a picture or
|
||||||
|
creating an avatar!
|
||||||
|
</Trans>
|
||||||
</Description>
|
</Description>
|
||||||
|
|
||||||
<View style={[a.pt_5xl, a.gap_3xl]}>
|
<View style={[a.pt_5xl, a.gap_3xl]}>
|
||||||
@@ -112,6 +116,7 @@ export function StepProfile() {
|
|||||||
function AvatarCircle() {
|
function AvatarCircle() {
|
||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
const avatar = useAvatar()
|
const avatar = useAvatar()
|
||||||
|
const Icon = emojiItems[avatar.placeholder]
|
||||||
|
|
||||||
console.log(avatar)
|
console.log(avatar)
|
||||||
|
|
||||||
@@ -131,7 +136,7 @@ function AvatarCircle() {
|
|||||||
styles.imageContainer,
|
styles.imageContainer,
|
||||||
{backgroundColor: avatar.backgroundColor},
|
{backgroundColor: avatar.backgroundColor},
|
||||||
]}>
|
]}>
|
||||||
<Text style={[a.text_5xl]}>{emojiItems[avatar.placeholder]}</Text>
|
<Icon height={85} width={85} style={{color: 'white'}} />
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -146,14 +151,6 @@ const colors = [
|
|||||||
] as const
|
] as const
|
||||||
type Color = (typeof colors)[number]
|
type Color = (typeof colors)[number]
|
||||||
|
|
||||||
const emojis = ['camera', 'smile', 'frown', 'eyes'] as const
|
|
||||||
type Emoji = (typeof emojis)[number]
|
|
||||||
const emojiItems: Record<Emoji, string> = {
|
|
||||||
smile: '😊',
|
|
||||||
frown: '☹️',
|
|
||||||
eyes: '👀',
|
|
||||||
}
|
|
||||||
|
|
||||||
function ColorItem({color}: {color: Color}) {
|
function ColorItem({color}: {color: Color}) {
|
||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
const avatar = useAvatar()
|
const avatar = useAvatar()
|
||||||
@@ -190,6 +187,7 @@ function EmojiItem({emoji}: {emoji: Emoji}) {
|
|||||||
const t = useTheme()
|
const t = useTheme()
|
||||||
const avatar = useAvatar()
|
const avatar = useAvatar()
|
||||||
const setAvatar = useSetAvatar()
|
const setAvatar = useSetAvatar()
|
||||||
|
const Icon = emojiItems[emoji]
|
||||||
|
|
||||||
const onPress = React.useCallback(() => {
|
const onPress = React.useCallback(() => {
|
||||||
setAvatar(prev => ({
|
setAvatar(prev => ({
|
||||||
@@ -214,7 +212,7 @@ function EmojiItem({emoji}: {emoji: Emoji}) {
|
|||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
onPress={onPress}>
|
onPress={onPress}>
|
||||||
<Text style={[a.text_5xl]}>{emojiItems[emoji]}</Text>
|
<Icon height={35} width={35} style={[t.atoms.text_contrast_medium]} />
|
||||||
</Pressable>
|
</Pressable>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import {
|
||||||
|
EmojiSmile_Stroke2_Corner0_Rounded as EmojiSmile,
|
||||||
|
EmojiSad_Stroke2_Corner0_Rounded as EmojiSad,
|
||||||
|
EmojiAlt_Stroke2_Corner0_Rounded as EmojiAlt,
|
||||||
|
EmojiArc_Stroke2_Corner0_Rounded as EmojiArc,
|
||||||
|
EmojiHeartEyes_Stroke2_Corner0_Rounded as EmojiHeartEyes,
|
||||||
|
} from '#/components/icons/Emoji'
|
||||||
|
import {Alien_Stroke2_Corner0_Rounded as Alien} from '#/components/icons/Alien'
|
||||||
|
import {Bubbles_Stroke2_Corner0_Rounded as Bubbles} from '#/components/icons/Bubbles'
|
||||||
|
import {Explosion_Stroke2_Corner0_Rounded as Explosion} from '#/components/icons/Explosion'
|
||||||
|
import {Lab_Stroke2_Corner0_Rounded as Lab} from '#/components/icons/Lab'
|
||||||
|
import {PiggyBank_Stroke2_Corner0_Rounded as PiggyBank} from '#/components/icons/PiggyBank'
|
||||||
|
import {Poop_Stroke2_Corner0_Rounded as Poop} from '#/components/icons/Poop'
|
||||||
|
|
||||||
|
export const emojis = [
|
||||||
|
'camera',
|
||||||
|
'smile',
|
||||||
|
'sad',
|
||||||
|
'alt',
|
||||||
|
'arc',
|
||||||
|
'heartEyes',
|
||||||
|
'alien',
|
||||||
|
'bubbles',
|
||||||
|
'explosion',
|
||||||
|
'lab',
|
||||||
|
'piggyBank',
|
||||||
|
'poop',
|
||||||
|
] as const
|
||||||
|
export type Emoji = (typeof emojis)[number]
|
||||||
|
export const emojiItems: Record<Emoji, typeof EmojiSmile> = {
|
||||||
|
smile: EmojiSmile,
|
||||||
|
sad: EmojiSad,
|
||||||
|
alt: EmojiAlt,
|
||||||
|
arc: EmojiArc,
|
||||||
|
heartEyes: EmojiHeartEyes,
|
||||||
|
alien: Alien,
|
||||||
|
bubbles: Bubbles,
|
||||||
|
explosion: Explosion,
|
||||||
|
lab: Lab,
|
||||||
|
piggyBank: PiggyBank,
|
||||||
|
poop: Poop,
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user