From 6f3514c80cc0daa03b68b7ab0395012d1a9e757a Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Thu, 15 Jan 2026 17:33:05 +0800 Subject: [PATCH] upd: diskusi umum deskripsi : - integrasi api tambah data diskusi umum - integrasi api detail data diskusi umum file No Issues --- app/(application)/discussion/[id].tsx | 14 +++++++++- app/(application)/discussion/create.tsx | 23 +++++++++++++--- components/borderBottomItem2.tsx | 35 +++++++++++-------------- lib/api.ts | 14 ++++++++-- 4 files changed, 60 insertions(+), 26 deletions(-) diff --git a/app/(application)/discussion/[id].tsx b/app/(application)/discussion/[id].tsx index 6b4d3ea..7cb729e 100644 --- a/app/(application)/discussion/[id].tsx +++ b/app/(application)/discussion/[id].tsx @@ -47,6 +47,13 @@ type PropsKomentar = { updatedAt: string } +type PropsFile = { + id: string; + idStorage: string; + name: string; + extension: string +} + export default function DetailDiscussionGeneral() { const { token, decryptToken } = useAuthSession() const entityUser = useSelector((state: any) => state.user) @@ -55,6 +62,7 @@ export default function DetailDiscussionGeneral() { const [data, setData] = useState() const [dataKomentar, setDataKomentar] = useState([]) const [memberDiscussion, setMemberDiscussion] = useState(false) + const [fileDiscussion, setFileDiscussion] = useState([]) const [komentar, setKomentar] = useState('') const update = useSelector((state: any) => state.discussionGeneralDetailUpdate) const [loading, setLoading] = useState(true) @@ -93,7 +101,7 @@ export default function DetailDiscussionGeneral() { } - async function handleLoad(cat: 'detail' | 'komentar' | 'cek-anggota', loading: boolean) { + async function handleLoad(cat: 'detail' | 'komentar' | 'cek-anggota' | 'file', loading: boolean) { try { if (cat == "detail") { setLoading(loading) @@ -110,6 +118,8 @@ export default function DetailDiscussionGeneral() { setDataKomentar(response.data) } else if (cat == 'cek-anggota') { setMemberDiscussion(response.data) + } else if (cat == 'file') { + setFileDiscussion(response.data) } } catch (error) { @@ -130,6 +140,7 @@ export default function DetailDiscussionGeneral() { handleLoad('detail', true) handleLoad('komentar', true) handleLoad('cek-anggota', true) + handleLoad('file', true) }, []); async function handleKomentar() { @@ -216,6 +227,7 @@ export default function DetailDiscussionGeneral() { : {desc && {desc}} - - - - Text petama.pdf - - - - Text petama.pdf - - - - Text petama.pdf - - - - Text petama.pdf - - + { + dataFile.length > 0 && ( + + {dataFile.map((item, index) => ( + + + {item.name}.{item.extension} + + ))} + + ) + } { (leftBottomInfo || rightBottomInfo) && ( diff --git a/lib/api.ts b/lib/api.ts index 1375ff7..a535776 100644 --- a/lib/api.ts +++ b/lib/api.ts @@ -235,8 +235,18 @@ export const apiEditDiscussionGeneral = async (data: { user: string, title: stri return response.data; }; -export const apiCreateDiscussionGeneral = async ({ data }: { data: { idGroup: string, title: string, desc: string, user: string, member: [] } }) => { - const response = await api.post(`/mobile/discussion-general`, data) +// export const apiCreateDiscussionGeneral = async ({ data }: { data: { idGroup: string, title: string, desc: string, user: string, member: [] } }) => { +// const response = await api.post(`/mobile/discussion-general`, data) +// return response.data; +// }; + +export const apiCreateDiscussionGeneral = async (data: FormData) => { + // const response = await api.post(`/mobile/discussion-general`, data) + const response = await api.post(`/mobile/discussion-general`, data, { + headers: { + 'Content-Type': 'multipart/form-data', + }, + }) return response.data; };