diff --git a/packages/common/src/messages/sign-on/pages.ts b/packages/common/src/messages/sign-on/pages.ts index b74db3cd866..40f3912e05a 100644 --- a/packages/common/src/messages/sign-on/pages.ts +++ b/packages/common/src/messages/sign-on/pages.ts @@ -126,3 +126,7 @@ export const welcomeModalMessages = { youreIn: "You're in! Discover music from our talented DJs, producers, and artists." } + +export const skipButtonMessages = { + skipThisStep: 'Skip this step' +} diff --git a/packages/common/src/schemas/sign-on/finishProfileSchema.ts b/packages/common/src/schemas/sign-on/finishProfileSchema.ts index 0df909a389a..f21a0bc0f4a 100644 --- a/packages/common/src/schemas/sign-on/finishProfileSchema.ts +++ b/packages/common/src/schemas/sign-on/finishProfileSchema.ts @@ -6,9 +6,11 @@ export const finishProfileSchema = z.object({ displayName: z .string({ required_error: 'Display name is required.' }) .max(MAX_DISPLAY_NAME_LENGTH, ''), - profileImage: z.object({ - url: z.string() - }), + profileImage: z + .object({ + url: z.string() + }) + .optional(), coverPhoto: z .object({ url: z.string().optional() diff --git a/packages/common/src/schemas/sign-on/selectArtistsSchema.ts b/packages/common/src/schemas/sign-on/selectArtistsSchema.ts index 99014c2dab6..8adcf91e5a4 100644 --- a/packages/common/src/schemas/sign-on/selectArtistsSchema.ts +++ b/packages/common/src/schemas/sign-on/selectArtistsSchema.ts @@ -1,5 +1,5 @@ import { z } from 'zod' export const selectArtistsSchema = z.object({ - selectedArtists: z.array(z.string()).min(3) + selectedArtists: z.array(z.string()).optional() }) diff --git a/packages/common/src/schemas/sign-on/selectGenresSchema.ts b/packages/common/src/schemas/sign-on/selectGenresSchema.ts index 0e577eb726a..0e0b503def1 100644 --- a/packages/common/src/schemas/sign-on/selectGenresSchema.ts +++ b/packages/common/src/schemas/sign-on/selectGenresSchema.ts @@ -19,5 +19,5 @@ export const selectableGenres = GENRES.filter( })) export const selectGenresSchema = z.object({ - genres: z.array(z.string()).min(1) + genres: z.array(z.string()).optional() }) diff --git a/packages/mobile/src/components/suggested-follows/SuggestedFollows.tsx b/packages/mobile/src/components/suggested-follows/SuggestedFollows.tsx index fc5824b7cb1..8d9dac7acdd 100644 --- a/packages/mobile/src/components/suggested-follows/SuggestedFollows.tsx +++ b/packages/mobile/src/components/suggested-follows/SuggestedFollows.tsx @@ -38,9 +38,8 @@ const useStyles = makeStyles(({ spacing, palette }) => ({ })) const messages = { - title: `Oops! There's nothing here.`, - instruction: - 'Tracks uploaded or reposted by people you follow will appear in your feed.' + title: `Follow users to personalize your feed`, + instruction: `Let's fix that by following some of these artists!` } export const SuggestedFollows = () => { diff --git a/packages/mobile/src/screens/sign-on-screen/components/SkipButton.tsx b/packages/mobile/src/screens/sign-on-screen/components/SkipButton.tsx new file mode 100644 index 00000000000..cb3c233cc05 --- /dev/null +++ b/packages/mobile/src/screens/sign-on-screen/components/SkipButton.tsx @@ -0,0 +1,26 @@ +import { useCallback } from 'react' + +import { skipButtonMessages } from '@audius/common/messages' +import { finishSignUp } from '@audius/web/src/common/store/pages/signon/actions' +import { useDispatch } from 'react-redux' + +import { PlainButton } from '@audius/harmony-native' +import { useNavigation } from 'app/hooks/useNavigation' + +import type { SignOnScreenParamList } from '../types' + +export const SkipButton = () => { + const navigation = useNavigation() + const dispatch = useDispatch() + + const handleSkip = useCallback(() => { + dispatch(finishSignUp()) + navigation.navigate('AccountLoading') + }, [dispatch, navigation]) + + return ( + + {skipButtonMessages.skipThisStep} + + ) +} diff --git a/packages/mobile/src/screens/sign-on-screen/components/layout.tsx b/packages/mobile/src/screens/sign-on-screen/components/layout.tsx index 673e794b569..4d0944a5b40 100644 --- a/packages/mobile/src/screens/sign-on-screen/components/layout.tsx +++ b/packages/mobile/src/screens/sign-on-screen/components/layout.tsx @@ -83,10 +83,18 @@ type PageFooterProps = { buttonProps?: Partial centered?: boolean avoidKeyboard?: boolean + requireDirty?: boolean } & Omit export const PageFooter = (props: PageFooterProps) => { - const { prefix, postfix, buttonProps, avoidKeyboard, ...other } = props + const { + prefix, + postfix, + buttonProps, + avoidKeyboard, + requireDirty = true, + ...other + } = props const insets = useSafeAreaInsets() const { spacing } = useTheme() const { handleSubmit, dirty, isValid } = useFormikContext() ?? {} @@ -118,8 +126,6 @@ export const PageFooter = (props: PageFooterProps) => { left: 0 })} > - {/* Prefixes float above the shadowed paper container */} - {prefix ? {prefix} : null} { })} {...other} > + {/* Prefixes float above the shadowed paper container */} + {prefix}