feat: tambah fitur pilih semua pada halaman pilih anggota kegiatan & tugas
This commit is contained in:
@@ -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 && (
|
||||
<Pressable
|
||||
style={[Styles.itemSelectModal, { borderColor: colors.icon + '20', paddingTop: 0 }]}
|
||||
onPress={handleSelectAll}
|
||||
>
|
||||
<Text style={[Styles.textMediumSemiBold]}>{isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'}</Text>
|
||||
{isAllSelected && <AntDesign name="check" size={20} color={colors.text} />}
|
||||
</Pressable>
|
||||
)}
|
||||
{
|
||||
data.length > 0 ?
|
||||
data.map((item: any, index: any) => {
|
||||
|
||||
@@ -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 && (
|
||||
<Pressable
|
||||
style={[Styles.itemSelectModal, { borderColor: colors.icon + '20', paddingTop: 0 }]}
|
||||
onPress={handleSelectAll}
|
||||
>
|
||||
<Text style={[Styles.textMediumSemiBold]}>{isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'}</Text>
|
||||
{isAllSelected && <AntDesign name="check" size={20} color={colors.text} />}
|
||||
</Pressable>
|
||||
)}
|
||||
{
|
||||
data.length > 0 ?
|
||||
data.map((item: any, index: any) => {
|
||||
|
||||
@@ -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 && (
|
||||
<Pressable
|
||||
style={[Styles.itemSelectModal, { borderColor: colors.icon + '20', paddingTop: 0 }]}
|
||||
onPress={handleSelectAll}
|
||||
>
|
||||
<Text style={[Styles.textMediumSemiBold]}>{isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'}</Text>
|
||||
{isAllSelected && <AntDesign name="check" size={20} color={colors.text} />}
|
||||
</Pressable>
|
||||
)}
|
||||
{
|
||||
data.length > 0 ?
|
||||
<View style={[Styles.mb100]}>
|
||||
|
||||
@@ -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 && (
|
||||
<Pressable
|
||||
style={[Styles.itemSelectModal, { borderColor: colors.icon + '20', paddingTop: 0 }]}
|
||||
onPress={handleSelectAll}
|
||||
>
|
||||
<Text style={[Styles.textMediumSemiBold]}>{isAllSelected ? 'Batalkan Semua' : 'Pilih Semua'}</Text>
|
||||
{isAllSelected && <AntDesign name="check" size={20} color={colors.text} />}
|
||||
</Pressable>
|
||||
)}
|
||||
{
|
||||
data.length > 0 ?
|
||||
data.map((item: any, index: any) => {
|
||||
|
||||
Reference in New Issue
Block a user