feat: complete release readiness work
- consolidate API ownership and remove dead vendor code - add Stripe billing, learning paths, and public CV hardening - add migration, recovery, security, audit, and browser gates
This commit is contained in:
@@ -48,7 +48,13 @@ export default function LoginPage({ initialMode = "login" }: { initialMode?: "lo
|
||||
|
||||
const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
|
||||
const nextPath = (location?.state?.from as string | undefined) ?? "/dashboard";
|
||||
const requestedNextPath = location?.state?.from;
|
||||
const nextPath = typeof requestedNextPath === "string"
|
||||
&& requestedNextPath.startsWith("/")
|
||||
&& !requestedNextPath.startsWith("//")
|
||||
&& !requestedNextPath.includes("\\")
|
||||
? requestedNextPath
|
||||
: "/dashboard";
|
||||
|
||||
useEffect(() => {
|
||||
api
|
||||
|
||||
Reference in New Issue
Block a user