/* Copyright 2026 Marimo. All rights reserved. */ "use no memo"; import type { Cell, Column, InitialTableState, Row, RowData, Table, TableFeature, } from "@tanstack/react-table"; import { getStableRowId } from "../utils"; import type { CellHoverTextState, CellHoverTextTableState } from "./types"; function getRowId(row: Row): string { return getStableRowId(row) ?? row.id; } export const CellHoverTextFeature: TableFeature = { getInitialState: (state?: InitialTableState): CellHoverTextTableState => { return { ...state, cellHoverTexts: {} as CellHoverTextState, }; }, createCell: ( cell: Cell, column: Column, row: Row, table: Table, ) => { cell.getHoverTitle = () => { const state = table.getState().cellHoverTexts; const rowId = getRowId(row); return state?.[rowId]?.[column.id] ?? undefined; }; }, };