Add Layanan Polsek submenu polsek terdekat

Seeder menu keamanan -> menu ekonomi submenu : demografi pekerjaan, junlah pengangguran, lowongan kerja lokal, pasar desa, program kemiskinan, sektor unggulan, struktur organisasi
This commit is contained in:
2026-01-17 10:32:48 +08:00
parent 184854d273
commit 17b20e0d40
67 changed files with 3238 additions and 1079 deletions

View File

@@ -83,7 +83,9 @@ function Page() {
<Stack gap={'md'}>
<Box>
<Flex gap={{ base: 'md', md: 'xl' }} align={'center'}>
<IconBriefcase color={colors['blue-button']} size={40} />
<Box style={{ flexShrink: 0 }}>
<IconBriefcase color={colors['blue-button']} size={40} />
</Box>
<Box>
<Text fw={'bold'} fz={{ base: 'lg', md: 'h4' }} c={colors['blue-button']} lh={1.3}>
{v.posisi}
@@ -95,16 +97,29 @@ function Page() {
</Flex>
</Box>
<Box>
<Flex gap={{ base: 'md', md: 'xl' }} align={'center'}>
<IconMapPin color={colors['blue-button']} size={40} />
<Text fz={{ base: 'md', md: 'h4' }} lh={1.5}>
<Flex gap={{ base: 'md', md: 'xl' }} align="center">
<Box style={{ flexShrink: 0 }}>
<IconMapPin
color={colors['blue-button']}
size={40}
/>
</Box>
<Text
fz={{ base: 'md', md: 'h4' }}
lh={1.5}
lineClamp={1}
>
{v.lokasi}
</Text>
</Flex>
</Box>
<Box>
<Flex gap={{ base: 'md', md: 'xl' }} align={'center'}>
<IconClock color={colors['blue-button']} size={40} />
<Box style={{ flexShrink: 0 }}>
<IconClock color={colors['blue-button']} size={40} />
</Box>
<Box>
<Text fw={'bold'} fz={{ base: 'md', md: 'h4' }} c={colors['blue-button']} lh={1.3}>
Full Time

View File

@@ -1,16 +1,16 @@
'use client'
/* eslint-disable react-hooks/exhaustive-deps */
import polsekTerdekatState from '@/app/admin/(dashboard)/_state/keamanan/polsek-terdekat';
import statePolsekTerdekat from '@/app/admin/(dashboard)/_state/keamanan/polsek-terdekat';
import colors from '@/con/colors';
import { Badge, Box, Button, Center, Flex, Paper, SimpleGrid, Skeleton, Stack, Text, Title } from '@mantine/core';
import { IconArrowDown, IconClock, IconNavigation, IconPhone, IconPin } from '@tabler/icons-react';
import { useRouter } from 'next/navigation';
import { useEffect } from 'react';
import { useProxy } from 'valtio/utils';
import BackButton from '../../desa/layanan/_com/BackButto';
import { useRouter } from 'next/navigation';
function Page() {
const state = useProxy(polsekTerdekatState.findFirst);
const state = useProxy(statePolsekTerdekat.polsekTerdekatState.findFirst);
const router = useRouter();
const { data, loading, load } = state;

View File

@@ -1,17 +1,16 @@
'use client'
import polsekTerdekatState from '@/app/admin/(dashboard)/_state/keamanan/polsek-terdekat';
import statePolsekTerdekat from '@/app/admin/(dashboard)/_state/keamanan/polsek-terdekat';
import colors from '@/con/colors';
import { Box, Button, Center, Grid, GridCol, Pagination, Paper, SimpleGrid, Skeleton, Stack, Text, TextInput, Title } from '@mantine/core';
import { useShallowEffect } from '@mantine/hooks';
import { useDebouncedValue, useShallowEffect } from '@mantine/hooks';
import { IconNavigation, IconSearch } from '@tabler/icons-react';
import React, { useState } from 'react';
import { useRouter } from 'next/navigation';
import { useState } from 'react';
import { useProxy } from 'valtio/utils';
import BackButton from '../../../desa/layanan/_com/BackButto';
import { useRouter } from 'next/navigation';
import { useDebouncedValue } from '@mantine/hooks';
function Page() {
const state = useProxy(polsekTerdekatState);
const state = useProxy(statePolsekTerdekat.polsekTerdekatState);
const [search, setSearch] = useState('');
const [debouncedSearch] = useDebouncedValue(search, 1000);
const router = useRouter();