Fix UI Admin Menu Landing Page & PPID

This commit is contained in:
2025-09-01 16:14:28 +08:00
parent 22ec8d942d
commit 7ae83788b4
74 changed files with 4312 additions and 2798 deletions

View File

@@ -0,0 +1,97 @@
'use client'
import profileLandingPageState from '@/app/admin/(dashboard)/_state/landing-page/profile';
import BackButton from '@/app/darmasaba/(pages)/desa/layanan/_com/BackButto';
import colors from '@/con/colors';
import { Badge, Box, Image, Paper, Skeleton, Stack, Text, Title } from '@mantine/core';
import { useShallowEffect } from '@mantine/hooks';
import { IconSparkles } from '@tabler/icons-react';
import { useParams } from 'next/navigation';
import { useProxy } from 'valtio/utils';
function Page() {
const params = useParams();
const id = params?.id as string;
const state = useProxy(profileLandingPageState.programInovasi);
const { data } = state.findUnique;
useShallowEffect(() => {
if (id) {
state.findUnique.load(id);
}
}, [id]);
if (!data) {
return (
<Box p="xl">
<Skeleton h={400} radius="lg" />
<Skeleton mt="md" h={30} radius="sm" />
<Skeleton mt="sm" h={20} w="80%" radius="sm" />
</Box>
);
}
return (
<Stack bg={colors.Bg} py="xl" gap="xl">
<Box px={{ base: 'md', md: 100 }}>
<BackButton />
</Box>
<Paper
shadow="sm"
radius="xl"
p={{ base: 'md', md: 'xl' }}
mx="auto"
w="100%"
maw={1000}
bg="white"
style={{ border: '1px solid var(--mantine-color-gray-2)' }}
>
<Stack align="center" gap="md">
<Badge
leftSection={<IconSparkles size={16} />}
variant="gradient"
gradient={{ from: 'blue', to: 'cyan' }}
size="lg"
radius="lg"
>
Program Inovasi
</Badge>
<Title
order={1}
fz={{ base: '2rem', md: '2.8rem' }}
fw={800}
ta="center"
style={{ lineHeight: 1.3 }}
>
{data?.name}
</Title>
{data.image && (
<Image
src={data.image?.link}
alt={data.name}
fit="contain"
mah={400}
maw="80%"
radius="lg"
style={{
boxShadow: '0 0 25px rgba(0, 190, 255, 0.25)',
}}
/>
)}
<Text
fz={{ base: 'md', md: 'lg' }}
c="dimmed"
mt="sm"
lh={1.7}
dangerouslySetInnerHTML={{ __html: data?.description || '-' }}
/>
</Stack>
</Paper>
</Stack>
);
}
export default Page;

View File

@@ -15,7 +15,7 @@ function ModuleItem({ data }: { data: ProgramInovasiItem }) {
<motion.div whileHover={{ scale: 1.04 }}>
<Tooltip label={`Lihat ${data.name}`} withArrow>
<Paper
onClick={() => router.push(`/${data.name}`)}
onClick={() => router.push(`/darmasaba/program-inovasi/${data.id}`)}
p="xl"
radius="2xl"
bg="white"