UNPKG

@antv/s2-react

Version:
45 lines 2.19 kB
import React from 'react'; import { SpreadSheetContext } from '../../context/SpreadSheetContext'; import { ChartSheet } from './chart-sheet'; import { EditableSheet } from './editable-sheet'; import { GridAnalysisSheet } from './grid-analysis-sheet'; import { PivotChartSheet } from './pivot-chart-sheet'; import { PivotSheet } from './pivot-sheet'; import { StrategySheet } from './strategy-sheet'; import { TableSheet } from './table-sheet'; const Sheet = React.forwardRef((props, ref) => { const { sheetType } = props; const [s2Instance, setS2Instance] = React.useState(null); const sheetProps = React.useMemo(() => { return Object.assign(Object.assign({}, props), { onMounted: (instance) => { var _a; if (ref) { ref.current = instance; } setS2Instance(instance); (_a = props.onMounted) === null || _a === void 0 ? void 0 : _a.call(props, instance); } }); }, [props, ref]); const CurrentSheet = React.useMemo(() => { switch (sheetType) { case 'table': return React.createElement(TableSheet, Object.assign({}, sheetProps)); case 'chart': return React.createElement(ChartSheet, Object.assign({}, sheetProps)); case 'pivotChart': return React.createElement(PivotChartSheet, Object.assign({}, sheetProps)); case 'gridAnalysis': return React.createElement(GridAnalysisSheet, Object.assign({}, sheetProps)); case 'strategy': return React.createElement(StrategySheet, Object.assign({}, sheetProps)); case 'editable': return React.createElement(EditableSheet, Object.assign({}, sheetProps)); default: return React.createElement(PivotSheet, Object.assign({}, sheetProps)); } }, [sheetType, sheetProps]); return (React.createElement(SpreadSheetContext.Provider, { value: s2Instance }, CurrentSheet)); }); export const SheetComponent = React.memo(Sheet); SheetComponent.displayName = 'SheetComponent'; //# sourceMappingURL=index.js.map