feat(settings): unify manage and board settings into a single save form (#6541)
This commit is contained in:
1 parent
987c9ade18
commit
464d98e124
28 files changed
+1050
-994
No files matched your search
@@ -1,19 +1,21 @@
|
||||
"use client";
|
||||
|
||||
import { Fragment } from "react";
|
||||
import { Card, CardSection, Divider, Group, Stack, Text, Title } from "@mantine/core";
|
||||
|
||||
import { getI18n } from "@homarr/translation/server";
|
||||
import { useScopedI18n } from "@homarr/translation/client";
|
||||
|
||||
interface DangerZoneRootProps {
|
||||
children: React.ReactNode[] | React.ReactNode;
|
||||
}
|
||||
|
||||
export const DangerZoneRoot = async ({ children }: DangerZoneRootProps) => {
|
||||
const t = await getI18n();
|
||||
export const DangerZoneRoot = ({ children }: DangerZoneRootProps) => {
|
||||
const t = useScopedI18n("common");
|
||||
|
||||
return (
|
||||
<Stack gap="sm">
|
||||
<Title c="red.8" order={2}>
|
||||
{t("common.dangerZone")}
|
||||
{t("dangerZone")}
|
||||
</Title>
|
||||
<Card style={{ borderColor: "var(--mantine-color-red-8)", borderWidth: 3 }}>
|
||||
<Stack gap="sm">
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
import type { ReactNode } from "react";
|
||||
import { Card, Divider, Stack, Title } from "@mantine/core";
|
||||
|
||||
interface SectionCardProps {
|
||||
title: ReactNode;
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export const SectionCard = ({ title, children }: SectionCardProps) => {
|
||||
return (
|
||||
<Card withBorder bg="transparent">
|
||||
<Stack gap="md">
|
||||
<Title order={3}>{title}</Title>
|
||||
<Divider />
|
||||
{children}
|
||||
</Stack>
|
||||
</Card>
|
||||
);
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
"use client";
|
||||
|
||||
import type { ReactNode } from "react";
|
||||
import { Card, Group, Text } from "@mantine/core";
|
||||
|
||||
import { useI18n } from "@homarr/translation/client";
|
||||
|
||||
interface UnsavedChangesBarProps {
|
||||
children: ReactNode;
|
||||
}
|
||||
|
||||
export const UnsavedChangesBar = ({ children }: UnsavedChangesBarProps) => {
|
||||
const t = useI18n();
|
||||
|
||||
return (
|
||||
<div style={{ position: "sticky", bottom: 20 }}>
|
||||
<Card withBorder>
|
||||
<Group justify="space-between" wrap="wrap">
|
||||
<Text fw={500}>{t("common.unsavedChanges")}</Text>
|
||||
<Group>{children}</Group>
|
||||
</Group>
|
||||
</Card>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
Reference in new issue
Block a user