Misc fixes

Signed-off-by: Émile Ré <emile@getprobo.com>
This commit is contained in:
Émile Ré
2026-03-11 15:57:35 +04:00
parent af17afeffb
commit 38a0f28094
3 changed files with 19 additions and 19 deletions

View File

@@ -1,22 +1,23 @@
import { useMemo } from "react";
import { useSearchParams } from "react-router";
export function useSafeContinueUrl(fallbackUrl?: URL): URL {
fallbackUrl = new URL(fallbackUrl ?? window.location.origin, window.location.origin);
export function useSafeContinueUrl(fallback?: string): URL {
const [searchParams] = useSearchParams();
const continueUrlParam = searchParams.get("continue");
let safeContinueUrl: URL;
if (continueUrlParam) {
let continueUrl: URL;
try {
continueUrl = new URL(continueUrlParam, window.location.origin);
} catch {
continueUrl = fallbackUrl;
const safeContinueUrl = useMemo(() => {
if (continueUrlParam) {
let continueUrl: URL;
try {
continueUrl = new URL(continueUrlParam, window.location.origin);
} catch {
continueUrl = new URL(fallback ?? window.location.origin, window.location.origin);
}
return new URL(continueUrl.pathname + continueUrl.search, window.location.origin);
} else {
return new URL(fallback ?? window.location.origin, window.location.origin);
}
safeContinueUrl = new URL(continueUrl.pathname + continueUrl.search, window.location.origin);
} else {
safeContinueUrl = fallbackUrl;
}
}, [continueUrlParam, fallback]);
return safeContinueUrl;
}

View File

@@ -3,7 +3,7 @@ import { usePageTitle } from "@probo/hooks";
import { useTranslate } from "@probo/i18n";
import { Button, Field, useToast } from "@probo/ui";
import { useMutation } from "react-relay";
import { Link, useLocation, useNavigate, useSearchParams } from "react-router";
import { Link, useNavigate, useSearchParams } from "react-router";
import { graphql } from "relay-runtime";
import { z } from "zod";
@@ -27,7 +27,6 @@ export default function CreatePasswordPage() {
const { toast } = useToast();
const [searchParams] = useSearchParams();
const navigate = useNavigate();
const location = useLocation();
usePageTitle(__("Create Password"));
@@ -62,9 +61,11 @@ export default function CreatePasswordPage() {
description: __("Account created successfully"),
variant: "success",
});
searchParams.delete("token");
void navigate({
pathname: "/auth/login",
search: location.search,
search: "?" + searchParams.toString(),
}, {
replace: true,
});

View File

@@ -49,9 +49,7 @@ export function AssumePage(props: { queryRef: PreloadedQuery<AssumePageQuery> })
const [searchParams] = useSearchParams();
const { __ } = useTranslate();
const safeContinueUrl = useSafeContinueUrl(
new URL(window.location.origin + `/organizations/${organizationId}`),
);
const safeContinueUrl = useSafeContinueUrl(`/organizations/${organizationId}`);
const { viewer } = usePreloadedQuery<AssumePageQuery>(assumePageQuery, queryRef);
const [assumeOrganizationSession] = useMutation<AssumePageMutation>(assumeMutation);