FIX: Lifts TemplateDialog to App.tsx
This commit is contained in:
committed by
Nicolás Hatcher Andrés
parent
7841abe2d2
commit
dd29287c5a
@@ -20,10 +20,13 @@ import {
|
|||||||
|
|
||||||
// From IronCalc
|
// From IronCalc
|
||||||
import { IronCalc, IronCalcIcon, Model, init } from "@ironcalc/workbook";
|
import { IronCalc, IronCalcIcon, Model, init } from "@ironcalc/workbook";
|
||||||
|
import { Modal } from "@mui/material";
|
||||||
|
import TemplatesDialog from "./components/WelcomeDialog/TemplatesDialog";
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
const [model, setModel] = useState<Model | null>(null);
|
const [model, setModel] = useState<Model | null>(null);
|
||||||
const [showWelcomeDialog, setShowWelcomeDialog] = useState(false);
|
const [showWelcomeDialog, setShowWelcomeDialog] = useState(false);
|
||||||
|
const [isTemplatesDialogOpen, setTemplatesDialogOpen] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function start() {
|
async function start() {
|
||||||
@@ -106,7 +109,7 @@ function App() {
|
|||||||
setModel(createdModel);
|
setModel(createdModel);
|
||||||
}}
|
}}
|
||||||
newModelFromTemplate={() => {
|
newModelFromTemplate={() => {
|
||||||
setShowWelcomeDialog(true);
|
setTemplatesDialogOpen(true);
|
||||||
}}
|
}}
|
||||||
setModel={(uuid: string) => {
|
setModel={(uuid: string) => {
|
||||||
const newModel = selectModelFromStorage(uuid);
|
const newModel = selectModelFromStorage(uuid);
|
||||||
@@ -150,6 +153,25 @@ function App() {
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
<Modal
|
||||||
|
open={isTemplatesDialogOpen}
|
||||||
|
onClose={() => setTemplatesDialogOpen(false)}
|
||||||
|
aria-labelledby="templates-dialog-title"
|
||||||
|
aria-describedby="templates-dialog-description"
|
||||||
|
>
|
||||||
|
<TemplatesDialog
|
||||||
|
onClose={() => setTemplatesDialogOpen(false)}
|
||||||
|
onSelectTemplate={
|
||||||
|
async (fileName) => {
|
||||||
|
const model_bytes = await get_documentation_model(fileName);
|
||||||
|
const importedModel = Model.from_bytes(model_bytes);
|
||||||
|
saveModelToStorage(importedModel);
|
||||||
|
setModel(importedModel);
|
||||||
|
setTemplatesDialogOpen(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Modal>
|
||||||
</Wrapper>
|
</Wrapper>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { Check, FileDown, FileUp, Plus, Table2, Trash2 } from "lucide-react";
|
|||||||
import { useRef, useState } from "react";
|
import { useRef, useState } from "react";
|
||||||
import DeleteWorkbookDialog from "./DeleteWorkbookDialog";
|
import DeleteWorkbookDialog from "./DeleteWorkbookDialog";
|
||||||
import UploadFileDialog from "./UploadFileDialog";
|
import UploadFileDialog from "./UploadFileDialog";
|
||||||
import TemplatesDialog from "./WelcomeDialog/TemplatesDialog";
|
// import TemplatesDialog from "./WelcomeDialog/TemplatesDialog";
|
||||||
import { getModelsMetadata, getSelectedUuid } from "./storage";
|
import { getModelsMetadata, getSelectedUuid } from "./storage";
|
||||||
|
|
||||||
export function FileMenu(props: {
|
export function FileMenu(props: {
|
||||||
@@ -22,7 +22,6 @@ export function FileMenu(props: {
|
|||||||
const uuids = Object.keys(models);
|
const uuids = Object.keys(models);
|
||||||
const selectedUuid = getSelectedUuid();
|
const selectedUuid = getSelectedUuid();
|
||||||
const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
const [isDeleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
||||||
const [isTemplatesDialogOpen, setTemplatesDialogOpen] = useState(false);
|
|
||||||
const elements = [];
|
const elements = [];
|
||||||
for (const uuid of uuids) {
|
for (const uuid of uuids) {
|
||||||
elements.push(
|
elements.push(
|
||||||
@@ -98,7 +97,7 @@ export function FileMenu(props: {
|
|||||||
</MenuItemWrapper>
|
</MenuItemWrapper>
|
||||||
<MenuItemWrapper
|
<MenuItemWrapper
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setTemplatesDialogOpen(true);
|
props.newModelFromTemplate();
|
||||||
setMenuOpen(false);
|
setMenuOpen(false);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -166,17 +165,6 @@ export function FileMenu(props: {
|
|||||||
workbookName={selectedUuid ? models[selectedUuid] : ""}
|
workbookName={selectedUuid ? models[selectedUuid] : ""}
|
||||||
/>
|
/>
|
||||||
</Modal>
|
</Modal>
|
||||||
<Modal
|
|
||||||
open={isTemplatesDialogOpen}
|
|
||||||
onClose={() => setTemplatesDialogOpen(false)}
|
|
||||||
aria-labelledby="templates-dialog-title"
|
|
||||||
aria-describedby="templates-dialog-description"
|
|
||||||
>
|
|
||||||
<TemplatesDialog
|
|
||||||
onClose={() => setTemplatesDialogOpen(false)}
|
|
||||||
onSelectTemplate={props.newModelFromTemplate}
|
|
||||||
/>
|
|
||||||
</Modal>
|
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user