UNPKG

@antv/s2-react

Version:
49 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SheetComponent = void 0; const tslib_1 = require("tslib"); const react_1 = tslib_1.__importDefault(require("react")); const SpreadSheetContext_1 = require("../../context/SpreadSheetContext"); const chart_sheet_1 = require("./chart-sheet"); const editable_sheet_1 = require("./editable-sheet"); const grid_analysis_sheet_1 = require("./grid-analysis-sheet"); const pivot_chart_sheet_1 = require("./pivot-chart-sheet"); const pivot_sheet_1 = require("./pivot-sheet"); const strategy_sheet_1 = require("./strategy-sheet"); const table_sheet_1 = require("./table-sheet"); const Sheet = react_1.default.forwardRef((props, ref) => { const { sheetType } = props; const [s2Instance, setS2Instance] = react_1.default.useState(null); const sheetProps = react_1.default.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_1.default.useMemo(() => { switch (sheetType) { case 'table': return react_1.default.createElement(table_sheet_1.TableSheet, Object.assign({}, sheetProps)); case 'chart': return react_1.default.createElement(chart_sheet_1.ChartSheet, Object.assign({}, sheetProps)); case 'pivotChart': return react_1.default.createElement(pivot_chart_sheet_1.PivotChartSheet, Object.assign({}, sheetProps)); case 'gridAnalysis': return react_1.default.createElement(grid_analysis_sheet_1.GridAnalysisSheet, Object.assign({}, sheetProps)); case 'strategy': return react_1.default.createElement(strategy_sheet_1.StrategySheet, Object.assign({}, sheetProps)); case 'editable': return react_1.default.createElement(editable_sheet_1.EditableSheet, Object.assign({}, sheetProps)); default: return react_1.default.createElement(pivot_sheet_1.PivotSheet, Object.assign({}, sheetProps)); } }, [sheetType, sheetProps]); return (react_1.default.createElement(SpreadSheetContext_1.SpreadSheetContext.Provider, { value: s2Instance }, CurrentSheet)); }); exports.SheetComponent = react_1.default.memo(Sheet); exports.SheetComponent.displayName = 'SheetComponent'; //# sourceMappingURL=index.js.map