in src/web/src/views/workspace/WSEditor.tsx [460:590]
render() {
const {
showSwaggerResourcePicker,
showSwaggerReloadDialog,
showExportDialog,
showDeleteDialog,
showModifyDialog,
plane,
source,
name,
commandTree,
selected,
reloadTimestamp,
workspaceUrl,
expanded,
showClientConfigDialog,
clientConfigurable,
} = this.state;
const expandedIds: string[] = [];
expanded.forEach((expandId) => {
expandedIds.push(expandId);
});
return (
<React.Fragment>
<WSEditorToolBar
workspaceName={name}
onHomePage={() => {
this.handleBackToHomepage(true);
}}
onGenerate={this.handleGenerate}
onDelete={this.handleDelete}
onModify={this.handleModify}
></WSEditorToolBar>
<Box sx={{ display: "flex" }}>
<Drawer
variant="permanent"
sx={{
width: drawerWidth,
flexShrink: 0,
[`& .MuiDrawer-paper`]: { width: drawerWidth, boxSizing: "border-box" },
}}
>
<Toolbar />
{selected != null && (
<WSEditorCommandTree
commandTreeNodes={commandTree}
onSelected={this.handleCommandTreeSelect}
onToggle={this.handleCommandTreeToggle}
onAdd={this.showSwaggerResourcePicker}
onReload={this.showSwaggerReloadDialog}
selected={selected!.id}
expanded={expandedIds}
onEditClientConfig={clientConfigurable ? this.showClientConfigDialog : undefined}
/>
)}
</Drawer>
<Box
component="main"
sx={{
flexGrow: 1,
p: 1,
}}
>
<Toolbar sx={{ flexShrink: 0 }} />
{selected != null && selected.id.startsWith("group:") && (
<WSEditorCommandGroupContent
workspaceUrl={workspaceUrl}
commandGroup={selected as CommandGroup}
reloadTimestamp={reloadTimestamp!}
onUpdateCommandGroup={this.handleCommandGroupUpdate}
/>
)}
{selected != null && selected.id.startsWith("command:") && (
<WSEditorCommandContent
workspaceUrl={workspaceUrl}
previewCommand={selected as Command}
reloadTimestamp={reloadTimestamp!}
onUpdateCommand={this.handleCommandUpdate}
/>
)}
</Box>
</Box>
<Dialog
fullScreen
open={showSwaggerResourcePicker}
onClose={this.handleSwaggerResourcePickerClose}
TransitionComponent={swaggerResourcePickerTransition}
>
<WSEditorSwaggerPicker plane={plane} workspaceName={name} onClose={this.handleSwaggerResourcePickerClose} />
</Dialog>
{showModifyDialog && (
<WSRenameDialog
workspaceUrl={workspaceUrl}
workspaceName={name}
open={showModifyDialog}
onClose={this.handleModifyClose}
/>
)}
{showDeleteDialog && (
<WSEditorDeleteDialog workspaceName={name} open={showDeleteDialog} onClose={this.handleDeleteClose} />
)}
{showExportDialog && (
<WSEditorExportDialog
workspaceUrl={workspaceUrl}
open={showExportDialog}
clientConfigurable={clientConfigurable}
onClose={this.handleGenerationClose}
/>
)}
{showSwaggerReloadDialog && (
<WSEditorSwaggerReloadDialog
workspaceUrl={workspaceUrl}
workspaceName={name}
source={source}
open={showSwaggerReloadDialog}
onClose={this.handleSwaggerReloadDialogClose}
/>
)}
{showClientConfigDialog && (
<WSEditorClientConfigDialog
workspaceUrl={workspaceUrl}
open={showClientConfigDialog}
onClose={this.handleClientConfigDialogClose}
/>
)}
</React.Fragment>
);
}