Admin Forum

Add:
- admin/forum/

Admin Job
Fix: Delete page & fix delete
- admin/_layout.
- admin/job : publish, reject, review

### No Issue
This commit is contained in:
2025-08-11 10:47:20 +08:00
parent d0b64f8109
commit 8750660fc7
8 changed files with 133 additions and 47 deletions

View File

@@ -66,9 +66,9 @@ export default function AdminLayout() {
{/* ================== Job Start ================== */}
<Stack.Screen name="job/index" />
<Stack.Screen name="job/publish" />
{/* <Stack.Screen name="job/publish" />
<Stack.Screen name="job/review" />
<Stack.Screen name="job/reject" />
<Stack.Screen name="job/reject" /> */}
<Stack.Screen name="job/[status]/status" />
<Stack.Screen name="job/[id]/[status]/index" />
@@ -80,6 +80,10 @@ export default function AdminLayout() {
<Stack.Screen name="collaboration/[id]/[status]"/>
<Stack.Screen name="collaboration/[id]/group"/>
{/* ================== Collaboration End ================== */}
{/* ================== Forum Start ================== */}
<Stack.Screen name="forum/index" />
{/* ================== Forum End ================== */}
</Stack>
<DrawerAdmin

View File

@@ -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 (
<>
<ViewWrapper>
<AdminTitlePage title="Forum" />
<Spacing />
<StackCustom gap={"xs"}>
{listData.map((item, i) => (
<AdminComp_BoxDashboard key={i} item={item} />
))}
</StackCustom>
</ViewWrapper>
</>
);
}
const listData = [
{
label: "Posting",
value: 4,
icon: <IconPublish size={25} color={MainColor.green} />,
},
{
label: "Report Posting",
value: 7,
icon: <IconReport size={25} color={MainColor.orange} />,
},
{
label: "Report Comment",
value: 5,
icon: <IconReport size={25} color={MainColor.red} />,
},
];

View File

@@ -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: <Entypo name="publish" size={25} color={MainColor.green} />,
icon: <IconPublish size={25} color={MainColor.green} />,
},
{
label: "Review",
value: 7,
icon: (
<FontAwesome6
name="person-circle-check"
size={25}
color={MainColor.orange}
/>
),
icon: <IconReview size={25} color={MainColor.orange} />,
},
{
label: "Reject",
value: 5,
icon: <FontAwesome name="warning" size={25} color={MainColor.red} />,
icon: <IconReject size={25} color={MainColor.red} />,
},
];

View File

@@ -1,11 +0,0 @@
import { TextCustom, ViewWrapper } from "@/components";
export default function AdminJobPublish() {
return (
<>
<ViewWrapper>
<TextCustom>Admin Job Publish</TextCustom>
</ViewWrapper>
</>
);
}

View File

@@ -1,11 +0,0 @@
import { TextCustom, ViewWrapper } from "@/components";
export default function AdminJobReject() {
return (
<>
<ViewWrapper>
<TextCustom>Admin Job Reject</TextCustom>
</ViewWrapper>
</>
);
}

View File

@@ -1,11 +0,0 @@
import { TextCustom, ViewWrapper } from "@/components";
export default function AdminJobReview() {
return (
<>
<ViewWrapper>
<TextCustom>Admin Job Review</TextCustom>
</ViewWrapper>
</>
);
}

View File

@@ -0,0 +1,75 @@
import { MainColor } from "@/constants/color-palet";
import { ICON_SIZE_MEDIUM } from "@/constants/constans-value";
import { Entypo, FontAwesome, FontAwesome6, Octicons } from "@expo/vector-icons";
export const IconPublish = ({
size,
color,
}: {
size?: number;
color?: string;
}) => {
return (
<>
<Entypo
name="publish"
size={size || ICON_SIZE_MEDIUM}
color={color || MainColor.white}
/>
</>
);
};
export const IconReview = ({
size,
color,
}: {
size?: number;
color?: string;
}) => {
return (
<>
<FontAwesome6
name="person-circle-check"
size={size || ICON_SIZE_MEDIUM}
color={color || MainColor.white}
/>
</>
);
};
export const IconReject = ({
size,
color,
}: {
size?: number;
color?: string;
}) => {
return (
<>
<FontAwesome
name="warning"
size={size || ICON_SIZE_MEDIUM}
color={color || MainColor.white}
/>
</>
);
};
export const IconReport = ({
size,
color,
}: {
size?: number;
color?: string;
}) => {
return (
<>
<Octicons
name="report"
size={size || ICON_SIZE_MEDIUM}
color={color || MainColor.white}
/>
</>
);
};

View File

@@ -84,9 +84,9 @@ export default function LoginView() {
<Spacing />
{/* <ButtonCustom onPress={() => router.navigate("/admin/job")}>
<ButtonCustom onPress={() => router.navigate("/admin/forum")}>
Admin ( Delete Soon )
</ButtonCustom> */}
</ButtonCustom>
</View>
</ViewWrapper>
);