diff --git a/frontend/src/hooks/useLetters.tsx b/frontend/src/hooks/useLetters.tsx index be33475..5f8e657 100644 --- a/frontend/src/hooks/useLetters.tsx +++ b/frontend/src/hooks/useLetters.tsx @@ -86,7 +86,7 @@ export function useLetters() { return { drafts: letters.filter((l) => l.status === "DRAFT"), kept: letters.filter((l) => l.type === "KEPT" && l.status === "SEALED"), - vault: letters.filter((l) => l.type === "VAULT"), + vault: letters.filter((l) => l.type === "VAULT" && l.status === "SEALED"), sent: letters.filter((l) => l.type === "SENT" && l.status === "SEALED"), }; }, [letters]); diff --git a/frontend/src/pages/Activate.tsx b/frontend/src/pages/Activate.tsx index d81d9ae..740b79e 100644 --- a/frontend/src/pages/Activate.tsx +++ b/frontend/src/pages/Activate.tsx @@ -16,8 +16,6 @@ export default function Activate() { useEffect(() => { if (!(uidb64 && token) || hasCalled.current) return; - - // prevent double api calls hasCalled.current = true; const activateAccount = async () => { @@ -46,7 +44,7 @@ export default function Activate() { )} {status === "success" && ( -
+
Account Activated! -

- Welcome to +

+ Welcome to
Your identity is now verified and ready for timeless letters.

-
- +

Activation Failed

-

+

The link might be expired or already used. Please try registering again.

+
)} diff --git a/frontend/src/pages/Drawer.tsx b/frontend/src/pages/Drawer.tsx index d49b509..2692568 100644 --- a/frontend/src/pages/Drawer.tsx +++ b/frontend/src/pages/Drawer.tsx @@ -5,6 +5,7 @@ import { DrawerSection } from "../components/drawer/DrawerSection.tsx"; import { LetterItem } from "../components/drawer/LetterItem.tsx"; import { PasskeyModal } from "../components/drawer/PasskeyModal.tsx"; import Logo from "../components/Logo"; +import Saajan from "../components/ui/Saajan.tsx"; import { PATHS } from "../config/routes"; import { useAuth } from "../hooks/useAuth"; import { useLetters } from "../hooks/useLetters"; @@ -165,6 +166,12 @@ export default function Drawer() { +
+ +
); } diff --git a/frontend/src/pages/Editor.tsx b/frontend/src/pages/Editor.tsx index 4d81ea6..c481516 100644 --- a/frontend/src/pages/Editor.tsx +++ b/frontend/src/pages/Editor.tsx @@ -293,7 +293,7 @@ export default function Editor() { setLetterStatus(status); setLastSavedPulseTick((prev) => prev + 1); - if (status === "SEALED") { + if (status === "SEALED" || status === "VAULT") { setSealedTargetId(targetId); } setSaveOverlay("saved"); @@ -419,7 +419,11 @@ export default function Editor() { /> )} {sealedTargetId && ( - + )}
diff --git a/frontend/src/pages/VerifyEmail.tsx b/frontend/src/pages/VerifyEmail.tsx index 3c0c3be..03145c0 100644 --- a/frontend/src/pages/VerifyEmail.tsx +++ b/frontend/src/pages/VerifyEmail.tsx @@ -1,41 +1,55 @@ import { EnvelopeSimpleOpenIcon } from "@phosphor-icons/react"; import Logo from "../components/Logo"; +import Saajan from "../components/ui/Saajan"; export default function VerifyEmail() { return ( -
-
- +
+ + +
+
+ +
+ +
+

+ Check Your Mailbox +

+

+ You're one train away from starting your {" "} + journey. +

+
+ +
+ +
+

+ Nothing yet? Sometimes letters take the wrong train. Check your spam + folder. +
+ + The link expires in 24 hours. + +
I'm patient... but not endlessly so +

+
+ +
- -
-

Check Your Email

-

- We've sent an activation link to your inbox.
- Please click it to verify your account. -

-
- -
- -
-

- Didn't receive it? Check your spam folder or wait for a few minutes. - The link will expire in 24 hours. -

-
- -
); }