diff --git a/apps/nextjs/src/components/board/items/actions/test/mocks/dynamic-section-mock.ts b/apps/nextjs/src/components/board/items/actions/test/mocks/dynamic-section-mock.ts index 7de8db63c..553deda9e 100644 --- a/apps/nextjs/src/components/board/items/actions/test/mocks/dynamic-section-mock.ts +++ b/apps/nextjs/src/components/board/items/actions/test/mocks/dynamic-section-mock.ts @@ -10,6 +10,7 @@ export class DynamicSectionMockBuilder { id: createId(), kind: "dynamic", options: { + title: "", borderColor: "", }, layouts: [], diff --git a/apps/nextjs/src/components/board/sections/dynamic-section.tsx b/apps/nextjs/src/components/board/sections/dynamic-section.tsx index 90525715a..3b5493366 100644 --- a/apps/nextjs/src/components/board/sections/dynamic-section.tsx +++ b/apps/nextjs/src/components/board/sections/dynamic-section.tsx @@ -1,4 +1,4 @@ -import { Box, Card } from "@mantine/core"; +import { Badge, Box, Card } from "@mantine/core"; import { useCurrentLayout, useRequiredBoard } from "@homarr/boards/context"; @@ -17,7 +17,12 @@ export const BoardDynamicSection = ({ section }: Props) => { const options = section.options; return ( - + { withBorder styles={{ root: { + overflow: "visible", "--opacity": board.opacity / 100, - overflow: "hidden", - "--border-color": options.borderColor !== "" ? options.borderColor : undefined, + "--border-color": options.borderColor || undefined, }, }} radius={board.itemRadius} p={0} > + {options.title && ( + + {options.title} + + )} {/* Use unique key by layout to reinitialize gridstack */} diff --git a/apps/nextjs/src/components/board/sections/dynamic/actions/add-dynamic-section.ts b/apps/nextjs/src/components/board/sections/dynamic/actions/add-dynamic-section.ts index 415d80572..c33507a73 100644 --- a/apps/nextjs/src/components/board/sections/dynamic/actions/add-dynamic-section.ts +++ b/apps/nextjs/src/components/board/sections/dynamic/actions/add-dynamic-section.ts @@ -17,6 +17,7 @@ export const addDynamicSectionCallback = () => (board: Board) => { id: createId(), kind: "dynamic", options: { + title: "", borderColor: "", }, layouts: createDynamicSectionLayouts(board, firstSection), diff --git a/apps/nextjs/src/components/board/sections/dynamic/dynamic-edit-modal.tsx b/apps/nextjs/src/components/board/sections/dynamic/dynamic-edit-modal.tsx index 001af145a..85ffc7e79 100644 --- a/apps/nextjs/src/components/board/sections/dynamic/dynamic-edit-modal.tsx +++ b/apps/nextjs/src/components/board/sections/dynamic/dynamic-edit-modal.tsx @@ -1,6 +1,6 @@ "use client"; -import { Button, CloseButton, ColorInput, Group, Stack, useMantineTheme } from "@mantine/core"; +import { Button, CloseButton, ColorInput, Group, Stack, TextInput, useMantineTheme } from "@mantine/core"; import type { z } from "zod"; import { useZodForm } from "@homarr/form"; @@ -30,6 +30,7 @@ export const DynamicSectionEditModal = createModal(({ actions, inner })} > +