* chore: add parent_section_id and change position to x and y_offset for sqlite section table * chore: rename existing positions to x_offset and y_offset * chore: add related mysql migration * chore: add missing height and width to section table * fix: missing width and height in migration copy script * fix: typecheck issues * fix: test not working caused by unsimilar schemas * wip: add dynamic section * refactor: improve structure of gridstack sections * feat: add rendering of dynamic sections * feat: add saving of moved sections * wip: add static row count, restrict min-width and height * chore: address pull request feedback * fix: format issues * fix: size calculation within dynamic sections * fix: on resize not called when min width or height is reached * fix: size of items while dragging is to big * chore: temporarly remove migration files * chore: readd migrations * fix: format and deepsource issues * chore: remove db_dev.sqlite file * chore: add *.sqlite to .gitignore * chore: address pull request feedback * feat: add dynamic section actions for adding and removing them
23 lines
680 B
TypeScript
23 lines
680 B
TypeScript
import { createContext, useContext } from "react";
|
|
|
|
import type { Section } from "~/app/[locale]/boards/_types";
|
|
import type { UseGridstackRefs } from "./gridstack/use-gridstack";
|
|
|
|
interface SectionContextProps {
|
|
section: Section;
|
|
innerSections: Exclude<Section, { kind: "category" } | { kind: "empty" }>[];
|
|
refs: UseGridstackRefs;
|
|
}
|
|
|
|
const SectionContext = createContext<SectionContextProps | null>(null);
|
|
|
|
export const useSectionContext = () => {
|
|
const context = useContext(SectionContext);
|
|
if (!context) {
|
|
throw new Error("useSectionContext must be used within a SectionContext");
|
|
}
|
|
return context;
|
|
};
|
|
|
|
export const SectionProvider = SectionContext.Provider;
|