@antv/s2-react
Version:
use S2 with react
49 lines • 2.67 kB
JavaScript
;
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