Skip to content

Commit a1979b3

Browse files
committed
When creating a new org disable the button whilst it’s doing the request
1 parent 9254626 commit a1979b3

File tree

1 file changed

+12
-3
lines changed
  • apps/webapp/app/routes/_app.orgs.new

1 file changed

+12
-3
lines changed

apps/webapp/app/routes/_app.orgs.new/route.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { parse } from "@conform-to/zod";
33
import { RadioGroup } from "@radix-ui/react-radio-group";
44
import type { ActionFunction, LoaderFunctionArgs } from "@remix-run/node";
55
import { json, redirect } from "@remix-run/node";
6-
import { Form, useActionData } from "@remix-run/react";
6+
import { Form, useActionData, useNavigation } from "@remix-run/react";
77
import { typedjson, useTypedLoaderData } from "remix-typedjson";
88
import { z } from "zod";
99
import { MainCenteredContainer } from "~/components/layout/AppLayout";
@@ -23,7 +23,7 @@ import { createOrganization } from "~/models/organization.server";
2323
import { NewOrganizationPresenter } from "~/presenters/NewOrganizationPresenter.server";
2424
import { commitCurrentProjectSession, setCurrentProjectId } from "~/services/currentProject.server";
2525
import { requireUserId } from "~/services/session.server";
26-
import { plansPath, projectPath, rootPath, selectPlanPath } from "~/utils/pathBuilder";
26+
import { projectPath, rootPath, selectPlanPath } from "~/utils/pathBuilder";
2727

2828
const schema = z.object({
2929
orgName: z.string().min(3).max(50),
@@ -86,6 +86,7 @@ export default function NewOrganizationPage() {
8686
const { hasOrganizations } = useTypedLoaderData<typeof loader>();
8787
const lastSubmission = useActionData();
8888
const { isManagedCloud } = useFeatures();
89+
const navigation = useNavigation();
8990

9091
const [form, { orgName, projectName }] = useForm({
9192
id: "create-organization",
@@ -95,8 +96,11 @@ export default function NewOrganizationPage() {
9596
return parse(formData, { schema });
9697
},
9798
shouldRevalidate: "onSubmit",
99+
shouldValidate: "onSubmit",
98100
});
99101

102+
const isLoading = navigation.state === "submitting" || navigation.state === "loading";
103+
100104
return (
101105
<MainCenteredContainer className="max-w-[22rem]">
102106
<FormTitle LeadingIcon="organization" title="Create an Organization" />
@@ -161,7 +165,12 @@ export default function NewOrganizationPage() {
161165

162166
<FormButtons
163167
confirmButton={
164-
<Button type="submit" variant={"primary/small"} TrailingIcon="arrow-right">
168+
<Button
169+
type="submit"
170+
variant={"primary/small"}
171+
TrailingIcon="arrow-right"
172+
disabled={isLoading}
173+
>
165174
Create
166175
</Button>
167176
}

0 commit comments

Comments
 (0)