diff --git a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx index d212b12..8739115 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/[detail]/add-member.tsx @@ -74,6 +74,22 @@ export default function AddMemberTask() { } } + const availableData = data.filter((item: any) => !dataOld.some((i: any) => i.idUser == item.idUser)) + const isAllSelected = availableData.length > 0 && availableData.every((item: any) => + selectMember.some((s: any) => s.idUser == item.idUser) + ) + + function handleSelectAll() { + if (isAllSelected) { + setSelectMember([]) + } else { + const newMembers = availableData + .filter((item: any) => !selectMember.some((s: any) => s.idUser == item.idUser)) + .map((item: any) => ({ idUser: item.idUser, name: item.name, img: item.img })) + setSelectMember([...selectMember, ...newMembers]) + } + } + async function handleAddMember() { try { setLoading(true) @@ -159,6 +175,15 @@ export default function AddMemberTask() { showsVerticalScrollIndicator={false} > + {availableData.length > 0 && ( + + {isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'} + {isAllSelected && } + + )} { data.length > 0 ? data.map((item: any, index: any) => { diff --git a/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx b/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx index 1567d06..eefb79d 100644 --- a/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx +++ b/app/(application)/division/[id]/(fitur-division)/task/create/member.tsx @@ -54,6 +54,21 @@ export default function AddMemberCreateTask() { } } + const isAllSelected = data.length > 0 && data.every((item: any) => + selectMember.some((s: any) => s.idUser == item.idUser) + ) + + function handleSelectAll() { + if (isAllSelected) { + setSelectMember([]) + } else { + const newMembers = data + .filter((item: any) => !selectMember.some((s: any) => s.idUser == item.idUser)) + .map((item: any) => ({ idUser: item.idUser, name: item.name, img: item.img })) + setSelectMember([...selectMember, ...newMembers]) + } + } + async function handleAddMember() { try { dispatch(setMemberChoose(selectMember)) @@ -127,6 +142,15 @@ export default function AddMemberCreateTask() { showsVerticalScrollIndicator={false} > + {data.length > 0 && ( + + {isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'} + {isAllSelected && } + + )} { data.length > 0 ? data.map((item: any, index: any) => { diff --git a/app/(application)/project/[id]/add-member.tsx b/app/(application)/project/[id]/add-member.tsx index 10af1ab..4aaddaa 100644 --- a/app/(application)/project/[id]/add-member.tsx +++ b/app/(application)/project/[id]/add-member.tsx @@ -78,6 +78,22 @@ export default function AddMemberProject() { } } + const availableData = data.filter((item: any) => !dataOld.some((i: any) => i.idUser == item.id)) + const isAllSelected = availableData.length > 0 && availableData.every((item: any) => + selectMember.some((s: any) => s.idUser == item.id) + ) + + function handleSelectAll() { + if (isAllSelected) { + setSelectMember([]) + } else { + const newMembers = availableData + .filter((item: any) => !selectMember.some((s: any) => s.idUser == item.id)) + .map((item: any) => ({ idUser: item.id, name: item.name, img: item.img })) + setSelectMember([...selectMember, ...newMembers]) + } + } + async function handleAddMember() { try { setLoading(true) @@ -160,6 +176,15 @@ export default function AddMemberProject() { showsVerticalScrollIndicator={false} style={[Styles.h100, { backgroundColor: colors.background }]} > + {availableData.length > 0 && ( + + {isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'} + {isAllSelected && } + + )} { data.length > 0 ? diff --git a/app/(application)/project/create/member.tsx b/app/(application)/project/create/member.tsx index fbba5a1..170b3d6 100644 --- a/app/(application)/project/create/member.tsx +++ b/app/(application)/project/create/member.tsx @@ -61,6 +61,21 @@ export default function AddMemberCreateProject() { } } + const isAllSelected = data.length > 0 && data.every((item: any) => + selectMember.some((s: any) => s.idUser == item.id) + ) + + function handleSelectAll() { + if (isAllSelected) { + setSelectMember([]) + } else { + const newMembers = data + .filter((item: any) => !selectMember.some((s: any) => s.idUser == item.id)) + .map((item: any) => ({ idUser: item.id, name: item.name, img: item.img })) + setSelectMember([...selectMember, ...newMembers]) + } + } + async function handleAddMember() { try { dispatch(setMemberChoose(selectMember)) @@ -134,6 +149,15 @@ export default function AddMemberCreateProject() { style={[Styles.h100, Styles.flex1, { backgroundColor: colors.background }]} > + {data.length > 0 && ( + + {isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'} + {isAllSelected && } + + )} { data.length > 0 ? data.map((item: any, index: any) => {