diff --git a/app/(application)/admin/_layout.tsx b/app/(application)/admin/_layout.tsx index 208aa4a..fb5c959 100644 --- a/app/(application)/admin/_layout.tsx +++ b/app/(application)/admin/_layout.tsx @@ -66,9 +66,9 @@ export default function AdminLayout() { {/* ================== Job Start ================== */} - + {/* - + */} @@ -80,6 +80,16 @@ export default function AdminLayout() { {/* ================== Collaboration End ================== */} + + {/* ================== Forum Start ================== */} + + + + + + + + {/* ================== Forum End ================== */} (); + + const handlerAction = (item: { value: string; path: string }) => { + if (item.value === "delete") { + AlertDefaultSystem({ + title: "Hapus Posting", + message: "Apakah Anda yakin ingin menghapus posting ini?", + textLeft: "Batal", + textRight: "Hapus", + onPressRight: () => { + Toast.show({ + type: "success", + text1: "Posting berhasil dihapus", + }); + }, + }); + } else { + router.navigate(item.path as any); + } + setOpenDrawerAction(false); + }; + + return ( + <> + } + onPress={() => setOpenDrawerPage(true)} + /> + } + /> + } + > + + + {listDataAction.map((item, i) => ( + {item.label}} + value={{item.value}} + /> + ))} + Posting + + Lorem ipsum dolor sit amet consectetur adipisicing elit. + Asperiores cupiditate nobis dignissimos explicabo quo unde dolorum + numquam eos ab laborum fugiat illo nam velit quibusdam, maxime + assumenda aut vero provident! + + + + + {/* */} + + + + + {Array.from({ length: 10 }).map((_, index) => ( + + } + onPress={() => { + setOpenDrawerAction(true); + setId(index + 1); + }} + /> + } + value2={Username username} + value3={ + + Lorem ipsum dolor sit amet consectetur adipisicing elit. + Blanditiis asperiores quidem deleniti architecto eaque et + nostrum, ad consequuntur eveniet quisquam quae voluptatum + ducimus! Dolorem nobis modi officia debitis, beatae mollitia. + + } + /> + ))} + + + + setOpenDrawerPage(false)} + height={"auto"} + > + + ), + label: "Daftar Report Posting", + value: "detail", + path: `/admin/forum/${id}/list-report-posting`, + }, + ]} + onPressItem={(item) => { + router.navigate(item.path as any); + setOpenDrawerPage(false); + }} + /> + + + setOpenDrawerAction(false)} + height={"auto"} + > + , + label: "Detail Komentar", + value: "detail", + path: `admin/forum/${id}/list-report-comment`, + }, + { + icon: ( + + ), + label: "Hapus Komentar", + value: "delete", + path: "", + color: MainColor.red, + }, + ]} + onPressItem={(item) => { + handlerAction(item as any); + }} + /> + + + ); +} + +const listDataAction = [ + { + label: "Username", + value: "Username", + }, + { + label: "Status", + value: Open, + }, + { + label: "Komentar", + value: "10", + }, + { + label: "Total Report", + value: "1", + }, +]; diff --git a/app/(application)/admin/forum/[id]/list-report-comment.tsx b/app/(application)/admin/forum/[id]/list-report-comment.tsx new file mode 100644 index 0000000..2a6a99d --- /dev/null +++ b/app/(application)/admin/forum/[id]/list-report-comment.tsx @@ -0,0 +1,168 @@ +import { + ActionIcon, + AlertDefaultSystem, + BaseBox, + DrawerCustom, + MenuDrawerDynamicGrid, + Spacing, + StackCustom, + TextCustom, + ViewWrapper, +} from "@/components"; +import { IconDot, IconView } from "@/components/_Icon/IconComponent"; +import { IconTrash } from "@/components/_Icon/IconTrash"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle"; +import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue"; +import { GridDetail_4_8 } from "@/components/_ShareComponent/GridDetail_4_8"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import { router } from "expo-router"; +import { useState } from "react"; +import { Divider } from "react-native-paper"; +import Toast from "react-native-toast-message"; + +export default function AdminForumReportComment() { + const [openDrawer, setOpenDrawer] = useState(false); + const [openDrawerAction, setOpenDrawerAction] = useState(false); + + return ( + <> + } + onPress={() => setOpenDrawer(true)} + /> + } + /> + } + > + + + {listData.map((item, i) => ( + {item.label}} + value={{item.value}} + /> + ))} + Posting + + Lorem ipsum dolor sit amet consectetur adipisicing elit. + Asperiores cupiditate nobis dignissimos explicabo quo unde dolorum + numquam eos ab laborum fugiat illo nam velit quibusdam, maxime + assumenda aut vero provident! + + + + + + + + + + + {Array.from({ length: 5 }).map((_, index) => ( + } + onPress={() => { + setOpenDrawerAction(true); + }} + /> + } + value2={Username username} + value3={ + + SPAM + + } + /> + ))} + + + + setOpenDrawer(false)} + height={"auto"} + > + , + label: "Hapus Komentar", + value: "delete", + path: "", + color: MainColor.red, + }, + ]} + onPressItem={(item) => { + AlertDefaultSystem({ + title: "Hapus Komentar", + message: "Apakah Anda yakin ingin menghapus komentar ini?", + textLeft: "Batal", + textRight: "Hapus", + onPressRight: () => { + setOpenDrawer(false); + Toast.show({ + type: "success", + text1: "Komentar berhasil dihapus", + }); + router.back(); + }, + }); + }} + /> + + + setOpenDrawerAction(false)} + height={"auto"} + > + {listDataAction.map((item, i) => ( + {item.label}} + value={{item.value}} + /> + ))} + + + ); +} + +const listData = [ + { + label: "Username", + value: "Username", + }, +]; + +const listDataAction = [ + { + label: "Username", + value: "Riyusa", + }, + { + label: "Kategori Report", + value: "SPAM", + }, + { + label: "Deskripsi", + value: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Blanditiis asperiores quidem deleniti architecto eaque et nostrum, ad consequuntur eveniet quisquam quae voluptatum ducimus! Dolorem nobis modi officia debitis, beatae mollitia.", + }, +]; diff --git a/app/(application)/admin/forum/[id]/list-report-posting.tsx b/app/(application)/admin/forum/[id]/list-report-posting.tsx new file mode 100644 index 0000000..9fa2b05 --- /dev/null +++ b/app/(application)/admin/forum/[id]/list-report-posting.tsx @@ -0,0 +1,170 @@ +import { + ActionIcon, + AlertDefaultSystem, + BadgeCustom, + BaseBox, + DrawerCustom, + MenuDrawerDynamicGrid, + Spacing, + StackCustom, + TextCustom, + ViewWrapper, +} from "@/components"; +import { IconDot, IconView } from "@/components/_Icon/IconComponent"; +import { IconTrash } from "@/components/_Icon/IconTrash"; +import AdminBackButtonAntTitle from "@/components/_ShareComponent/Admin/BackButtonAntTitle"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle"; +import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue"; +import { GridDetail_4_8 } from "@/components/_ShareComponent/GridDetail_4_8"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import { router } from "expo-router"; +import { useState } from "react"; +import { Divider } from "react-native-paper"; +import Toast from "react-native-toast-message"; + +export default function AdminForumReportPosting() { + const [openDrawerPage, setOpenDrawerPage] = useState(false); + const [openDrawerAction, setOpenDrawerAction] = useState(false); + + return ( + <> + } + onPress={() => setOpenDrawerPage(true)} + /> + } + /> + } + > + + + {listData.map((item, i) => ( + {item.label}} + value={{item.value}} + /> + ))} + Posting + + Lorem ipsum dolor sit amet consectetur adipisicing elit. + Asperiores cupiditate nobis dignissimos explicabo quo unde dolorum + numquam eos ab laborum fugiat illo nam velit quibusdam, maxime + assumenda aut vero provident! + + + + + + + + + + {Array.from({ length: 5 }).map((_, index) => ( + } + onPress={() => setOpenDrawerAction(true)} + /> + } + value2={Username username} + value3={ + + SPAM + + } + /> + ))} + + + + setOpenDrawerPage(false)} + height={"auto"} + > + , + label: "Hapus Posting", + value: "delete", + path: "", + color: MainColor.red, + }, + ]} + onPressItem={(item) => { + AlertDefaultSystem({ + title: "Hapus Posting", + message: "Apakah Anda yakin ingin menghapus posting ini?", + textLeft: "Batal", + textRight: "Hapus", + onPressRight: () => { + setOpenDrawerPage(false); + Toast.show({ + type: "success", + text1: "Posting berhasil dihapus", + }); + router.back() + }, + }); + }} + /> + + + setOpenDrawerAction(false)} + height={"auto"} + > + {listDataAction.map((item, i) => ( + {item.label}} + value={{item.value}} + /> + ))} + + + ); +} + +const listData = [ + { + label: "Username", + value: "Username", + }, + { + label: "Status", + value: Open, + }, +]; + +const listDataAction = [ + { + label: "Username", + value: "Firman Nusantara", + }, + { + label: "Kategori Report", + value: "SPAM", + }, + { + label: "Deskripsi", + value: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Blanditiis asperiores quidem deleniti architecto eaque et nostrum, ad consequuntur eveniet quisquam quae voluptatum ducimus! Dolorem nobis modi officia debitis, beatae mollitia.", + }, +]; diff --git a/app/(application)/admin/forum/index.tsx b/app/(application)/admin/forum/index.tsx new file mode 100644 index 0000000..c80e0c6 --- /dev/null +++ b/app/(application)/admin/forum/index.tsx @@ -0,0 +1,42 @@ +import { Spacing, StackCustom, ViewWrapper } from "@/components"; +import { + IconPublish, + IconReport, +} from "@/components/_Icon/IconComponent"; +import AdminComp_BoxDashboard from "@/components/_ShareComponent/Admin/BoxDashboard"; +import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage"; +import { MainColor } from "@/constants/color-palet"; + +export default function AdminForum() { + return ( + <> + + + + + {listData.map((item, i) => ( + + ))} + + + + ); +} + +const listData = [ + { + label: "Posting", + value: 4, + icon: , + }, + { + label: "Report Posting", + value: 7, + icon: , + }, + { + label: "Report Comment", + value: 5, + icon: , + }, +]; diff --git a/app/(application)/admin/forum/posting.tsx b/app/(application)/admin/forum/posting.tsx new file mode 100644 index 0000000..b928f1e --- /dev/null +++ b/app/(application)/admin/forum/posting.tsx @@ -0,0 +1,61 @@ +import { + ActionIcon, + BaseBox, + SearchInput, + Spacing, + TextCustom, + ViewWrapper, +} from "@/components"; +import { IconView } from "@/components/_Icon/IconComponent"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle"; +import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue"; +import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import { router } from "expo-router"; +import React from "react"; +import { Divider } from "react-native-paper"; + +export default function AdminForumPosting() { + const rightComponent = ( + + ); + + return ( + <> + }> + + + + + + {Array.from({ length: 10 }).map((_, index) => ( + } + onPress={() => { + router.push(`/admin/forum/${index + 1}`); + }} + /> + } + value2={Username username} + value3={ + + Lorem ipsum dolor sit amet consectetur adipisicing elit. + Blanditiis asperiores quidem deleniti architecto eaque et + nostrum, ad consequuntur eveniet quisquam quae voluptatum + ducimus! Dolorem nobis modi officia debitis, beatae mollitia. + + } + /> + ))} + + + + ); +} diff --git a/app/(application)/admin/forum/report-comment.tsx b/app/(application)/admin/forum/report-comment.tsx new file mode 100644 index 0000000..0b6a18a --- /dev/null +++ b/app/(application)/admin/forum/report-comment.tsx @@ -0,0 +1,65 @@ +import { + ActionIcon, + BaseBox, + Divider, + SearchInput, + Spacing, + TextCustom, + ViewWrapper, +} from "@/components"; +import { IconView } from "@/components/_Icon/IconComponent"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle"; +import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue"; +import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import { router } from "expo-router"; + +export default function AdminForumReportComment() { + + const rightComponent = ( + + ); + + return ( + <> + }> + + + + + + + {Array.from({ length: 10 }).map((_, index) => ( + + } + onPress={() => { + router.push(`/admin/forum/${index + 1}/list-report-comment`); + }} + /> + } + value2={Username username} + value3={ + + SPAM + + } + /> + ))} + + + + ); +} diff --git a/app/(application)/admin/forum/report-posting.tsx b/app/(application)/admin/forum/report-posting.tsx new file mode 100644 index 0000000..1e36326 --- /dev/null +++ b/app/(application)/admin/forum/report-posting.tsx @@ -0,0 +1,73 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import { + ActionIcon, + BaseBox, + Divider, + SearchInput, + Spacing, + TextCustom, + ViewWrapper, +} from "@/components"; +import { IconView } from "@/components/_Icon/IconComponent"; +import AdminComp_BoxTitle from "@/components/_ShareComponent/Admin/BoxTitlePage"; +import AdminTitleTable from "@/components/_ShareComponent/Admin/TableTitle"; +import AdminTableValue from "@/components/_ShareComponent/Admin/TableValue"; +import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage"; +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_BUTTON } from "@/constants/constans-value"; +import { router } from "expo-router"; +import { useState } from "react"; + +export default function AdminForumReportPosting() { + const [openDrawer, setOpenDrawer] = useState(false); + const [id, setId] = useState(); + + const rightComponent = ( + + ); + + return ( + <> + }> + + + + + + + {Array.from({ length: 10 }).map((_, index) => ( + + } + onPress={() => { + router.push(`/admin/forum/${id}/list-report-posting`); + }} + /> + } + value2={Username username} + value3={ + + Lorem, ipsum dolor sit amet consectetur adipisicing elit. + Omnis laborum doloremque eius velit voluptate corrupti vel, + provident quaerat tempore animi sed accusamus amet. + Temporibus, praesentium? Rem voluptatum nesciunt voluptas + repellat. + + } + /> + ))} + + + + ); +} diff --git a/app/(application)/admin/job/index.tsx b/app/(application)/admin/job/index.tsx index 00d4d44..e58c36a 100644 --- a/app/(application)/admin/job/index.tsx +++ b/app/(application)/admin/job/index.tsx @@ -1,8 +1,12 @@ import { Spacing, StackCustom, ViewWrapper } from "@/components"; +import { + IconPublish, + IconReject, + IconReview, +} from "@/components/_Icon/IconComponent"; import AdminComp_BoxDashboard from "@/components/_ShareComponent/Admin/BoxDashboard"; import AdminTitlePage from "@/components/_ShareComponent/Admin/TitlePage"; import { MainColor } from "@/constants/color-palet"; -import { Entypo, FontAwesome, FontAwesome6 } from "@expo/vector-icons"; export default function AdminJob() { return ( @@ -24,22 +28,16 @@ const listData = [ { label: "Publish", value: 4, - icon: , + icon: , }, { label: "Review", value: 7, - icon: ( - - ), + icon: , }, { label: "Reject", value: 5, - icon: , + icon: , }, ]; diff --git a/app/(application)/admin/job/publish.tsx b/app/(application)/admin/job/publish.tsx deleted file mode 100644 index 49e013a..0000000 --- a/app/(application)/admin/job/publish.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { TextCustom, ViewWrapper } from "@/components"; - -export default function AdminJobPublish() { - return ( - <> - - Admin Job Publish - - - ); -} diff --git a/app/(application)/admin/job/reject.tsx b/app/(application)/admin/job/reject.tsx deleted file mode 100644 index c48b32b..0000000 --- a/app/(application)/admin/job/reject.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { TextCustom, ViewWrapper } from "@/components"; - -export default function AdminJobReject() { - return ( - <> - - Admin Job Reject - - - ); -} diff --git a/app/(application)/admin/job/review.tsx b/app/(application)/admin/job/review.tsx deleted file mode 100644 index 31d5858..0000000 --- a/app/(application)/admin/job/review.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { TextCustom, ViewWrapper } from "@/components"; - -export default function AdminJobReview() { - return ( - <> - - Admin Job Review - - - ); -} diff --git a/app/_layout.tsx b/app/_layout.tsx index 14240ab..db994f2 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -2,6 +2,7 @@ import { MainColor } from "@/constants/color-palet"; import { Stack } from "expo-router"; import "react-native-gesture-handler"; import { SafeAreaProvider } from "react-native-safe-area-context"; +import Toast from "react-native-toast-message"; export default function RootLayout() { return ( @@ -30,6 +31,7 @@ export default function RootLayout() { + ); } diff --git a/bun.lock b/bun.lock index ab9bd15..5c0881c 100644 --- a/bun.lock +++ b/bun.lock @@ -45,6 +45,7 @@ "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", "react-native-screens": "~4.11.1", + "react-native-toast-message": "^2.3.3", "react-native-vector-icons": "^10.2.0", "react-native-web": "~0.20.0", "react-native-webview": "13.13.5", @@ -1413,6 +1414,8 @@ "react-native-screens": ["react-native-screens@4.11.1", "", { "dependencies": { "react-freeze": "^1.0.0", "react-native-is-edge-to-edge": "^1.1.7", "warn-once": "^0.1.0" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-F0zOzRVa3ptZfLpD0J8ROdo+y1fEPw+VBFq1MTY/iyDu08al7qFUO5hLMd+EYMda5VXGaTFCa8q7bOppUszhJw=="], + "react-native-toast-message": ["react-native-toast-message@2.3.3", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-4IIUHwUPvKHu4gjD0Vj2aGQzqPATiblL1ey8tOqsxOWRPGGu52iIbL8M/mCz4uyqecvPdIcMY38AfwRuUADfQQ=="], + "react-native-vector-icons": ["react-native-vector-icons@10.2.0", "", { "dependencies": { "prop-types": "^15.7.2", "yargs": "^16.1.1" }, "bin": { "fa-upgrade.sh": "bin/fa-upgrade.sh", "fa5-upgrade": "bin/fa5-upgrade.sh", "fa6-upgrade": "bin/fa6-upgrade.sh", "generate-icon": "bin/generate-icon.js" } }, "sha512-n5HGcxUuVaTf9QJPs/W22xQpC2Z9u0nb0KgLPnVltP8vdUvOp6+R26gF55kilP/fV4eL4vsAHUqUjewppJMBOQ=="], "react-native-web": ["react-native-web@0.20.0", "", { "dependencies": { "@babel/runtime": "^7.18.6", "@react-native/normalize-colors": "^0.74.1", "fbjs": "^3.0.4", "inline-style-prefixer": "^7.0.1", "memoize-one": "^6.0.0", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", "styleq": "^0.1.3" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-OOSgrw+aON6R3hRosCau/xVxdLzbjEcsLysYedka0ZON4ZZe6n9xgeN9ZkoejhARM36oTlUgHIQqxGutEJ9Wxg=="], diff --git a/components/Drawer/MenuDrawerDynamicGird.tsx b/components/Drawer/MenuDrawerDynamicGird.tsx index 5b4c8ac..a462959 100644 --- a/components/Drawer/MenuDrawerDynamicGird.tsx +++ b/components/Drawer/MenuDrawerDynamicGird.tsx @@ -8,7 +8,7 @@ type IMenuDrawerItemProps = { icon: React.ReactNode; label: string; value?: string; - path?: Href; + path?: Href | string; color?: string; } diff --git a/components/_Icon/IconComponent.tsx b/components/_Icon/IconComponent.tsx new file mode 100644 index 0000000..88fb5bf --- /dev/null +++ b/components/_Icon/IconComponent.tsx @@ -0,0 +1,111 @@ +import { MainColor } from "@/constants/color-palet"; +import { ICON_SIZE_MEDIUM } from "@/constants/constans-value"; +import { + Entypo, + FontAwesome, + FontAwesome6, + Ionicons, + Octicons, +} from "@expo/vector-icons"; + +export const IconPublish = ({ + size, + color, +}: { + size?: number; + color?: string; +}) => { + return ( + <> + + + ); +}; + +export const IconReview = ({ + size, + color, +}: { + size?: number; + color?: string; +}) => { + return ( + <> + + + ); +}; + +export const IconReject = ({ + size, + color, +}: { + size?: number; + color?: string; +}) => { + return ( + <> + + + ); +}; + +export const IconReport = ({ + size, + color, +}: { + size?: number; + color?: string; +}) => { + return ( + <> + + + ); +}; + +export const IconView = ({ + size, + color, +}: { + size?: number; + color?: string; +}) => { + return ( + <> + + + ); +}; + +export const IconDot = ({ size, color }: { size?: number; color?: string }) => { + return ( + <> + + + ); +}; diff --git a/components/_ShareComponent/Admin/BackButtonAntTitle.tsx b/components/_ShareComponent/Admin/BackButtonAntTitle.tsx index c0751de..55f456d 100644 --- a/components/_ShareComponent/Admin/BackButtonAntTitle.tsx +++ b/components/_ShareComponent/Admin/BackButtonAntTitle.tsx @@ -1,12 +1,13 @@ import Grid from "@/components/Grid/GridCustom"; import TextCustom from "@/components/Text/TextCustom"; -import { View } from "react-native"; import AdminBackButton from "./BackButton"; export default function AdminBackButtonAntTitle({ title, + rightComponent, }: { title: string; + rightComponent?: React.ReactNode; }) { return ( <> @@ -22,8 +23,8 @@ export default function AdminBackButtonAntTitle({ {title} - - + + {rightComponent} diff --git a/components/_ShareComponent/Admin/BoxTitlePage.tsx b/components/_ShareComponent/Admin/BoxTitlePage.tsx index fe7160c..b34b230 100644 --- a/components/_ShareComponent/Admin/BoxTitlePage.tsx +++ b/components/_ShareComponent/Admin/BoxTitlePage.tsx @@ -17,17 +17,8 @@ export default function AdminComp_BoxTitle({ paddingTop={5} paddingBottom={5} > - {/* - {title} - - {rightComponent} */} - - + - - {rightComponent} - + {rightComponent && ( + + {rightComponent} + + )} diff --git a/components/_ShareComponent/Admin/TitlePage.tsx b/components/_ShareComponent/Admin/TitlePage.tsx index 416e222..2cc0487 100644 --- a/components/_ShareComponent/Admin/TitlePage.tsx +++ b/components/_ShareComponent/Admin/TitlePage.tsx @@ -3,7 +3,7 @@ import TextCustom from "@/components/Text/TextCustom"; export default function AdminTitlePage({ title }: { title: string }) { return ( <> - + {title} diff --git a/components/_ShareComponent/GridDetail_4_8.tsx b/components/_ShareComponent/GridDetail_4_8.tsx new file mode 100644 index 0000000..2ce5b1e --- /dev/null +++ b/components/_ShareComponent/GridDetail_4_8.tsx @@ -0,0 +1,20 @@ +import { Grid } from "@/components"; + +export const GridDetail_4_8 = ({ + label, + value, +}: { + label: React.ReactNode; + value: React.ReactNode; +}) => { + return ( + + + {label} + + + {value} + + + ); +}; \ No newline at end of file diff --git a/package.json b/package.json index a56e141..c931ec0 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "react-native-reanimated": "~3.17.4", "react-native-safe-area-context": "5.4.0", "react-native-screens": "~4.11.1", + "react-native-toast-message": "^2.3.3", "react-native-vector-icons": "^10.2.0", "react-native-web": "~0.20.0", "react-native-webview": "13.13.5" diff --git a/screens/Admin/listPageAdmin.tsx b/screens/Admin/listPageAdmin.tsx index 9b03995..f53bc9f 100644 --- a/screens/Admin/listPageAdmin.tsx +++ b/screens/Admin/listPageAdmin.tsx @@ -67,9 +67,9 @@ const adminListMenu: NavbarItem[] = [ icon: "chatbubble-ellipses-outline", links: [ { label: "Dashboard", link: "/admin/forum" }, - { label: "Posting", link: "/admin/forum/publish" }, - { label: "Report Posting", link: "/admin/forum/review" }, - { label: "Report Comment", link: "/admin/forum/reject" }, + { label: "Posting", link: "/admin/forum/posting" }, + { label: "Report Posting", link: "/admin/forum/report-posting" }, + { label: "Report Comment", link: "/admin/forum/report-comment" }, ], }, { diff --git a/screens/Authentication/LoginView.tsx b/screens/Authentication/LoginView.tsx index 916c473..c654cb0 100644 --- a/screens/Authentication/LoginView.tsx +++ b/screens/Authentication/LoginView.tsx @@ -84,9 +84,9 @@ export default function LoginView() { - {/* router.navigate("/admin/job")}> + router.navigate("/admin/forum")}> Admin ( Delete Soon ) - */} + );