QC Investasi

# fix
Tampilan admin investasi
Tampilan admin donasi
## No issuee
This commit is contained in:
2024-05-31 16:41:34 +08:00
parent c28cceb46f
commit 5b8cd3a4b6
175 changed files with 4785 additions and 2296 deletions

View File

@@ -3,6 +3,8 @@
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { Warna } from "@/app/lib/warna";
import {
ActionIcon,
Affix,
AspectRatio,
Avatar,
Badge,
@@ -21,22 +23,51 @@ import {
Stack,
Text,
Title,
rem,
} from "@mantine/core";
import { useViewportSize } from "@mantine/hooks";
import { useViewportSize, useWindowScroll } from "@mantine/hooks";
import { useRouter } from "next/navigation";
import { MODEL_DONASI } from "../model/interface";
import { useState } from "react";
import ComponentDonasi_BoxPublish from "../component/box_publish";
import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
import { IconPencilPlus } from "@tabler/icons-react";
export default function MainDonasi({
listDonasi,
}: {
listDonasi: MODEL_DONASI[];
}) {
const router = useRouter();
const [isLoading, setLoading] = useState(false);
const [scroll, scrollTo] = useWindowScroll();
return (
<>
<ComponentDonasi_BoxPublish dataDonasi={listDonasi} path={RouterDonasi.detail_main}/>
<Affix position={{ bottom: rem(150), right: rem(30) }}>
<ActionIcon
loading={isLoading ? true : false}
opacity={scroll.y > 0 ? 0.5 : ""}
style={{
transition: "0.5s",
}}
size={"xl"}
radius={"xl"}
variant="transparent"
bg={"orange"}
onClick={() => {
setLoading(true);
router.push(RouterDonasi.create_donasi);
}}
>
<IconPencilPlus color="white" />
</ActionIcon>
</Affix>
<ComponentDonasi_BoxPublish
dataDonasi={listDonasi}
path={RouterDonasi.detail_main}
/>
</>
);
}

View File

@@ -30,6 +30,7 @@ import moment from "moment";
import toast from "react-simple-toasts";
import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime";
import _ from "lodash";
import ComponentDonasi_IsEmptyData from "../component/is_empty_data";
export default function DonasiSayaDonasi({
listInvoice,
@@ -39,12 +40,10 @@ export default function DonasiSayaDonasi({
const [invoice, setInvoice] = useState(listInvoice);
const router = useRouter();
const { height, width } = useViewportSize();
if (_.isEmpty(invoice))
return (
<>
<Center h={"80vh"}>Belum Ada Donasi</Center>
</>
);
if (_.isEmpty(listInvoice))
return <ComponentDonasi_IsEmptyData text="Tidak ada data" />;
return (
<>
<SimpleGrid

View File

@@ -68,7 +68,7 @@ export default function GalangDanaDonasi({
return (
<>
<Affix position={{ bottom: rem(150), right: rem(20) }}>
{/* <Affix position={{ bottom: rem(150), right: rem(20) }}>
<Button
radius={"xl"}
bg={"orange"}
@@ -78,7 +78,7 @@ export default function GalangDanaDonasi({
>
Galang Dana
</Button>
</Affix>
</Affix> */}
<Stack>
<Tabs
color="orange"

View File

@@ -23,6 +23,8 @@ import { useRouter } from "next/navigation";
import toast from "react-simple-toasts";
import { MODEL_DONASI } from "../../model/interface";
import TampilanRupiahDonasi from "../../component/tampilan_rupiah";
import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
import _ from "lodash";
export default function PostingDraftDonasi({
listDraft,
@@ -31,6 +33,10 @@ export default function PostingDraftDonasi({
}) {
const { height, width } = useViewportSize();
const router = useRouter();
if (_.isEmpty(listDraft))
return <ComponentDonasi_IsEmptyData text="Tidak ada data" />;
return (
<>
<SimpleGrid
@@ -43,7 +49,10 @@ export default function PostingDraftDonasi({
]}
>
{listDraft.map((e, i) => (
<Box key={i} onClick={() => router.push(RouterDonasi.detail_draft + `${e.id}`)}>
<Box
key={i}
onClick={() => router.push(RouterDonasi.detail_draft + `${e.id}`)}
>
<Stack>
<Grid>
<Grid.Col span={7}>

View File

@@ -21,6 +21,8 @@ import { useRouter } from "next/navigation";
import toast from "react-simple-toasts";
import { MODEL_DONASI } from "../../model/interface";
import { useState } from "react";
import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
import _ from "lodash";
export default function PostingRejectDonasi({
listReject,
@@ -29,7 +31,11 @@ export default function PostingRejectDonasi({
}) {
const { height, width } = useViewportSize();
const router = useRouter();
const [donasi, setDonasi] = useState(listReject)
const [donasi, setDonasi] = useState(listReject);
if (_.isEmpty(listReject))
return <ComponentDonasi_IsEmptyData text="Tidak ada data" />;
return (
<>
<SimpleGrid
@@ -41,45 +47,44 @@ export default function PostingRejectDonasi({
{ maxWidth: "36rem", cols: 1, spacing: "sm" },
]}
>
{donasi
.map((e, i) => (
<Box
key={i}
onClick={() => router.push(RouterDonasi.detail_reject + `${e.id}`)}
>
<Stack>
<Grid>
<Grid.Col span={7}>
<AspectRatio ratio={16 / 9}>
<Paper radius={"md"}>
<Image
alt="Foto"
src={RouterDonasi.api_gambar + `${e.imagesId}`}
radius={"md"}
/>
</Paper>
</AspectRatio>
</Grid.Col>
<Grid.Col span={5}>
<Stack spacing={"xs"}>
<Text fz={"sm"} fw={"bold"} lineClamp={2}>
{e.title}
{donasi.map((e, i) => (
<Box
key={i}
onClick={() => router.push(RouterDonasi.detail_reject + `${e.id}`)}
>
<Stack>
<Grid>
<Grid.Col span={7}>
<AspectRatio ratio={16 / 9}>
<Paper radius={"md"}>
<Image
alt="Foto"
src={RouterDonasi.api_gambar + `${e.imagesId}`}
radius={"md"}
/>
</Paper>
</AspectRatio>
</Grid.Col>
<Grid.Col span={5}>
<Stack spacing={"xs"}>
<Text fz={"sm"} fw={"bold"} lineClamp={2}>
{e.title}
</Text>
<Stack spacing={0}>
<Text fz={"sm"} fw={"bold"}>
Alasan ditolak
</Text>
<Text fz={"sm"} lineClamp={2}>
{e.catatan}
</Text>
<Stack spacing={0}>
<Text fz={"sm"} fw={"bold"}>
Alasan ditolak
</Text>
<Text fz={"sm"} lineClamp={2}>
{e.catatan}
</Text>
</Stack>
</Stack>
</Grid.Col>
</Grid>
{width > 575 ? "" : <Divider />}
</Stack>
</Box>
))}
</Stack>
</Grid.Col>
</Grid>
{width > 575 ? "" : <Divider />}
</Stack>
</Box>
))}
</SimpleGrid>
</>
);

View File

@@ -22,6 +22,8 @@ import { useRouter } from "next/navigation";
import toast from "react-simple-toasts";
import { MODEL_DONASI } from "../../model/interface";
import _ from "lodash";
import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
export default function PostingReviewDonasi({
listReview,
@@ -30,6 +32,10 @@ export default function PostingReviewDonasi({
}) {
const { height, width } = useViewportSize();
const router = useRouter();
if (_.isEmpty(listReview))
return <ComponentDonasi_IsEmptyData text="Tidak ada data" />;
return (
<>
<SimpleGrid
@@ -42,7 +48,10 @@ export default function PostingReviewDonasi({
]}
>
{listReview.map((e, i) => (
<Box key={i} onClick={() => router.push(RouterDonasi.detail_review + `${e.id}`)}>
<Box
key={i}
onClick={() => router.push(RouterDonasi.detail_review + `${e.id}`)}
>
<Stack>
<Grid>
<Grid.Col span={7}>

View File

@@ -47,6 +47,9 @@ export default function LayoutDonasi({
}) {
const router = useRouter();
const [active, setActive] = useAtom(gs_donasi_hot_menu);
const [isLoading, setLoading] = useState(false);
const [isRightLoading, setRightLoading] = useState(false);
const listPage = [
{
id: 1,
@@ -74,16 +77,26 @@ export default function LayoutDonasi({
header={
<Header height={50} sx={{ borderStyle: "none" }}>
<Group h={50} position="apart" px={"md"}>
<ActionIcon onClick={() => router.push(RouterCrowd.main)}>
<ActionIcon
radius={"xl"}
variant="transparent"
loading={isLoading ? true : false}
onClick={() => {
setLoading(true);
router.push(RouterCrowd.main);
}}
>
<IconChevronLeft />
</ActionIcon>
<Title order={5}>Donasi</Title>
<ActionIcon
radius={"md"}
loading={isRightLoading ? true : false}
variant="transparent"
onClick={() =>
router.push(RouterDonasi.notif_page + `${userId}`)
}
onClick={() => {
setRightLoading(true);
router.push(RouterDonasi.notif_page + `${userId}`);
}}
>
{_.isEmpty(isRead) ? (
<IconBell />

View File

@@ -19,6 +19,8 @@ import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.share
import { Donasi_funUpdateNotifById } from "../../fun/update/fun_update_notif_by_user_id";
import { NotifGagal } from "../../component/notifikasi/notif_gagal";
import { useRouter } from "next/navigation";
import _ from "lodash";
import ComponentDonasi_IsEmptyData from "../../component/is_empty_data";
export default function Donasi_NotifPage({
dataNotif,
@@ -27,6 +29,11 @@ export default function Donasi_NotifPage({
}) {
const router = useRouter();
const [notif, setNotif] = useState(dataNotif);
if (_.isEmpty(dataNotif)) {
return <ComponentDonasi_IsEmptyData text="Tidak ada data" />;
}
return (
<>
<Box>