From cce27c26f658392dc59e3c859179ecf4c7752176 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Mon, 14 Jul 2025 17:37:43 +0800 Subject: [PATCH] feature & fix deskripsi: feature : - Forum : beranda, edit, detail, create # No Issue --- app/(application)/(user)/_layout.tsx | 14 ++ app/(application)/(user)/forum/[id]/edit.tsx | 37 ++++ .../(user)/forum/[id]/forumku.tsx | 8 +- app/(application)/(user)/forum/[id]/index.tsx | 160 ++++++++++++++++++ app/(application)/(user)/forum/index.tsx | 10 +- screens/Forum/CommentarBoxSection.tsx | 74 ++++++++ ...daSection.tsx => DiscussionBoxSection.tsx} | 41 +++-- screens/Forum/ListPage.tsx | 2 +- .../MenuDrawerSection.tsx/MenuCommentar.tsx | 0 screens/Forum/list-data-dummy.tsx | 54 +++++- 10 files changed, 379 insertions(+), 21 deletions(-) create mode 100644 app/(application)/(user)/forum/[id]/edit.tsx create mode 100644 app/(application)/(user)/forum/[id]/index.tsx create mode 100644 screens/Forum/CommentarBoxSection.tsx rename screens/Forum/{berandaSection.tsx => DiscussionBoxSection.tsx} (77%) create mode 100644 screens/Forum/MenuDrawerSection.tsx/MenuCommentar.tsx diff --git a/app/(application)/(user)/_layout.tsx b/app/(application)/(user)/_layout.tsx index a05e355..c3454e9 100644 --- a/app/(application)/(user)/_layout.tsx +++ b/app/(application)/(user)/_layout.tsx @@ -93,6 +93,13 @@ export default function UserLayout() { headerLeft: () => , }} /> + , + }} + /> , }} /> + , + }} + /> {/* ========== Maps Section ========= */} + { + console.log("Posting", text); + router.back(); + }} + > + Update + + + ); + + return ( + + + + ); +} diff --git a/app/(application)/(user)/forum/[id]/forumku.tsx b/app/(application)/(user)/forum/[id]/forumku.tsx index 1d95e49..83d080c 100644 --- a/app/(application)/(user)/forum/[id]/forumku.tsx +++ b/app/(application)/(user)/forum/[id]/forumku.tsx @@ -10,8 +10,8 @@ import { ViewWrapper, } from "@/components"; import { MainColor } from "@/constants/color-palet"; -import Forum_BerandaSection from "@/screens/Forum/BerandaSection"; -import { listDataDummyForum } from "@/screens/Forum/list-data-dummy"; +import Forum_BoxDetailSection from "@/screens/Forum/DiscussionBoxSection"; +import { listDataDummyCommentarForum } from "@/screens/Forum/list-data-dummy"; import Forum_MenuDrawerBerandaSection from "@/screens/Forum/MenuDrawerSection.tsx/MenuBeranda"; import { useLocalSearchParams } from "expo-router"; import { useState } from "react"; @@ -47,8 +47,8 @@ export default function Forumku() { - {listDataDummyForum.map((e, i) => ( - ( + + + {/* + */} + + + + { + console.log("Posting", text); + router.back(); + }} + > + Balas + + + + + {listDummyCommentarForum.map((e, i) => ( + + ))} + + + setOpenDrawer(false)} + > + { + setOpenDrawer(false); + }} + setShowDeleteAlert={setDeleteAlert} + setShowAlertStatus={setAlertStatus} + /> + + + {/* Alert Status */} + { + setOpenDrawer(false); + setAlertStatus(false); + console.log("Batal"); + }} + onRightPress={() => { + setOpenDrawer(false); + setAlertStatus(false); + console.log("Ubah status forum"); + }} + textLeft="Batal" + textRight="Ubah" + colorRight={MainColor.green} + /> + + {/* Alert Delete */} + { + setOpenDrawer(false); + setDeleteAlert(false); + console.log("Batal"); + }} + onRightPress={() => { + setOpenDrawer(false); + setDeleteAlert(false); + console.log("Hapus forum"); + }} + textLeft="Batal" + textRight="Hapus" + colorRight={MainColor.red} + /> + + {/* Commentar */} + setOpenDrawerCommentar(false)} + > + { + setOpenDrawerCommentar(false); + }} + setShowDeleteAlert={setDeleteAlert} + setShowAlertStatus={setAlertStatus} + /> + + + ); +} diff --git a/app/(application)/(user)/forum/index.tsx b/app/(application)/(user)/forum/index.tsx index f3a02f0..4191c9b 100644 --- a/app/(application)/(user)/forum/index.tsx +++ b/app/(application)/(user)/forum/index.tsx @@ -9,8 +9,8 @@ import { import FloatingButton from "@/components/Button/FloatingButton"; import { MainColor } from "@/constants/color-palet"; import { ICON_SIZE_SMALL } from "@/constants/constans-value"; -import Forum_BerandaSection from "@/screens/Forum/BerandaSection"; -import { listDataDummyForum } from "@/screens/Forum/list-data-dummy"; +import Forum_BoxDetailSection from "@/screens/Forum/DiscussionBoxSection"; +import { listDummyDiscussionForum } from "@/screens/Forum/list-data-dummy"; import Forum_MenuDrawerBerandaSection from "@/screens/Forum/MenuDrawerSection.tsx/MenuBeranda"; import { Ionicons } from "@expo/vector-icons"; import { router, Stack } from "expo-router"; @@ -56,12 +56,14 @@ export default function Forum() { /> } > - {listDataDummyForum.map((e, i) => ( - ( + ))} diff --git a/screens/Forum/CommentarBoxSection.tsx b/screens/Forum/CommentarBoxSection.tsx new file mode 100644 index 0000000..e7f8f15 --- /dev/null +++ b/screens/Forum/CommentarBoxSection.tsx @@ -0,0 +1,74 @@ +import { + BaseBox, + Grid, + AvatarCustom, + TextCustom, + ClickableCustom, + Spacing, +} from "@/components"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_SMALL } from "@/constants/constans-value"; +import { Entypo } from "@expo/vector-icons"; +import { View } from "react-native"; + +export default function Forum_CommentarBoxSection({ + data, + setOpenDrawer, + setStatus, +}: { + data: any; + setOpenDrawer: (value: boolean) => void; + setStatus: (value: string) => void; +}) { + return ( + <> + + + + + + + + {data.name} + + + + { + setOpenDrawer(true); + setStatus(data.status); + }} + style={{ + alignItems: "flex-end", + }} + > + + + + + + {data.deskripsi} + + + + {data.date} + + + + + ); +} diff --git a/screens/Forum/berandaSection.tsx b/screens/Forum/DiscussionBoxSection.tsx similarity index 77% rename from screens/Forum/berandaSection.tsx rename to screens/Forum/DiscussionBoxSection.tsx index 5fa2e0d..dd363cb 100644 --- a/screens/Forum/berandaSection.tsx +++ b/screens/Forum/DiscussionBoxSection.tsx @@ -9,17 +9,37 @@ import { import { MainColor } from "@/constants/color-palet"; import { ICON_SIZE_SMALL } from "@/constants/constans-value"; import { Entypo, Ionicons } from "@expo/vector-icons"; +import { Href, router } from "expo-router"; import { View } from "react-native"; -export default function Forum_BerandaSection({ +export default function Forum_BoxDetailSection({ data, + isTruncate, setOpenDrawer, setStatus, + href, }: { data: any; + isTruncate?: boolean; setOpenDrawer: (value: boolean) => void; setStatus: (value: string) => void; + href?: Href; }) { + const deskripsiView = ( + + {isTruncate ? ( + {data.deskripsi} + ) : ( + {data.deskripsi} + )} + + ); return ( <> @@ -66,16 +86,15 @@ export default function Forum_BerandaSection({ - - {data.deskripsi} - - + {href ? ( + router.push(href as any)}> + {deskripsiView} + + ) : ( + deskripsiView + )} + + diff --git a/screens/Forum/ListPage.tsx b/screens/Forum/ListPage.tsx index 964e1e2..8052660 100644 --- a/screens/Forum/ListPage.tsx +++ b/screens/Forum/ListPage.tsx @@ -16,7 +16,7 @@ const drawerItemsForumBeranda = ({ ), label: "Edit posting", - path: `/forumku/${id}`, + path: `/forum/${id}/edit`, }, { icon: diff --git a/screens/Forum/MenuDrawerSection.tsx/MenuCommentar.tsx b/screens/Forum/MenuDrawerSection.tsx/MenuCommentar.tsx new file mode 100644 index 0000000..e69de29 diff --git a/screens/Forum/list-data-dummy.tsx b/screens/Forum/list-data-dummy.tsx index 4a7aa62..b717164 100644 --- a/screens/Forum/list-data-dummy.tsx +++ b/screens/Forum/list-data-dummy.tsx @@ -1,4 +1,9 @@ -export const listDataDummyForum = [ +export { + listDummyDiscussionForum, + listDummyCommentarForum, +} + +const listDummyDiscussionForum = [ { name: "Bagas", status: "Open", @@ -50,3 +55,50 @@ export const listDataDummyForum = [ jumlahBalas: 2, }, ]; + + const listDummyCommentarForum = [ + { + name: "Bagas", + status: "Delete", + date: "14/07/2025", + deskripsi: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae inventore iure pariatur, libero omnis excepturi. Ullam ad officiis deleniti quos esse odit nesciunt, ipsam adipisci cumque aliquam corporis culpa fugit?", + }, + { + name: "Banuna", + status: "Report", + date: "14/07/2025", + deskripsi: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae inventore iure pariatur, libero omnis excepturi. Ullam ad officiis deleniti quos esse odit nesciunt, ipsam adipisci cumque aliquam corporis culpa fugit?", + }, + { + name: "Nusantara", + status: "Delete", + date: "14/07/2025", + deskripsi: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae inventore iure pariatur, libero omnis excepturi. Ullam ad officiis deleniti quos esse odit nesciunt, ipsam adipisci cumque aliquam corporis culpa fugit?", + }, + + { + name: "Nabillah", + status: "Report", + date: "14/07/2025", + deskripsi: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae inventore iure pariatur, libero omnis excepturi. Ullam ad officiis deleniti quos esse odit nesciunt, ipsam adipisci cumque aliquam corporis culpa fugit?", + }, + + { + name: "Riyusa", + status: "Report", + date: "14/07/2025", + deskripsi: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae inventore iure pariatur, libero omnis excepturi. Ullam ad officiis deleniti quos esse odit nesciunt, ipsam adipisci cumque aliquam corporis culpa fugit?", + }, + { + name: "Nita", + status: "Delete", + date: "14/07/2025", + deskripsi: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Vitae inventore iure pariatur, libero omnis excepturi. Ullam ad officiis deleniti quos esse odit nesciunt, ipsam adipisci cumque aliquam corporis culpa fugit?", + }, +];