patterns
ForgotPasswordPage
Ready-made password-reset request screen. Two states inside one component — email form, then "check your inbox" confirmation. Wire onSubmit to your provider's `forgetPassword` and the host doesn't need to manage success-state UI.
Install
Pull this component (and its dependencies) straight into your app via the shadcn CLI:
npx shadcn@latest add https://design.oapps.io/r/forgot-password-page.jsonOr import from the workspace package:
import { ForgotPasswordPage, ForgotPasswordPageProps } from "@8maverik8/auth";Examples
Default
import { ForgotPasswordPage } from "@8maverik8/auth";
import { authClient } from "@/lib/auth-client";
<ForgotPasswordPage
wordmark="archi"
onSubmit={async ({ email }) => {
const res = await authClient.forgetPassword({
email,
redirectTo: "/reset-password",
});
if (res.error) return { error: res.error.message ?? "Could not send reset link." };
return { error: null };
}}
/>Guidelines
- Use the success state's email display — it confirms to the user which inbox to check (catches typos).
- Reveal whether the email exists in your system in the response.Always return success even for unknown emails — otherwise you leak account existence. The component already shows generic "check your inbox" copy.