Navigate after delete
This commit is contained in:
parent
0a86f193ac
commit
c8676ce06a
2 changed files with 38 additions and 4 deletions
|
@ -130,8 +130,10 @@ export const userOrgs = sqliteTable("userOrgs", {
|
|||
.notNull()
|
||||
.references(() => users.userId),
|
||||
orgId: text("orgId")
|
||||
.notNull()
|
||||
.references(() => orgs.orgId),
|
||||
.references(() => orgs.orgId, {
|
||||
onDelete: "cascade"
|
||||
})
|
||||
.notNull(),
|
||||
roleId: integer("roleId")
|
||||
.notNull()
|
||||
.references(() => roles.roleId),
|
||||
|
|
|
@ -31,7 +31,8 @@ import {
|
|||
CardTitle
|
||||
} from "@/components/ui/card";
|
||||
import { AxiosResponse } from "axios";
|
||||
import { DeleteOrgResponse } from "@server/routers/org";
|
||||
import { DeleteOrgResponse, ListOrgsResponse } from "@server/routers/org";
|
||||
import { redirect, useRouter } from "next/navigation";
|
||||
|
||||
const GeneralFormSchema = z.object({
|
||||
name: z.string()
|
||||
|
@ -43,6 +44,7 @@ export default function GeneralPage() {
|
|||
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
||||
|
||||
const { orgUser } = userOrgUserContext();
|
||||
const router = useRouter();
|
||||
const { org } = useOrgContext();
|
||||
const { toast } = useToast();
|
||||
const api = createApiClient(useEnvContext());
|
||||
|
@ -61,7 +63,7 @@ export default function GeneralPage() {
|
|||
`/org/${org?.org.orgId}`
|
||||
);
|
||||
if (res.status === 200) {
|
||||
console.log("Org deleted");
|
||||
pickNewOrgAndNavigate();
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
|
@ -76,6 +78,36 @@ export default function GeneralPage() {
|
|||
}
|
||||
}
|
||||
|
||||
async function pickNewOrgAndNavigate() {
|
||||
try {
|
||||
|
||||
const res = await api.get<AxiosResponse<ListOrgsResponse>>(
|
||||
`/orgs`
|
||||
);
|
||||
|
||||
if (res.status === 200) {
|
||||
if (res.data.data.orgs.length > 0) {
|
||||
const orgId = res.data.data.orgs[0].orgId;
|
||||
// go to `/${orgId}/settings`);
|
||||
router.push(`/${orgId}/settings`);
|
||||
} else {
|
||||
// go to `/setup`
|
||||
router.push("/setup");
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
toast({
|
||||
variant: "destructive",
|
||||
title: "Failed to fetch orgs",
|
||||
description: formatAxiosError(
|
||||
err,
|
||||
"An error occurred while listing your orgs"
|
||||
)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
async function onSubmit(data: GeneralFormValues) {
|
||||
await api
|
||||
.post(`/org/${org?.org.orgId}`, {
|
||||
|
|
Loading…
Add table
Reference in a new issue