This commit is contained in:
Anang Yusman 2025-07-24 16:36:54 +08:00
commit 4def21dcb1
17 changed files with 106 additions and 115 deletions

View File

@ -76,9 +76,6 @@ export default function EditUserForm() {
},
});
const passwordVal = form.watch("password");
const confPasswordVal = form.watch("confirmPassword");
useEffect(() => {
initData();
}, []);

View File

@ -354,7 +354,7 @@ export default function EditUserForm() {
rules={["minLength", "specialChar", "number", "capital", "match"]}
minLength={8}
value={passwordVal || ""}
valueAgain={confPasswordVal}
valueAgain={confPasswordVal || ""}
onChange={(isValid) => {
form.setValue("isValidPassword", isValid);
}}

View File

@ -752,7 +752,7 @@ export default function CreateUserForm() {
rules={["minLength", "specialChar", "number", "capital", "match"]}
minLength={8}
value={passwordVal || ""}
valueAgain={confPasswordVal}
valueAgain={confPasswordVal || ""}
onChange={(isValid) => {
form.setValue("isValidPassword", isValid);
}}

View File

@ -191,8 +191,6 @@ export default function DetailUserForm() {
},
});
const passwordVal = form.watch("password");
const confPasswordVal = form.watch("confirmPassword");
const selectedRole = form.watch("role");
useEffect(() => {

View File

@ -757,7 +757,7 @@ export default function EditUserForm() {
rules={["minLength", "specialChar", "number", "capital", "match"]}
minLength={8}
value={passwordVal || ""}
valueAgain={confPasswordVal}
valueAgain={confPasswordVal || ""}
onChange={(isValid) => {
form.setValue("isValidPassword", isValid);
}}

View File

@ -125,16 +125,16 @@ export default function CreateCategoryModal() {
});
const contentType = form.watch("contentType");
const isAllContentChecked = listContent.every((item) =>
contentType?.includes(item.id)
const isAllContentChecked = contentType && listContent.every((item) =>
contentType.includes(item.id)
);
const users = form.watch("selectedUser");
const isAllUserChecked = userList.every((item) => users?.includes(item.id));
const isAllUserChecked = users && userList.every((item) => users.includes(item.id));
const target = form.watch("publishTo");
const isAllTargetChecked = publishToList.every((item) =>
target?.includes(item.id)
const isAllTargetChecked = target && publishToList.every((item) =>
target.includes(item.id)
);
const { getRootProps, getInputProps } = useDropzone({

View File

@ -146,12 +146,12 @@ export default function EditCategoryModal(props: {
form.setValue("id", String(data?.id));
form.setValue("title", String(data?.name));
form.setValue("description", String(data?.description));
form.setValue("contentType", data?.mediaTypes?.split(","));
form.setValue("contentType", data?.mediaTypes?.split(",") || []);
form.setValue(
"selectedUser",
removeAndReturn(data?.publishedFor, [2, 3, 4])
);
form.setValue("publishTo", data?.publishedLocation?.split(","));
form.setValue("publishTo", data?.publishedLocation?.split(",") || []);
form.setValue("file", thumbnailLink);
setUnitData(filterString(data?.publishedLocationLevel, "under"));
@ -183,16 +183,16 @@ export default function EditCategoryModal(props: {
}
const contentType = form.watch("contentType");
const isAllContentChecked = listContent.every((item) =>
contentType?.includes(item.id)
const isAllContentChecked = contentType && listContent.every((item) =>
contentType.includes(item.id)
);
const users = form.watch("selectedUser");
const isAllUserChecked = userList.every((item) => users?.includes(item.id));
const isAllUserChecked = users && userList.every((item) => users.includes(item.id));
const target = form.watch("publishTo");
const isAllTargetChecked = publishToList.every((item) =>
target?.includes(item.id)
const isAllTargetChecked = target && publishToList.every((item) =>
target.includes(item.id)
);
useEffect(() => {

View File

@ -68,11 +68,11 @@ export function UnitMapping(props: {
const unitType = form.watch("items");
const isAllUnitChecked = unitList.every((item) =>
unitType?.includes(String(item.id))
const isAllUnitChecked = unitType && unitList.every((item) =>
unitType.includes(String(item.id))
);
const isAllSatkerChecked = satkerList.every((item) =>
unitType?.includes(String(item.id))
const isAllSatkerChecked = unitType && satkerList.every((item) =>
unitType.includes(String(item.id))
);
const setupUnit = (data: UnitType[]) => {

View File

@ -91,8 +91,8 @@ export default function CreateFAQModal() {
});
const target = form.watch("publishTo");
const isAllTargetChecked = publishToList.every((item) =>
target?.includes(item.id)
const isAllTargetChecked = target && publishToList.every((item) =>
target.includes(item.id)
);
const onSubmit = async (data: z.infer<typeof FormSchema>) => {

View File

@ -74,11 +74,11 @@ export function UnitMapping(props: {
const unitType = form.watch("items");
const isAllUnitChecked = unitList.every((item) =>
unitType?.includes(String(item.id))
const isAllUnitChecked = unitType && unitList.every((item) =>
unitType.includes(String(item.id))
);
const isAllSatkerChecked = satkerList.every((item) =>
unitType?.includes(String(item.id))
const isAllSatkerChecked = unitType && satkerList.every((item) =>
unitType.includes(String(item.id))
);
const isAllPolresChecked = polresList.every((item) =>
unitType?.includes(String(item.id))

View File

@ -281,11 +281,11 @@ export default function DetailDaily() {
const output = form.watch("output");
const isAllChecked = items.every((item) => output?.includes(item.id));
const isAllChecked = output && items.every((item) => output.includes(item.id));
const unit = form.watch("unit");
const isAllUnitChecked = units.every((item) => unit?.includes(item.id));
const isAllUnitChecked = unit && units.every((item) => unit.includes(item.id));
const handleAllCheckedChange = (checked: boolean | string) => {
if (checked) {
@ -301,7 +301,7 @@ export default function DetailDaily() {
const handleItemCheckedChange = (id: string, checked: boolean | string) => {
form.setValue(
"output",
checked ? [...output, id] : output.filter((value) => value !== id)
checked ? [...(output ?? []), id] : (output ?? []).filter((value) => value !== id)
);
};
@ -318,11 +318,11 @@ export default function DetailDaily() {
const handleUnitCheckedChange = (id: string, checked: boolean | string) => {
if (checked) {
form.setValue("unit", [...unit, id]);
form.setValue("unit", [...(unit ?? []), id]);
} else {
if (id == "2") {
const temp = [];
for (const element of unit) {
for (const element of unit ?? []) {
if (element == "1") {
temp.push("1");
}
@ -331,7 +331,7 @@ export default function DetailDaily() {
} else {
form.setValue(
"unit",
unit.filter((value) => value !== id)
(unit ?? []).filter((value) => value !== id)
);
}
}
@ -542,14 +542,14 @@ export default function DetailDaily() {
id={list.id}
name={`all${list.id}`}
checked={
unit.includes("2")
unit?.includes("2") ?? false
? true
: !!selected[list.id]
}
onCheckedChange={() =>
handleParentChange(list.id)
}
disabled={unit.includes("2")}
disabled={unit?.includes("2") ?? false}
/>
<label
htmlFor={list.name}
@ -564,7 +564,7 @@ export default function DetailDaily() {
<div className="flex items-center space-x-2">
<Checkbox
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selectAll[list.id]
}
@ -574,7 +574,7 @@ export default function DetailDaily() {
Boolean(e)
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor="all-polres"
@ -592,7 +592,7 @@ export default function DetailDaily() {
<Checkbox
id={`${list.id}${subDes.id}`}
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selected[
`${list.id}${subDes.id}`
@ -603,7 +603,7 @@ export default function DetailDaily() {
`${list.id}${subDes.id}`
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor={`${list.id}${subDes.id}`}

View File

@ -294,11 +294,11 @@ export default function EditDaily() {
const output = form.watch("output");
const isAllChecked = items.every((item) => output?.includes(item.id));
const isAllChecked = output && items.every((item) => output.includes(item.id));
const unit = form.watch("unit");
const isAllUnitChecked = units.every((item) => unit?.includes(item.id));
const isAllUnitChecked = unit && units.every((item) => unit.includes(item.id));
const handleAllCheckedChange = (checked: boolean | string) => {
if (checked) {
@ -314,7 +314,7 @@ export default function EditDaily() {
const handleItemCheckedChange = (id: string, checked: boolean | string) => {
form.setValue(
"output",
checked ? [...output, id] : output.filter((value) => value !== id)
checked ? [...(output ?? []), id] : (output ?? []).filter((value) => value !== id)
);
};
@ -331,11 +331,11 @@ export default function EditDaily() {
const handleUnitCheckedChange = (id: string, checked: boolean | string) => {
if (checked) {
form.setValue("unit", [...unit, id]);
form.setValue("unit", [...(unit ?? []), id]);
} else {
if (id == "2") {
const temp = [];
for (const element of unit) {
for (const element of unit ?? []) {
if (element == "1") {
temp.push("1");
}
@ -344,7 +344,7 @@ export default function EditDaily() {
} else {
form.setValue(
"unit",
unit.filter((value) => value !== id)
(unit ?? []).filter((value) => value !== id)
);
}
}
@ -506,7 +506,7 @@ export default function EditDaily() {
<Checkbox
checked={unit?.includes(item.id)}
disabled={
item.id === "3" && !unit.includes("2")
item.id === "3" && !(unit?.includes("2") ?? false)
}
onCheckedChange={(checked) =>
handleUnitCheckedChange(item.id, checked)
@ -550,14 +550,14 @@ export default function EditDaily() {
id={list.id}
name={`all${list.id}`}
checked={
unit.includes("2")
unit?.includes("2") ?? false
? true
: !!selected[list.id]
}
onCheckedChange={() =>
handleParentChange(list.id)
}
disabled={unit.includes("2")}
disabled={unit?.includes("2") ?? false}
/>
<label
htmlFor={list.name}
@ -572,7 +572,7 @@ export default function EditDaily() {
<div className="flex items-center space-x-2">
<Checkbox
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selectAll[list.id]
}
@ -582,7 +582,7 @@ export default function EditDaily() {
Boolean(e)
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor="all-polres"
@ -600,7 +600,7 @@ export default function EditDaily() {
<Checkbox
id={`${list.id}${subDes.id}`}
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selected[
`${list.id}${subDes.id}`
@ -611,7 +611,7 @@ export default function EditDaily() {
`${list.id}${subDes.id}`
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor={`${list.id}${subDes.id}`}

View File

@ -242,11 +242,11 @@ export default function CreateDaily() {
const output = form.watch("output");
const isAllChecked = items.every((item) => output?.includes(item.id));
const isAllChecked = output && items.every((item) => output.includes(item.id));
const unit = form.watch("unit");
const isAllUnitChecked = units.every((item) => unit?.includes(item.id));
const isAllUnitChecked = unit && units.every((item) => unit.includes(item.id));
const handleAllCheckedChange = (checked: boolean | string) => {
if (checked) {
@ -262,7 +262,7 @@ export default function CreateDaily() {
const handleItemCheckedChange = (id: string, checked: boolean | string) => {
form.setValue(
"output",
checked ? [...output, id] : output.filter((value) => value !== id)
checked ? [...(output ?? []), id] : (output ?? []).filter((value) => value !== id)
);
};
@ -279,11 +279,11 @@ export default function CreateDaily() {
const handleUnitCheckedChange = (id: string, checked: boolean | string) => {
if (checked) {
form.setValue("unit", [...unit, id]);
form.setValue("unit", [...(unit ?? []), id]);
} else {
if (id == "2") {
const temp = [];
for (const element of unit) {
for (const element of unit ?? []) {
if (element == "1") {
temp.push("1");
}
@ -292,7 +292,7 @@ export default function CreateDaily() {
} else {
form.setValue(
"unit",
unit.filter((value) => value !== id)
(unit ?? []).filter((value) => value !== id)
);
}
}
@ -472,7 +472,7 @@ export default function CreateDaily() {
<Checkbox
checked={unit?.includes(item.id)}
disabled={
item.id === "3" && !unit.includes("2")
item.id === "3" && !(unit?.includes("2") ?? false)
}
onCheckedChange={(checked) =>
handleUnitCheckedChange(item.id, checked)
@ -516,14 +516,14 @@ export default function CreateDaily() {
id={list.id}
name={`all${list.id}`}
checked={
unit.includes("2")
unit?.includes("2") ?? false
? true
: !!selected[list.id]
}
onCheckedChange={() =>
handleParentChange(list.id)
}
disabled={unit.includes("2")}
disabled={unit?.includes("2") ?? false}
/>
<label
htmlFor={list.name}
@ -538,7 +538,7 @@ export default function CreateDaily() {
<div className="flex items-center space-x-2">
<Checkbox
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selectAll[list.id]
}
@ -548,7 +548,7 @@ export default function CreateDaily() {
Boolean(e)
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor="all-polres"
@ -566,7 +566,7 @@ export default function CreateDaily() {
<Checkbox
id={`${list.id}${subDes.id}`}
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selected[
`${list.id}${subDes.id}`
@ -577,7 +577,7 @@ export default function CreateDaily() {
`${list.id}${subDes.id}`
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor={`${list.id}${subDes.id}`}

View File

@ -281,11 +281,11 @@ export default function DetailDaily() {
const output = form.watch("output");
const isAllChecked = items.every((item) => output?.includes(item.id));
const isAllChecked = output && items.every((item) => output.includes(item.id));
const unit = form.watch("unit");
const isAllUnitChecked = units.every((item) => unit?.includes(item.id));
const isAllUnitChecked = unit && units.every((item) => unit.includes(item.id));
const handleAllCheckedChange = (checked: boolean | string) => {
if (checked) {
@ -301,7 +301,7 @@ export default function DetailDaily() {
const handleItemCheckedChange = (id: string, checked: boolean | string) => {
form.setValue(
"output",
checked ? [...output, id] : output.filter((value) => value !== id)
checked ? [...(output ?? []), id] : (output ?? []).filter((value) => value !== id)
);
};
@ -318,11 +318,11 @@ export default function DetailDaily() {
const handleUnitCheckedChange = (id: string, checked: boolean | string) => {
if (checked) {
form.setValue("unit", [...unit, id]);
form.setValue("unit", [...(unit ?? []), id]);
} else {
if (id == "2") {
const temp = [];
for (const element of unit) {
for (const element of unit ?? []) {
if (element == "1") {
temp.push("1");
}
@ -331,7 +331,7 @@ export default function DetailDaily() {
} else {
form.setValue(
"unit",
unit.filter((value) => value !== id)
(unit ?? []).filter((value) => value !== id)
);
}
}
@ -542,14 +542,14 @@ export default function DetailDaily() {
id={list.id}
name={`all${list.id}`}
checked={
unit.includes("2")
unit?.includes("2") ?? false
? true
: !!selected[list.id]
}
onCheckedChange={() =>
handleParentChange(list.id)
}
disabled={unit.includes("2")}
disabled={unit?.includes("2") ?? false}
/>
<label
htmlFor={list.name}
@ -564,7 +564,7 @@ export default function DetailDaily() {
<div className="flex items-center space-x-2">
<Checkbox
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selectAll[list.id]
}
@ -574,7 +574,7 @@ export default function DetailDaily() {
Boolean(e)
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor="all-polres"
@ -592,7 +592,7 @@ export default function DetailDaily() {
<Checkbox
id={`${list.id}${subDes.id}`}
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selected[
`${list.id}${subDes.id}`
@ -603,7 +603,7 @@ export default function DetailDaily() {
`${list.id}${subDes.id}`
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor={`${list.id}${subDes.id}`}

View File

@ -294,11 +294,11 @@ export default function EditDaily() {
const output = form.watch("output");
const isAllChecked = items.every((item) => output?.includes(item.id));
const isAllChecked = output && items.every((item) => output.includes(item.id));
const unit = form.watch("unit");
const isAllUnitChecked = units.every((item) => unit?.includes(item.id));
const isAllUnitChecked = unit && units.every((item) => unit.includes(item.id));
const handleAllCheckedChange = (checked: boolean | string) => {
if (checked) {
@ -314,7 +314,7 @@ export default function EditDaily() {
const handleItemCheckedChange = (id: string, checked: boolean | string) => {
form.setValue(
"output",
checked ? [...output, id] : output.filter((value) => value !== id)
checked ? [...(output ?? []), id] : (output ?? []).filter((value) => value !== id)
);
};
@ -331,11 +331,11 @@ export default function EditDaily() {
const handleUnitCheckedChange = (id: string, checked: boolean | string) => {
if (checked) {
form.setValue("unit", [...unit, id]);
form.setValue("unit", [...(unit ?? []), id]);
} else {
if (id == "2") {
const temp = [];
for (const element of unit) {
for (const element of unit ?? []) {
if (element == "1") {
temp.push("1");
}
@ -344,7 +344,7 @@ export default function EditDaily() {
} else {
form.setValue(
"unit",
unit.filter((value) => value !== id)
(unit ?? []).filter((value) => value !== id)
);
}
}
@ -506,7 +506,7 @@ export default function EditDaily() {
<Checkbox
checked={unit?.includes(item.id)}
disabled={
item.id === "3" && !unit.includes("2")
item.id === "3" && !(unit?.includes("2") ?? false)
}
onCheckedChange={(checked) =>
handleUnitCheckedChange(item.id, checked)
@ -550,14 +550,14 @@ export default function EditDaily() {
id={list.id}
name={`all${list.id}`}
checked={
unit.includes("2")
unit?.includes("2") ?? false
? true
: !!selected[list.id]
}
onCheckedChange={() =>
handleParentChange(list.id)
}
disabled={unit.includes("2")}
disabled={unit?.includes("2") ?? false}
/>
<label
htmlFor={list.name}
@ -572,7 +572,7 @@ export default function EditDaily() {
<div className="flex items-center space-x-2">
<Checkbox
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selectAll[list.id]
}
@ -582,7 +582,7 @@ export default function EditDaily() {
Boolean(e)
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor="all-polres"
@ -600,7 +600,7 @@ export default function EditDaily() {
<Checkbox
id={`${list.id}${subDes.id}`}
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selected[
`${list.id}${subDes.id}`
@ -611,7 +611,7 @@ export default function EditDaily() {
`${list.id}${subDes.id}`
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor={`${list.id}${subDes.id}`}

View File

@ -264,9 +264,9 @@ export default function CreateDaily() {
const media = form.watch("media");
const unit = form.watch("unit");
const isAllChecked = items.every((item) => output?.includes(item.id));
const isAllMediaChecked = medias.every((item) => media?.includes(item.id));
const isAllUnitChecked = units.every((item) => unit?.includes(item.id));
const isAllChecked = output && items.every((item) => output.includes(item.id));
const isAllMediaChecked = media && medias.every((item) => media.includes(item.id));
const isAllUnitChecked = unit && units.every((item) => unit.includes(item.id));
useEffect(() => {
async function initState() {
@ -398,10 +398,8 @@ export default function CreateDaily() {
form.setValue(
"output",
checked
? [...output, item.id]
: output.filter(
(value) => value !== item.id
)
? [...(output ?? []), item.id]
: (output ?? []).filter((value) => value !== item.id)
);
}}
/>
@ -464,16 +462,14 @@ export default function CreateDaily() {
checked={unit?.includes(item.id)}
disabled={
item.id === "polres" &&
!unit.includes("polda")
!(unit?.includes("polda") ?? false)
}
onCheckedChange={(checked) => {
form.setValue(
"unit",
checked
? [...unit, item.id]
: unit.filter(
(value) => value !== item.id
)
? [...(unit ?? []), item.id]
: (unit ?? []).filter((value) => value !== item.id)
);
}}
/>
@ -515,14 +511,14 @@ export default function CreateDaily() {
id={list.id}
name={`all${list.id}`}
checked={
unit.includes("2")
unit?.includes("2") ?? false
? true
: !!selected[list.id]
}
onCheckedChange={() =>
handleParentChange(list.id)
}
disabled={unit.includes("2")}
disabled={unit?.includes("2") ?? false}
/>
<label
htmlFor={list.name}
@ -537,7 +533,7 @@ export default function CreateDaily() {
<div className="flex items-center space-x-2">
<Checkbox
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selectAll[list.id]
}
@ -547,7 +543,7 @@ export default function CreateDaily() {
Boolean(e)
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor="all-polres"
@ -565,7 +561,7 @@ export default function CreateDaily() {
<Checkbox
id={`${list.id}${subDes.id}`}
checked={
unit.includes("3")
unit?.includes("3") ?? false
? true
: !!selected[
`${list.id}${subDes.id}`
@ -576,7 +572,7 @@ export default function CreateDaily() {
`${list.id}${subDes.id}`
)
}
disabled={unit.includes("3")}
disabled={unit?.includes("3") ?? false}
/>
<label
htmlFor={`${list.id}${subDes.id}`}
@ -648,8 +644,8 @@ export default function CreateDaily() {
form.setValue(
"media",
checked
? [...media, item.id]
: media.filter(
? [...(media ?? []), item.id]
: (media ?? []).filter(
(value) => value !== item.id
)
);

View File

@ -81,8 +81,8 @@ export default function CreateSpvFAQModal() {
});
const target = form.watch("publishTo");
const isAllTargetChecked = publishToList.every((item) =>
target?.includes(item.id)
const isAllTargetChecked = target && publishToList.every((item) =>
target.includes(item.id)
);
const onSubmit = async (data: z.infer<typeof FormSchema>) => {