feat: add full page index component with pagination and actions

- Implemented FullPagePageIndex component with mock data for database clusters.
- Added pagination and bulk actions for managing database clusters.
- Created navigation context hooks for detail, edit, duplicate, and create actions.
- Introduced a new store for managing state in full-page and single-page modules.

feat: add navigation localization files

- Added English and Indonesian localization files for navigation menu items.
- Included translations for various modules including CRM, Sales, Supply Chain, and more.

feat: create system information shortcuts component

- Developed Shortcut component to display keyboard shortcuts with search functionality.
- Implemented System component to show placeholder information when system details are unavailable.
- Added localization for shortcuts and system information in English and Indonesian.

feat: implement global theme store

- Created a Zustand store for managing theme color scheme with localStorage persistence.

feat: add module page header component

- Developed ModulePageHeader component for consistent page header across modules.
- Included breadcrumb navigation, title, description, and action buttons.

feat: define default privileges for enterprise module

- Established default privileges for CRUD operations and other actions in the enterprise module.
This commit is contained in:
Firman Ramdhani
2026-07-10 22:58:55 +07:00
parent 430b231360
commit 2b8f9a9cbc
55 changed files with 2809 additions and 354 deletions
@@ -1,11 +1,33 @@
interface NotFoundProps {
showActionsBack?: boolean;
showActionsHome?: boolean;
onClickGoBack?(): void;
onClickBackToHome?(): void;
homeUrl?: string;
}
import { Title, Text, Button, Container, Stack, Group, Center } from '@mantine/core';
import { useNavigate } from 'react-router-dom';
export function NotFound({
showActionsBack = true,
showActionsHome = true,
onClickGoBack,
onClickBackToHome,
homeUrl,
}: NotFoundProps) {
const navigate = useNavigate();
function onBack() {
if (onClickGoBack) onClickGoBack();
else navigate(-1);
}
function onBackHome() {
if (onClickBackToHome) onClickBackToHome();
else if (homeUrl) navigate(homeUrl, { replace: true });
}
export function NotFound({ showActionsBack = true, showActionsHome = true }: NotFoundProps) {
return (
<Container size="sm" h="100vh" pos="relative">
<Center h="100%">
@@ -25,13 +47,13 @@ export function NotFound({ showActionsBack = true, showActionsHome = true }: Not
{(showActionsBack || showActionsHome) && (
<Group mt="xl" justify="center">
{showActionsBack && (
<Button variant="default" size="md" onClick={() => window.history.back()}>
<Button variant="default" size="md" onClick={onBack}>
Go Back
</Button>
)}
{showActionsHome && (
<Button component="a" href="/" color="brand" size="md">
<Button color="brand" size="md" onClick={onBackHome}>
Back to Home
</Button>
)}