diff --git a/packages/web/src/query/ShellToolbar.js b/packages/web/src/query/ShellToolbar.js index 27c4192db..1d4c1fbc1 100644 --- a/packages/web/src/query/ShellToolbar.js +++ b/packages/web/src/query/ShellToolbar.js @@ -1,7 +1,7 @@ import React from 'react'; import ToolbarButton from '../widgets/ToolbarButton'; -export default function ShellToolbar({ execute, cancel, busy, edit, editAvailable }) { +export default function ShellToolbar({ execute, cancel, busy, edit, save, editAvailable }) { return ( <> @@ -13,6 +13,9 @@ export default function ShellToolbar({ execute, cancel, busy, edit, editAvailabl Show wizard + + Save + ); } diff --git a/packages/web/src/tabs/ShellTab.js b/packages/web/src/tabs/ShellTab.js index c896da0fc..4935fbf11 100644 --- a/packages/web/src/tabs/ShellTab.js +++ b/packages/web/src/tabs/ShellTab.js @@ -13,6 +13,8 @@ import RunnerOutputPane from '../query/RunnerOutputPane'; import useShowModal from '../modals/showModal'; import ImportExportModal from '../modals/ImportExportModal'; import useEditorData from '../utility/useEditorData'; +import SaveTabModal from '../modals/SaveTabModal'; +import useModalState from '../modals/useModalState'; const configRegex = /\s*\/\/\s*@ImportExportConfigurator\s*\n\s*\/\/\s*(\{[^\n]+\})\n/; const requireRegex = /\s*(\/\/\s*@require\s+[^\n]+)\n/g; @@ -21,6 +23,7 @@ export default function ShellTab({ tabid, tabVisible, toolbarPortalRef, ...other const [busy, setBusy] = React.useState(false); const showModal = useShowModal(); const { editorData, setEditorData } = useEditorData({ tabid }); + const saveFileModalState = useModalState(); const setOpenedTabs = useSetOpenedTabs(); @@ -108,9 +111,11 @@ export default function ShellTab({ tabid, tabVisible, toolbarPortalRef, ...other cancel={handleCancel} edit={handleEdit} editAvailable={configRegex.test(editorData || '')} + save={saveFileModalState.open} />, toolbarPortalRef.current )} + ); } diff --git a/packages/web/src/widgets/FilesWidget.js b/packages/web/src/widgets/FilesWidget.js index 65bb0aeef..607977c78 100644 --- a/packages/web/src/widgets/FilesWidget.js +++ b/packages/web/src/widgets/FilesWidget.js @@ -5,7 +5,7 @@ import { AppObjectList } from '../appobj/AppObjectList'; import { useOpenedTabs } from '../utility/globalState'; import ClosedTabAppObject from '../appobj/ClosedTabAppObject'; import { WidgetsInnerContainer } from './WidgetStyles'; -import { SavedSqlFileAppObject } from '../appobj/SavedFileAppObject'; +import { SavedSqlFileAppObject, SavedShellFileAppObject } from '../appobj/SavedFileAppObject'; import WidgetColumnBar, { WidgetColumnBarItem } from './WidgetColumnBar'; import { useFiles } from '../utility/metadataLoaders'; @@ -39,15 +39,30 @@ function SavedSqlFilesList() { ); } +function SavedShellFilesList() { + const files = useFiles({ folder: 'shell' }); + + return ( + <> + + + + + ); +} + export default function FilesWidget() { return ( - + - + + + + ); }