mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
Working on the Portabase debug.
This commit is contained in:
+21
-21
@@ -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"
|
||||
|
||||
+1
-1
@@ -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()),
|
||||
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user