diff --git a/app/(application)/announcement/create.tsx b/app/(application)/announcement/create.tsx index f487e4f..860057f 100644 --- a/app/(application)/announcement/create.tsx +++ b/app/(application)/announcement/create.tsx @@ -102,9 +102,16 @@ export default function CreateAnnouncement() { const pickDocumentAsync = async () => { const result = await DocumentPicker.getDocumentAsync({ type: ["*/*"], multiple: true }); if (!result.canceled) { + let skipped = 0 for (const asset of result.assets) { - if (asset.uri) setFileForm(prev => [...prev, asset]) + if (!asset.uri) continue + if (fileForm.some(f => f.name === asset.name)) { + skipped++ + } else { + setFileForm(prev => [...prev, asset]) + } } + if (skipped > 0) Toast.show({ type: 'small', text1: 'Beberapa file sudah ditambahkan' }) } }; diff --git a/app/(application)/announcement/edit/[id].tsx b/app/(application)/announcement/edit/[id].tsx index ff90f89..3f106e2 100644 --- a/app/(application)/announcement/edit/[id].tsx +++ b/app/(application)/announcement/edit/[id].tsx @@ -131,9 +131,18 @@ export default function EditAnnouncement() { const pickDocumentAsync = async () => { const result = await DocumentPicker.getDocumentAsync({ type: ["*/*"], multiple: true }); if (!result.canceled) { + let skipped = 0 for (const asset of result.assets) { - if (asset.uri) setFileForm(prev => [...prev, asset]) + if (!asset.uri) continue + const isDup = fileForm.some(f => f.name === asset.name) || + visibleOldFiles.some(f => `${f.name}.${f.extension}` === asset.name) + if (isDup) { + skipped++ + } else { + setFileForm(prev => [...prev, asset]) + } } + if (skipped > 0) Toast.show({ type: 'small', text1: 'Beberapa file sudah ditambahkan' }) } };