diff --git a/apps/nextjs/src/components/board/items/item-menu.tsx b/apps/nextjs/src/components/board/items/item-menu.tsx index a7d870a28..efeba756c 100644 --- a/apps/nextjs/src/components/board/items/item-menu.tsx +++ b/apps/nextjs/src/components/board/items/item-menu.tsx @@ -12,7 +12,7 @@ import { widgetImports } from "@homarr/widgets"; import { WidgetEditModal } from "@homarr/widgets/modals"; import type { SectionItem } from "~/app/[locale]/boards/_types"; -import { useSectionContext } from "../sections/section-context"; +import { useOptionalSectionContext } from "../sections/section-context"; import { useItemActions } from "./item-actions"; import { ItemMoveModal } from "./item-move-modal"; @@ -41,7 +41,8 @@ const BoardItemMenuInner = ({ offset, item, resetErrorBoundary }: BoardItemMenuP useItemActions(); const { data: integrationData, isPending } = clientApi.integration.all.useQuery(); const currentDefinition = useMemo(() => widgetImports[item.kind].definition, [item.kind]); - const { gridstack } = useSectionContext().refs; + const sectionContext = useOptionalSectionContext(); + const gridstack = sectionContext?.refs.gridstack; const settings = useSettings(); // Reset error boundary on next render if item has been edited @@ -119,7 +120,7 @@ const BoardItemMenuInner = ({ offset, item, resetErrorBoundary }: BoardItemMenuP } onClick={() => { - if (!gridstack.current) return; + if (!gridstack?.current) return; openMoveModal({ item, columnCount: gridstack.current.getColumn(), gridStack: gridstack.current }); }} > diff --git a/apps/nextjs/src/components/board/sections/section-context.ts b/apps/nextjs/src/components/board/sections/section-context.ts index c01d05d7c..9b4bc66bc 100644 --- a/apps/nextjs/src/components/board/sections/section-context.ts +++ b/apps/nextjs/src/components/board/sections/section-context.ts @@ -20,4 +20,8 @@ export const useSectionContext = () => { return context; }; +export const useOptionalSectionContext = () => { + return useContext(SectionContext); +}; + export const SectionProvider = SectionContext.Provider;