From f7558f3c93eef0c93d8c0ec500688ff7c1ca875f Mon Sep 17 00:00:00 2001 From: john Date: Sun, 18 May 2025 22:57:06 +0200 Subject: [PATCH] save code when it's there --- src/app/feed/pages/HomePage.tsx | 8 +++++++- src/hooks/useSaveSignupCodeToLocalStorage.ts | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/hooks/useSaveSignupCodeToLocalStorage.ts diff --git a/src/app/feed/pages/HomePage.tsx b/src/app/feed/pages/HomePage.tsx index 910e1db..5ba5d27 100644 --- a/src/app/feed/pages/HomePage.tsx +++ b/src/app/feed/pages/HomePage.tsx @@ -10,6 +10,7 @@ import { Temporal } from '@js-temporal/polyfill' import SingleColumnLayout from '../../../layouts/SingleColumnLayout.tsx' import NavBar from '../../../components/NavBar.tsx' import AuthNavButtons from '../../auth/components/AuthNavButtons.tsx' +import { useSaveSignupCodeToLocalStorage } from '../../../hooks/useSaveSignupCodeToLocalStorage.ts' interface HomePageProps { postsService: PostsService @@ -18,6 +19,7 @@ interface HomePageProps { export default function HomePage({ postsService, mediaService }: HomePageProps) { const { user } = useUser() + useSaveSignupCodeToLocalStorage() const [isSubmitting, setIsSubmitting] = useState(false) const fetchPosts = useCallback( @@ -30,7 +32,11 @@ export default function HomePage({ postsService, mediaService }: HomePageProps) const { pages, setPages, loadNextPage } = useFeedViewModel(fetchPosts) const onCreatePost = useCallback( - async (content: string, files: { file: File; width: number; height: number }[], isPublic: boolean) => { + async ( + content: string, + files: { file: File; width: number; height: number }[], + isPublic: boolean, + ) => { setIsSubmitting(true) if (user == null) throw new Error('Not logged in') try { diff --git a/src/hooks/useSaveSignupCodeToLocalStorage.ts b/src/hooks/useSaveSignupCodeToLocalStorage.ts new file mode 100644 index 0000000..823824f --- /dev/null +++ b/src/hooks/useSaveSignupCodeToLocalStorage.ts @@ -0,0 +1,14 @@ +import { useSearchParams } from 'react-router-dom' +import { useEffect } from 'react' + +export function useSaveSignupCodeToLocalStorage() { + const [searchParams] = useSearchParams() + + const code = searchParams.get('ck') + + useEffect(() => { + if (code) { + localStorage.setItem('signupCode', code) + } + }, [code]) +}