|
@@ -31,7 +31,8 @@ import {
|
|
CardTitle
|
|
CardTitle
|
|
} from "@/components/ui/card";
|
|
} from "@/components/ui/card";
|
|
import { AxiosResponse } from "axios";
|
|
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({
|
|
const GeneralFormSchema = z.object({
|
|
name: z.string()
|
|
name: z.string()
|
|
@@ -43,6 +44,7 @@ export default function GeneralPage() {
|
|
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
|
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
|
|
|
|
|
const { orgUser } = userOrgUserContext();
|
|
const { orgUser } = userOrgUserContext();
|
|
|
|
+ const router = useRouter();
|
|
const { org } = useOrgContext();
|
|
const { org } = useOrgContext();
|
|
const { toast } = useToast();
|
|
const { toast } = useToast();
|
|
const api = createApiClient(useEnvContext());
|
|
const api = createApiClient(useEnvContext());
|
|
@@ -61,7 +63,7 @@ export default function GeneralPage() {
|
|
`/org/${org?.org.orgId}`
|
|
`/org/${org?.org.orgId}`
|
|
);
|
|
);
|
|
if (res.status === 200) {
|
|
if (res.status === 200) {
|
|
- console.log("Org deleted");
|
|
|
|
|
|
+ pickNewOrgAndNavigate();
|
|
}
|
|
}
|
|
} catch (err) {
|
|
} catch (err) {
|
|
console.error(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) {
|
|
async function onSubmit(data: GeneralFormValues) {
|
|
await api
|
|
await api
|
|
.post(`/org/${org?.org.orgId}`, {
|
|
.post(`/org/${org?.org.orgId}`, {
|