feat: improve header responsiveness and update seed initialization

- Add text truncation for title on mobile screens
- Hide user info section on mobile, show simplified icons only
- Update seed.ts to create admin and demo users with proper password hashing
- Add bcryptjs for password hashing in seed script
- Update QWEN.md documentation with seed command and default users

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-02-19 10:14:21 +08:00
parent 6c3e7c86b6
commit 5801eb4596
39 changed files with 3335 additions and 1834 deletions

View File

@@ -1,58 +1,86 @@
import { Card, Title, Text, Space, TextInput, Select, Button, Group, Switch, Alert, useMantineColorScheme } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react';
import {
Alert,
Button,
Card,
Group,
Select,
Space,
Switch,
Text,
TextInput,
Title,
useMantineColorScheme,
} from "@mantine/core";
import { IconInfoCircle } from "@tabler/icons-react";
const UmumSettings = () => {
const { colorScheme } = useMantineColorScheme();
const dark = colorScheme === 'dark';
return (
<Card withBorder radius="md" p="xl" bg={dark ? "#141D34" : "white"} style={{ borderColor: dark ? "#141D34" : "white" }}>
<Title order={2} mb="lg">Pengaturan Umum</Title>
<Text color="dimmed" mb="xl">Kelola pengaturan umum aplikasi Anda</Text>
const { colorScheme } = useMantineColorScheme();
const dark = colorScheme === "dark";
return (
<Card
withBorder
radius="md"
p="xl"
bg={dark ? "#141D34" : "white"}
style={{ borderColor: dark ? "#141D34" : "white" }}
>
<Title order={2} mb="lg">
Pengaturan Umum
</Title>
<Text color="dimmed" mb="xl">
Kelola pengaturan umum aplikasi Anda
</Text>
<Space h="lg" />
<Space h="lg" />
<TextInput
label="Nama Aplikasi"
placeholder="Masukkan nama aplikasi"
defaultValue="Dashboard Desa Plus"
mb="md"
/>
<TextInput
label="Nama Aplikasi"
placeholder="Masukkan nama aplikasi"
defaultValue="Dashboard Desa Plus"
mb="md"
/>
<Select
label="Bahasa Aplikasi"
data={[
{ value: 'id', label: 'Indonesia' },
{ value: 'en', label: 'English' },
]}
defaultValue="id"
mb="md"
/>
<Select
label="Bahasa Aplikasi"
data={[
{ value: "id", label: "Indonesia" },
{ value: "en", label: "English" },
]}
defaultValue="id"
mb="md"
/>
<Select
label="Zona Waktu"
data={[
{ value: 'Asia/Jakarta', label: 'Asia/Jakarta (GMT+7)' },
{ value: 'Asia/Makassar', label: 'Asia/Makassar (GMT+8)' },
{ value: 'Asia/Jayapura', label: 'Asia/Jayapura (GMT+9)' },
]}
defaultValue="Asia/Jakarta"
mb="md"
/>
<Select
label="Zona Waktu"
data={[
{ value: "Asia/Jakarta", label: "Asia/Jakarta (GMT+7)" },
{ value: "Asia/Makassar", label: "Asia/Makassar (GMT+8)" },
{ value: "Asia/Jayapura", label: "Asia/Jayapura (GMT+9)" },
]}
defaultValue="Asia/Jakarta"
mb="md"
/>
<Group mb="md">
<Switch label="Notifikasi Email" defaultChecked />
</Group>
<Group mb="md">
<Switch label="Notifikasi Email" defaultChecked />
</Group>
<Alert icon={<IconInfoCircle size={16} />} title="Informasi" color="blue" mb="md">
Beberapa pengaturan mungkin memerlukan restart aplikasi untuk diterapkan sepenuhnya.
</Alert>
<Alert
icon={<IconInfoCircle size={16} />}
title="Informasi"
color="blue"
mb="md"
>
Beberapa pengaturan mungkin memerlukan restart aplikasi untuk diterapkan
sepenuhnya.
</Alert>
<Group justify="flex-end" mt="xl">
<Button variant="outline">Batal</Button>
<Button>Simpan Perubahan</Button>
</Group>
</Card>
);
<Group justify="flex-end" mt="xl">
<Button variant="outline">Batal</Button>
<Button>Simpan Perubahan</Button>
</Group>
</Card>
);
};
export default UmumSettings;
export default UmumSettings;