Merge branch 'iipbs/st/dev' of https://www.onasys.co.kr:3000/ONAANDALL/frontend into iipbs/st/dev
This commit is contained in:
@@ -165,8 +165,16 @@ const HbStatisticsVerification = () => {
|
||||
[filteredVerificationTargetCodes],
|
||||
);
|
||||
|
||||
const isAllSelected = useMemo(() => {
|
||||
const count = filteredVerificationTargetCodes?.length ?? 0;
|
||||
return count > 0 && selectedTargets.length === count;
|
||||
}, [filteredVerificationTargetCodes, selectedTargets]);
|
||||
|
||||
const handleToggleAll = () => {
|
||||
setSelectedTargets(isAllSelected ? [] : allVerificationTargetIds);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!allVerificationTargetIds.length) return;
|
||||
setSelectedTargets(allVerificationTargetIds);
|
||||
}, [allVerificationTargetIds]);
|
||||
|
||||
@@ -476,42 +484,59 @@ const HbStatisticsVerification = () => {
|
||||
filteredVerificationTargetCodes &&
|
||||
filteredVerificationTargetCodes.length >
|
||||
0 ? (
|
||||
<div className="grid grid-cols-3 gap-4">
|
||||
{filteredVerificationTargetCodes.map(
|
||||
(item) => (
|
||||
<div
|
||||
key={
|
||||
item.vrfcTrgtSn
|
||||
}
|
||||
className="flex items-center gap-2"
|
||||
>
|
||||
<Checkbox
|
||||
id={
|
||||
<>
|
||||
<div className="flex items-center gap-2">
|
||||
<Checkbox
|
||||
id="select-all-targets"
|
||||
checked={isAllSelected}
|
||||
onCheckedChange={
|
||||
handleToggleAll
|
||||
}
|
||||
/>
|
||||
<Label
|
||||
htmlFor="select-all-targets"
|
||||
className="cursor-pointer !font-bold"
|
||||
>
|
||||
전체 선택
|
||||
</Label>
|
||||
</div>
|
||||
<div className="grid grid-cols-3 gap-4">
|
||||
{filteredVerificationTargetCodes.map(
|
||||
(item) => (
|
||||
<div
|
||||
key={
|
||||
item.vrfcTrgtSn
|
||||
}
|
||||
checked={selectedTargets.includes(
|
||||
item.vrfcTrgtSn,
|
||||
)}
|
||||
onCheckedChange={() =>
|
||||
handleTargetToggle(
|
||||
item.vrfcTrgtSn,
|
||||
)
|
||||
}
|
||||
/>
|
||||
<Label
|
||||
htmlFor={
|
||||
item.vrfcTrgtSn
|
||||
}
|
||||
className="cursor-pointer text-label"
|
||||
className="flex items-center gap-2"
|
||||
>
|
||||
{
|
||||
item.vrfcTrgtNm
|
||||
}
|
||||
</Label>
|
||||
</div>
|
||||
),
|
||||
)}
|
||||
</div>
|
||||
<Checkbox
|
||||
id={
|
||||
item.vrfcTrgtSn
|
||||
}
|
||||
checked={selectedTargets.includes(
|
||||
item.vrfcTrgtSn,
|
||||
)}
|
||||
onCheckedChange={() =>
|
||||
handleTargetToggle(
|
||||
item.vrfcTrgtSn,
|
||||
)
|
||||
}
|
||||
/>
|
||||
<Label
|
||||
htmlFor={
|
||||
item.vrfcTrgtSn
|
||||
}
|
||||
className="cursor-pointer text-label"
|
||||
>
|
||||
{
|
||||
item.vrfcTrgtNm
|
||||
}
|
||||
</Label>
|
||||
</div>
|
||||
),
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<div className="flex items-center justify-center py-4">
|
||||
<p className="text-[1.3rem] text-muted-foreground">
|
||||
|
||||
Reference in New Issue
Block a user