feat: add basic search dialog

This commit is contained in:
2024-01-23 13:07:24 +07:00
parent 67afeac198
commit cb71786ac1
19 changed files with 1579 additions and 29 deletions

View File

@@ -2,17 +2,21 @@ import { useStorage } from "@lume/storage";
import { IColumn } from "@lume/types";
import { COL_TYPES } from "@lume/utils";
import {
ReactNode,
type MutableRefObject,
type ReactNode,
createContext,
useCallback,
useContext,
useEffect,
useRef,
useState,
} from "react";
import { toast } from "sonner";
import { type VListHandle } from "virtua";
type ColumnContext = {
columns: IColumn[];
vlistRef: MutableRefObject<VListHandle>;
addColumn: (column: IColumn) => Promise<void>;
removeColumn: (id: number) => Promise<void>;
moveColumn: (id: number, position: "left" | "right") => void;
@@ -24,6 +28,8 @@ const ColumnContext = createContext<ColumnContext>(null);
export function ColumnProvider({ children }: { children: ReactNode }) {
const storage = useStorage();
const vlistRef = useRef<VListHandle>(null);
const [columns, setColumns] = useState<IColumn[]>([
{
id: 9999,
@@ -112,6 +118,7 @@ export function ColumnProvider({ children }: { children: ReactNode }) {
<ColumnContext.Provider
value={{
columns,
vlistRef,
addColumn,
removeColumn,
moveColumn,