UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 2.27 kB
{"version":3,"file":"useColumnPinning.cjs","sources":["../../../../../src/lib/DataTable/tableFeatures/useColumnPinning.ts"],"sourcesContent":["import {useState, useEffect, useMemo} from 'react';\nimport type {ColumnPinningState} from '@tanstack/react-table';\n\nimport {ROW_SELECTION_ID} from './../columns/rowSelection.tsx';\n\nconst defaultColumnPinning = {};\n\nexport type Props = {\n columnPinningProp?: ColumnPinningState;\n hasSelectableColumn: boolean;\n};\n\nconst normalizeProp = (hasSelectableColumn: boolean, columnPinningProp?: ColumnPinningState) => {\n const nextRight = columnPinningProp?.right ? columnPinningProp?.right : [];\n const nextLeft = columnPinningProp?.left ? columnPinningProp?.left : [];\n return {\n right: nextRight,\n left: hasSelectableColumn ? [ROW_SELECTION_ID, ...nextLeft] : nextLeft,\n };\n};\n\nexport const useColumnPinning = ({\n columnPinningProp = defaultColumnPinning,\n hasSelectableColumn,\n}: Props) => {\n const normalizedPinningState = useMemo(\n () => normalizeProp(hasSelectableColumn, columnPinningProp),\n [columnPinningProp, hasSelectableColumn]\n );\n\n const [columnPinning, setColumnPinning] = useState<ColumnPinningState>(normalizedPinningState);\n\n useEffect(() => {\n setColumnPinning(normalizedPinningState);\n }, [normalizedPinningState]);\n\n return {columnPinning, setColumnPinning};\n};\n"],"names":["defaultColumnPinning","normalizeProp","hasSelectableColumn","columnPinningProp","nextRight","nextLeft","ROW_SELECTION_ID","useColumnPinning","normalizedPinningState","useMemo","columnPinning","setColumnPinning","useState","useEffect"],"mappings":"+JAKMA,EAAuB,CAAC,EAOxBC,EAAgB,CAACC,EAA8BC,IAA2C,CAC5F,MAAMC,EAAYD,GAAA,MAAAA,EAAmB,MAAQA,GAAA,YAAAA,EAAmB,MAAQ,CAAC,EACnEE,EAAWF,GAAA,MAAAA,EAAmB,KAAOA,GAAA,YAAAA,EAAmB,KAAO,CAAC,EAC/D,MAAA,CACH,MAAOC,EACP,KAAMF,EAAsB,CAACI,mBAAkB,GAAGD,CAAQ,EAAIA,CAClE,CACJ,EAEaE,EAAmB,CAAC,CAC7B,kBAAAJ,EAAoBH,EACpB,oBAAAE,CACJ,IAAa,CACT,MAAMM,EAAyBC,EAAA,QAC3B,IAAMR,EAAcC,EAAqBC,CAAiB,EAC1D,CAACA,EAAmBD,CAAmB,CAC3C,EAEM,CAACQ,EAAeC,CAAgB,EAAIC,EAAAA,SAA6BJ,CAAsB,EAE7FK,OAAAA,EAAAA,UAAU,IAAM,CACZF,EAAiBH,CAAsB,CAAA,EACxC,CAACA,CAAsB,CAAC,EAEpB,CAAC,cAAAE,EAAe,iBAAAC,CAAgB,CAC3C"}