fix:edit category polda satker

This commit is contained in:
Rama Priyanto 2025-01-13 12:33:42 +07:00
parent f620638c26
commit 350c061263
1 changed files with 99 additions and 71 deletions

View File

@ -38,6 +38,9 @@ import { UnitMapping } from "./unit-mapping";
import { useDropzone } from "react-dropzone"; import { useDropzone } from "react-dropzone";
import { CloudUpload } from "lucide-react"; import { CloudUpload } from "lucide-react";
import { useToast } from "@/components/ui/use-toast"; import { useToast } from "@/components/ui/use-toast";
import Cookies from "js-cookie";
import { getCookiesDecrypt } from "@/lib/utils";
const FormSchema = z.object({ const FormSchema = z.object({
title: z.string({ title: z.string({
required_error: "Required", required_error: "Required",
@ -112,7 +115,10 @@ export default function EditCategoryModal(props: {
const [files, setFiles] = useState<File[]>([]); const [files, setFiles] = useState<File[]>([]);
const [isOpen, setIsOpen] = useState(false); const [isOpen, setIsOpen] = useState(false);
const { toast } = useToast(); const { toast } = useToast();
const roleId = getCookiesDecrypt("urie");
const levelNumber = getCookiesDecrypt("ulne");
const userLevelId = getCookiesDecrypt("ulie");
const poldaState = Cookies.get("state");
const router = useRouter(); const router = useRouter();
const [satkerData, setSatkerData] = useState<string[]>([]); const [satkerData, setSatkerData] = useState<string[]>([]);
const [unitData, setUnitData] = useState<string[]>([]); const [unitData, setUnitData] = useState<string[]>([]);
@ -344,79 +350,101 @@ export default function EditCategoryModal(props: {
</FormItem> </FormItem>
)} )}
/> />
{Number(levelNumber) === 1 ? (
<FormField
control={form.control}
name="selectedUser"
render={() => (
<FormItem>
<FormLabel>Target Publish</FormLabel>
<FormField <div className="flex flex-row items-center gap-2">
control={form.control} <div className="flex gap-3 items-center">
name="selectedUser" <Checkbox
render={() => ( id="all"
<FormItem> disabled={isDetail}
<FormLabel>Target Publish</FormLabel> checked={isAllUserChecked}
onCheckedChange={(checked) => {
<div className="flex flex-row items-center gap-2"> if (checked) {
<div className="flex gap-3 items-center"> form.setValue(
<Checkbox "selectedUser",
id="all" userList.map((item) => item.id)
disabled={isDetail} );
checked={isAllUserChecked} } else {
onCheckedChange={(checked) => { form.setValue("selectedUser", []);
if (checked) { }
form.setValue( }}
"selectedUser", />
userList.map((item) => item.id) <label htmlFor="all" className="text-sm">
Semua
</label>
</div>
{userList.map((item) => (
<FormField
key={item.id}
control={form.control}
name="selectedUser"
render={({ field }) => {
return (
<FormItem
key={item.id}
className="flex flex-row items-start "
>
<div className="flex items-center gap-3">
<FormControl>
<Checkbox
disabled={isDetail}
checked={field.value?.includes(item.id)}
onCheckedChange={(checked) => {
return checked
? field.onChange([
...field.value,
item.id,
])
: field.onChange(
field.value?.filter(
(value) => value !== item.id
)
);
}}
/>
</FormControl>
<FormLabel className="font-normal">
{item.name}
</FormLabel>
</div>
</FormItem>
); );
} else { }}
form.setValue("selectedUser", []); />
} ))}
}}
/>
<label htmlFor="all" className="text-sm">
Semua
</label>
</div> </div>
{userList.map((item) => ( <FormMessage />
<FormField </FormItem>
key={item.id} )}
control={form.control} />
name="selectedUser" ) : (
render={({ field }) => { <FormField
return ( control={form.control}
<FormItem name="publishTo"
key={item.id} render={() => (
className="flex flex-row items-start " <FormItem>
> <FormLabel>Wilayah Publish</FormLabel>
<div className="flex items-center gap-3">
<FormControl> <div className="flex flex-row items-center gap-2">
<Checkbox <div className="flex gap-3 items-center">
disabled={isDetail} <Checkbox disabled checked />
checked={field.value?.includes(item.id)} <label htmlFor="all" className="text-sm">
onCheckedChange={(checked) => { {poldaState}
return checked </label>
? field.onChange([ </div>
...field.value, </div>
item.id, <FormMessage />
]) </FormItem>
: field.onChange( )}
field.value?.filter( />
(value) => value !== item.id )}
)
);
}}
/>
</FormControl>
<FormLabel className="font-normal">
{item.name}
</FormLabel>
</div>
</FormItem>
);
}}
/>
))}
</div>
<FormMessage />
</FormItem>
)}
/>
<FormField <FormField
control={form.control} control={form.control}
name="publishTo" name="publishTo"