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