execute macro

This commit is contained in:
Jan Prochazka
2020-10-31 10:01:55 +01:00
parent cc385c12ec
commit 68cf397473
5 changed files with 101 additions and 27 deletions

View File

@@ -1,3 +1,4 @@
import { runMacro } from '@dbgate/datalib';
import React from 'react';
import styled from 'styled-components';
@@ -20,9 +21,16 @@ const DataGridContainer = styled.div`
`;
export default function FreeTableGrid(props) {
const { modelState, dispatchModel } = props;
const [managerSize, setManagerSize] = React.useState(0);
const [selectedMacro, setSelectedMacro] = React.useState(null);
const [macroValues, setMacroValues] = React.useState({});
const [selectedCells, setSelectedCells] = React.useState([]);
const handleExecuteMacro = () => {
const newModel = runMacro(selectedMacro, macroValues, modelState.value, false, selectedCells);
dispatchModel({ type: 'set', value: newModel });
setSelectedMacro(null);
};
return (
<HorizontalSplitter initialValue="300px" size={managerSize} setSize={setManagerSize}>
<LeftContainer>
@@ -43,13 +51,19 @@ export default function FreeTableGrid(props) {
<DataGridContainer>
<VerticalSplitter initialValue="70%">
<FreeTableGridCore {...props} macroPreview={selectedMacro} macroValues={macroValues} />
<FreeTableGridCore
{...props}
macroPreview={selectedMacro}
macroValues={macroValues}
onSelectionChanged={setSelectedCells}
/>
{!!selectedMacro && (
<MacroDetail
selectedMacro={selectedMacro}
setSelectedMacro={setSelectedMacro}
onChangeValues={setMacroValues}
macroValues={macroValues}
onExecute={handleExecuteMacro}
/>
)}
</VerticalSplitter>