Working on the Portabase debug.

This commit is contained in:
charlesgauthereau
2025-05-18 20:46:59 +02:00
parent 6f2523e524
commit 405de7b323
13 changed files with 240 additions and 281 deletions
@@ -7,36 +7,36 @@ import { Form } from "@/components/ui/form";
import { Button } from "@/components/ui/button";
import { useMutation } from "@tanstack/react-query";
import { useRouter } from "next/navigation";
import { Organization, User } from "@prisma/client";
import { MultiSelect } from "@/components/wrappers/common/multiselect/multi-select";
import { OrganizationFormSchema, OrganizationFormType } from "@/components/wrappers/dashboard/organization/OrganizationForm/organization-form.schema";
import { createOrganizationAction, updateOrganizationAction } from "@/components/wrappers/dashboard/organization/organization.action";
import { updateOrganizationAction } from "@/components/wrappers/dashboard/organization/organization.action";
import { toast } from "sonner";
import {Member, Organization} from "better-auth/plugins";
export type organizationFormProps = {
defaultValues?: Organization;
users: User[];
members: Member[];
};
export const OrganizationForm = (props: organizationFormProps) => {
const router = useRouter();
const isCreate = !Boolean(props.defaultValues);
const formatUsersList = (users: User[]) => {
return users.map((user) => ({
value: user.id,
label: `${user.name} | ${user.email}`,
const formatUsersList = (members: Member[]) => {
return members.map((member) => ({
value: member.id,
label: `${member.user.name} | ${member.user.email}`,
}));
};
const formatDefaultUsers = (users: OrganizationFormType["users"]): string[] => {
console.log(users);
return users.map((user) => user.userId);
const formatDefaultUsers = (members: OrganizationFormType["members"]): string[] => {
console.log(members);
return members.map((member) => member.userId);
};
const formattedDefaultValues = {
...props.defaultValues,
users: !isCreate ? formatDefaultUsers(props.defaultValues?.users) : [],
users: !isCreate ? formatDefaultUsers(props.defaultValues?.members) : [],
};
const form = useZodForm({
@@ -47,15 +47,15 @@ export const OrganizationForm = (props: organizationFormProps) => {
const mutation = useMutation({
mutationFn: async (values: OrganizationFormType) => {
console.log(values);
const organization = await updateOrganizationAction({ data: values, organizationId: props.defaultValues.id });
console.log(organization);
if (organization.data.success) {
toast.success(organization.data.actionSuccess.message);
router.push(`/dashboard/${organization.data.value.slug}/settings`);
router.refresh();
} else {
toast.success(organization.data.actionError.message);
}
// const organization = await updateOrganizationAction({ data: values, organizationId: props.defaultValues.id });
// console.log(organization);
// if (organization.data.success) {
// // toast.success(organization.data.actionSuccess.message);
// // router.push(`/dashboard/${organization.data.value.slug}/settings`);
// // router.refresh();
// } else {
// // toast.success(organization.data.actionError.message);
// }
},
});
@@ -113,7 +113,7 @@ export const OrganizationForm = (props: organizationFormProps) => {
<FormLabel>Databases</FormLabel>
<FormControl>
<MultiSelect
options={formatUsersList(props.users)}
options={formatUsersList(props.members)}
onValueChange={field.onChange}
defaultValue={field.value ?? []}
placeholder="Select databases"
@@ -7,7 +7,7 @@ export const OrganizationFormSchema = z.object({
.regex(/^[a-zA-Z0-9_-]*$/, 'Slug can only contain letters, numbers, underscores, and hyphens')
.min(5, 'Slug must be at least 5 characters long')
.max(20, 'Slug must be at most 20 characters long'),
users: z.array(z.string()),
members: z.array(z.string()),
});