feat: add widget server loader (#16)

* wip: Add gridstack board

* wip: Centralize board pages, Add board settings page

* fix: remove cyclic dependency and rename widget-sort to kind

* improve: Add header actions as parallel route

* feat: add item select modal, add category edit modal,

* feat: add edit item modal

* feat: add remove item modal

* wip: add category actions

* feat: add saving of board, wip: add app widget

* Merge branch 'main' into add-board

* chore: update turbo dependencies

* chore: update mantine dependencies

* chore: fix typescript errors, lint and format

* feat: add confirm modal to category removal, move items of removed category to above wrapper

* feat: remove app widget to continue in another branch

* feat: add loading spinner until board is initialized

* fix: issue with cellheight of gridstack items

* feat: add translations for board

* fix: issue with translation for settings page

* feat: add widget server loader

* fix: typing issue

* chore: address pull request feedback

* fix: formatting
This commit is contained in:
Meier Lukas
2024-02-08 07:00:00 +01:00
committed by GitHub
parent cc52c2ba78
commit 975f9123dd
12 changed files with 286 additions and 47 deletions

View File

@@ -17,6 +17,7 @@ import {
import {
loadWidgetDynamic,
reduceWidgetOptionsWithDefaultValues,
useServerDataFor,
} from "@homarr/widgets";
import type { Item } from "~/app/[locale]/boards/_types";
@@ -62,13 +63,21 @@ interface ItemProps {
}
const BoardItem = ({ item }: ItemProps) => {
const serverData = useServerDataFor(item.id);
const Comp = loadWidgetDynamic(item.kind);
const options = reduceWidgetOptionsWithDefaultValues(item.kind, item.options);
const newItem = { ...item, options };
if (!serverData?.isReady) return null;
return (
<>
<ItemMenu offset={8} item={newItem} />
<Comp options={options as never} integrations={item.integrations} />
<Comp
options={options as never}
integrations={item.integrations}
serverData={serverData?.data as never}
/>
</>
);
};