import * as React from "react"; import { BuilderThemeWrapper } from "../../stories/story-utils.js"; import GridScroller from "./scrolling-data-grid.js"; import { styled } from "@linaria/react"; import { CompactSelection, type GridCell, GridCellKind, type Rectangle, type Item, } from "../data-grid/data-grid-types.js"; import { getDefaultTheme } from "../../index.js"; import type { GetCellRendererCallback } from "../../cells/cell-types.js"; import { AllCellRenderers } from "../../cells/index.js"; import ImageWindowLoaderImpl from "../../common/image-window-loader.js"; import { mergeAndRealizeTheme } from "../../common/styles.js"; const InnerContainer = styled.div` width: 100%; height: 100px; > * { position: absolute; width: 100%; height: 100%; } `; const getCellRenderer: GetCellRendererCallback = cell => { if (cell.kind === GridCellKind.Custom) return undefined; return AllCellRenderers.find(x => x.kind === cell.kind) as any; }; export default { title: "Subcomponents/ScrollingDataGrid", decorators: [ (Story: React.ComponentType) => (
), ], }; export function Simplenotest() { const [x, setX] = React.useState(0); const [y, setY] = React.useState(0); const [translateX, setTx] = React.useState(0); const [translateY, setTy] = React.useState(0); const onVisibleRegionChanged = React.useCallback((range: Rectangle, tx?: number, ty?: number) => { setX(range.x); setY(range.y); setTx(tx); setTy(ty); }, []); const columns = React.useMemo(() => { let j = 0; return ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"].map(t => ({ title: t, width: 122 + (j += 50), })); }, []); const getCellContent = React.useCallback( ([col, row]: Item): GridCell => ({ kind: GridCellKind.Text, displayData: `${col},${row} Testing things that are way too long`, data: `${col},${row} Testing things that are way too long`, allowOverlay: true, }), [] ); return ( undefined} rows={10_000} enableGroups={false} clientSize={[1000, 1000, 0]} cellXOffset={x} cellYOffset={y} drawHeader={undefined} experimental={undefined} headerIcons={undefined} isDraggable={undefined} nonGrowWidth={1000} onCanvasBlur={() => undefined} onCanvasFocused={() => undefined} onCellFocused={() => undefined} onContextMenu={() => undefined} onDragEnd={() => undefined} onDragLeave={() => undefined} onDragOverCell={() => undefined} onDragStart={() => undefined} onDrop={() => undefined} onItemHovered={() => undefined} onKeyDown={() => undefined} onKeyUp={() => undefined} onMouseDown={() => undefined} onMouseUp={() => undefined} canvasRef={undefined} className={undefined} drawCell={undefined} disabledRows={undefined} fillHandle={undefined} fixedShadowX={undefined} fixedShadowY={undefined} getGroupDetails={undefined} getRowThemeOverride={undefined} highlightRegions={undefined} imageWindowLoader={new ImageWindowLoaderImpl()} onHeaderMenuClick={undefined} prelightCells={undefined} drawFocusRing={true} initialSize={undefined} overscrollX={undefined} overscrollY={undefined} preventDiagonalScrolling={undefined} rightElement={undefined} rightElementProps={undefined} scrollRef={undefined} minColumnWidth={50} isFocused={true} theme={mergeAndRealizeTheme(getDefaultTheme())} isFilling={false} maxColumnWidth={500} accessibilityHeight={50} translateX={translateX} translateY={translateY} lockColumns={0} selection={{ current: undefined, rows: CompactSelection.empty(), columns: CompactSelection.empty(), }} firstColAccessible={true} groupHeaderHeight={34} headerHeight={44} freezeTrailingRows={0} hasAppendRow={false} rowHeight={34} onVisibleRegionChanged={onVisibleRegionChanged} columns={columns} getCellContent={getCellContent} freezeColumns={0} verticalBorder={() => true} smoothScrollX={true} smoothScrollY={true} /> ); }