import React from "react"; import { DataEditorAll as DataEditor } from "../../data-editor-all.js"; import { BeautifulWrapper, Description, PropName, defaultProps, useAllMockedKinds, } from "../../data-editor/stories/utils.js"; import type { GetRowThemeCallback } from "../../internal/data-grid/render/data-grid-render.cells.js"; import { SimpleThemeWrapper } from "../../stories/story-utils.js"; import type { GridMouseEventArgs } from "../../internal/data-grid/event-args.js"; export default { title: "Glide-Data-Grid/DataEditor Demos", decorators: [ (Story: React.ComponentType) => ( Through careful usage of the onItemHovered callback it is possible to easily create a row hover effect. }> ), ], }; export const RowHover: React.VFC = () => { const { cols, getCellContent } = useAllMockedKinds(); const [hoverRow, setHoverRow] = React.useState(undefined); const onItemHovered = React.useCallback((args: GridMouseEventArgs) => { const [_, row] = args.location; setHoverRow(args.kind !== "cell" ? undefined : row); }, []); const getRowThemeOverride = React.useCallback( row => { if (row !== hoverRow) return undefined; return { bgCell: "#f7f7f7", bgCellMedium: "#f0f0f0", }; }, [hoverRow] ); return ( ); };