From 21238407565c20312235772cbcf247d12cfa2924 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sat, 29 Jun 2024 14:12:53 -0700 Subject: [PATCH] Add progress guide list and task components --- src/components/ProgressGuide/List.tsx | 58 +++++++++++++++++++++++++++ src/components/ProgressGuide/Task.tsx | 50 +++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 src/components/ProgressGuide/List.tsx create mode 100644 src/components/ProgressGuide/Task.tsx diff --git a/src/components/ProgressGuide/List.tsx b/src/components/ProgressGuide/List.tsx new file mode 100644 index 0000000000..489e083dd8 --- /dev/null +++ b/src/components/ProgressGuide/List.tsx @@ -0,0 +1,58 @@ +import React from 'react' +import {View} from 'react-native' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {atoms as a, useTheme} from '#/alf' +import {Button, ButtonIcon} from '../Button' +import {TimesLarge_Stroke2_Corner0_Rounded as Times} from '../icons/Times' +import {Text} from '../Typography' +import {ProgressGuideTask} from './Task' + +export function ProgressGuideList() { + const t = useTheme() + const {_} = useLingui() + + const [numLikes, setNumLikes] = React.useState(0) + const [numFollows, setNumFollows] = React.useState(0) + + // DEBUG + React.useEffect(() => { + const i = setInterval(() => { + setNumLikes(v => (v >= 10 ? 0 : v + 1)) + setNumFollows(v => (v >= 7 ? 0 : v + 1)) + }, 1000) + return () => { + clearInterval(i) + } + }, [setNumLikes]) + + return ( + + + + GET STARTED + + + + + + + ) +} diff --git a/src/components/ProgressGuide/Task.tsx b/src/components/ProgressGuide/Task.tsx new file mode 100644 index 0000000000..591eef905b --- /dev/null +++ b/src/components/ProgressGuide/Task.tsx @@ -0,0 +1,50 @@ +import React from 'react' +import {View} from 'react-native' +import * as Progress from 'react-native-progress' + +import {atoms as a, useTheme} from '#/alf' +import {AnimatedCheck} from '../anim/AnimatedCheck' +import {Text} from '../Typography' + +export interface ProgressGuideTaskProps { + current: number + total: number + title: string + subtitle?: string +} + +export function ProgressGuideTask({ + current, + total, + title, + subtitle, +}: ProgressGuideTaskProps) { + const t = useTheme() + + return ( + + {current === total ? ( + + ) : ( + + )} + + + {title} + {subtitle && ( + + {subtitle} + + )} + + + + ) +}