Admin Forum

Add:
- admin/forum/report-posting
- admin/forum/report-comment
- admin/forum/posting
- admin/forum/[id]

Component
Fix:
- screens/Admin/listPageAdmin
- app/(application)/admin/_layout
- Admin/TitlePage
- Admin/BackButtonAntTitle
- Admin/BoxTitlePage

Package Install
Add:
- react-native-toast-message: untuk menampilkan toast

### No Issue
This commit is contained in:
2025-08-11 17:18:14 +08:00
parent 8750660fc7
commit 72f760c6a9
17 changed files with 830 additions and 28 deletions

View File

@@ -8,7 +8,7 @@ type IMenuDrawerItemProps = {
icon: React.ReactNode;
label: string;
value?: string;
path?: Href;
path?: Href | string;
color?: string;
}

View File

@@ -1,6 +1,12 @@
import { MainColor } from "@/constants/color-palet";
import { ICON_SIZE_MEDIUM } from "@/constants/constans-value";
import { Entypo, FontAwesome, FontAwesome6, Octicons } from "@expo/vector-icons";
import {
Entypo,
FontAwesome,
FontAwesome6,
Ionicons,
Octicons,
} from "@expo/vector-icons";
export const IconPublish = ({
size,
@@ -73,3 +79,33 @@ export const IconReport = ({
</>
);
};
export const IconView = ({
size,
color,
}: {
size?: number;
color?: string;
}) => {
return (
<>
<Octicons
name="eye"
size={size || ICON_SIZE_MEDIUM}
color={color || MainColor.white}
/>
</>
);
};
export const IconDot = ({ size, color }: { size?: number; color?: string }) => {
return (
<>
<Ionicons
name="ellipsis-vertical"
size={size || ICON_SIZE_MEDIUM}
color={color || MainColor.darkblue}
/>
</>
);
};

View File

@@ -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}
</TextCustom>
</Grid.Col>
<Grid.Col span={2}>
<View />
<Grid.Col span={2} style={{ alignItems: "flex-end" }}>
{rightComponent}
</Grid.Col>
</Grid>
</>

View File

@@ -17,17 +17,8 @@ export default function AdminComp_BoxTitle({
paddingTop={5}
paddingBottom={5}
>
{/* <TextCustom
// style={{ alignSelf: "center" }}
bold
size={TEXT_SIZE_LARGE}
>
{title}
</TextCustom>
{rightComponent} */}
<Grid>
<Grid.Col span={6} style={{ justifyContent: "center" }}>
<Grid.Col span={rightComponent ? 6 : 12} style={{ justifyContent: "center" }}>
<TextCustom
// style={{ alignSelf: "center" }}
bold
@@ -36,15 +27,17 @@ export default function AdminComp_BoxTitle({
{title}
</TextCustom>
</Grid.Col>
<Grid.Col
span={6}
style={{
justifyContent: "center",
alignItems: "flex-end",
}}
>
{rightComponent}
</Grid.Col>
{rightComponent && (
<Grid.Col
span={6}
style={{
justifyContent: "center",
alignItems: "flex-end",
}}
>
{rightComponent}
</Grid.Col>
)}
</Grid>
</BaseBox>
</>

View File

@@ -3,7 +3,7 @@ import TextCustom from "@/components/Text/TextCustom";
export default function AdminTitlePage({ title }: { title: string }) {
return (
<>
<TextCustom bold size={30}>
<TextCustom bold size={25}>
{title}
</TextCustom>
</>

View File

@@ -0,0 +1,20 @@
import { Grid } from "@/components";
export const GridDetail_4_8 = ({
label,
value,
}: {
label: React.ReactNode;
value: React.ReactNode;
}) => {
return (
<Grid>
<Grid.Col span={4} style={{ justifyContent: "center", paddingRight: 10 }}>
{label}
</Grid.Col>
<Grid.Col span={8} style={{ justifyContent: "center" }}>
{value}
</Grid.Col>
</Grid>
);
};