feat(toolbar): add column visibility and CSV export features
- Implemented GridToolbar component for column visibility and CSV export - Added ColumnVisibilityMenu for toggling column visibility - Created exportToCsv function for exporting visible data to CSV - Updated Griddy component to integrate toolbar functionality - Enhanced documentation with examples for new features
This commit is contained in:
@@ -20,6 +20,7 @@ import type { GriddyProps, GriddyRef } from './types'
|
||||
import { useKeyboardNavigation } from '../features/keyboard/useKeyboardNavigation'
|
||||
import { PaginationControl } from '../features/pagination'
|
||||
import { SearchOverlay } from '../features/search/SearchOverlay'
|
||||
import { GridToolbar } from '../features/toolbar'
|
||||
import { useGridVirtualizer } from '../rendering/hooks/useGridVirtualizer'
|
||||
import { TableHeader } from '../rendering/TableHeader'
|
||||
import { VirtualBody } from '../rendering/VirtualBody'
|
||||
@@ -61,6 +62,8 @@ function GriddyInner<T>({ tableRef }: { tableRef: Ref<GriddyRef<T>> }) {
|
||||
const height = useGriddyStore((s) => s.height)
|
||||
const keyboardNavigation = useGriddyStore((s) => s.keyboardNavigation)
|
||||
const className = useGriddyStore((s) => s.className)
|
||||
const showToolbar = useGriddyStore((s) => s.showToolbar)
|
||||
const exportFilename = useGriddyStore((s) => s.exportFilename)
|
||||
const manualSorting = useGriddyStore((s) => s.manualSorting)
|
||||
const manualFiltering = useGriddyStore((s) => s.manualFiltering)
|
||||
const dataCount = useGriddyStore((s) => s.dataCount)
|
||||
@@ -253,6 +256,12 @@ function GriddyInner<T>({ tableRef }: { tableRef: Ref<GriddyRef<T>> }) {
|
||||
role="grid"
|
||||
>
|
||||
{search?.enabled && <SearchOverlay />}
|
||||
{showToolbar && (
|
||||
<GridToolbar
|
||||
exportFilename={exportFilename}
|
||||
table={table}
|
||||
/>
|
||||
)}
|
||||
<div
|
||||
className={styles[CSS.container]}
|
||||
ref={scrollRef}
|
||||
|
||||
Reference in New Issue
Block a user