Skip to content

refactor(site): make minor design tweaks and fix issues on more options menus #10493

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Nov 3, 2023
Prev Previous commit
Next Next commit
Refactor workspace menu
  • Loading branch information
BrunoQuaresma committed Nov 2, 2023
commit af79dc811150a1bd39ce81f93bc7203a8fdf4c31
55 changes: 22 additions & 33 deletions site/src/pages/WorkspacePage/WorkspaceActions/WorkspaceActions.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import MenuItem from "@mui/material/MenuItem";
import Menu from "@mui/material/Menu";
import { makeStyles } from "@mui/styles";
import MoreVertOutlined from "@mui/icons-material/MoreVertOutlined";
import { FC, Fragment, ReactNode, useRef, useState } from "react";
import { Workspace, WorkspaceBuildParameter } from "api/typesGenerated";
import {
Expand All @@ -22,7 +19,13 @@ import {
import SettingsOutlined from "@mui/icons-material/SettingsOutlined";
import HistoryOutlined from "@mui/icons-material/HistoryOutlined";
import DeleteOutlined from "@mui/icons-material/DeleteOutlined";
import IconButton from "@mui/material/IconButton";
import {
MoreMenu,
MoreMenuContent,
MoreMenuItem,
MoreMenuTrigger,
} from "components/MoreMenu/MoreMenu";
import Divider from "@mui/material/Divider";

export interface WorkspaceActionsProps {
workspace: Workspace;
Expand Down Expand Up @@ -108,12 +111,6 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
),
};

// Returns a function that will execute the action and close the menu
const onMenuItemClick = (actionFn: () => void) => () => {
setIsMenuOpen(false);
actionFn();
};

return (
<div className={styles.actions} data-testid="workspace-actions">
{canBeUpdated &&
Expand All @@ -126,44 +123,36 @@ export const WorkspaceActions: FC<WorkspaceActionsProps> = ({
<Fragment key={action}>{buttonMapping[action]}</Fragment>
))}
{canCancel && <CancelButton handleAction={handleCancel} />}
<div>
<IconButton
<MoreMenu>
<MoreMenuTrigger
title="More options"
size="small"
data-testid="workspace-options-button"
aria-controls="workspace-options"
aria-haspopup="true"
disabled={!canAcceptJobs}
ref={menuTriggerRef}
onClick={() => setIsMenuOpen(true)}
>
<MoreVertOutlined />
</IconButton>
<Menu
id="workspace-options"
anchorEl={menuTriggerRef.current}
open={isMenuOpen}
onClose={() => setIsMenuOpen(false)}
>
<MenuItem onClick={onMenuItemClick(handleSettings)}>
/>
<MoreMenuContent id="workspace-options">
<MoreMenuItem onClick={handleSettings}>
<SettingsOutlined />
Settings
</MenuItem>
</MoreMenuItem>
{canChangeVersions && (
<MenuItem onClick={onMenuItemClick(handleChangeVersion)}>
<MoreMenuItem onClick={handleChangeVersion}>
<HistoryOutlined />
Change version&hellip;
</MenuItem>
</MoreMenuItem>
)}
<MenuItem
onClick={onMenuItemClick(handleDelete)}
<Divider />
<MoreMenuItem
danger
onClick={handleDelete}
data-testid="delete-button"
>
<DeleteOutlined />
Delete&hellip;
</MenuItem>
</Menu>
</div>
</MoreMenuItem>
</MoreMenuContent>
</MoreMenu>
</div>
);
};
Expand Down