Skip to content

Commit 55be304

Browse files
chore: replace remaining MUI buttons (coder#20200)
1 parent 7973615 commit 55be304

File tree

23 files changed

+129
-346
lines changed

23 files changed

+129
-346
lines changed

biome.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"@mui/material/Popover": "Use components/Popover/Popover instead.",
5252
"@mui/material/Typography": "Use native HTML elements instead. Eg: <span>, <p>, <h1>, etc.",
5353
"@mui/material/Box": "Use a <div> instead.",
54+
"@mui/material/Button": "Use a components/Button/Button instead.",
5455
"@mui/material/styles": "Import from @emotion/react instead.",
5556
"lodash": "Use lodash/<name> instead."
5657
}

site/src/@types/mui.d.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,6 @@ declare module "@mui/material/styles" {
1313
}
1414
}
1515

16-
declare module "@mui/material/Button" {
17-
interface ButtonPropsColorOverrides {
18-
neutral: true;
19-
}
20-
21-
interface ButtonPropsSizeOverrides {
22-
xlarge: true;
23-
}
24-
}
25-
2616
declare module "@mui/material/Checkbox" {
2717
interface CheckboxPropsSizeOverrides {
2818
xsmall: true;

site/src/components/InputGroup/InputGroup.stories.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Button from "@mui/material/Button";
21
import TextField from "@mui/material/TextField";
32
import type { Meta, StoryObj } from "@storybook/react-vite";
3+
import { Button } from "components/Button/Button";
44
import { InputGroup } from "./InputGroup";
55

66
const meta: Meta<typeof InputGroup> = {
@@ -15,7 +15,9 @@ export const Default: Story = {
1515
args: {
1616
children: (
1717
<>
18-
<Button>Menu</Button>
18+
<Button variant="outline" className="h-9">
19+
Menu
20+
</Button>
1921
<TextField size="small" placeholder="Search..." />
2022
</>
2123
),

site/src/modules/dashboard/DeploymentBanner/DeploymentBannerView.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { css, type Interpolation, type Theme, useTheme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import Link from "@mui/material/Link";
43
import Tooltip from "@mui/material/Tooltip";
54
import type {
65
DeploymentStats,
76
HealthcheckReport,
87
WorkspaceStatus,
98
} from "api/typesGenerated";
9+
import { Button } from "components/Button/Button";
1010
import { HelpTooltipTitle } from "components/HelpTooltip/HelpTooltip";
1111
import { JetBrainsIcon } from "components/Icons/JetBrainsIcon";
1212
import { RocketIcon } from "components/Icons/RocketIcon";
@@ -323,9 +323,9 @@ export const DeploymentBannerView: FC<DeploymentBannerViewProps> = ({
323323
fetchStats();
324324
}
325325
}}
326-
variant="text"
326+
variant="subtle"
327327
>
328-
<RotateCwIcon className="size-icon-xs" />
328+
<RotateCwIcon />
329329
{timeUntilRefresh}s
330330
</Button>
331331
</Tooltip>

site/src/modules/resources/Resources.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import Button from "@mui/material/Button";
21
import type { WorkspaceAgent, WorkspaceResource } from "api/typesGenerated";
2+
import { Button } from "components/Button/Button";
33
import { DropdownArrow } from "components/DropdownArrow/DropdownArrow";
44
import { Stack } from "components/Stack/Stack";
55
import { type FC, type JSX, useState } from "react";
@@ -37,8 +37,9 @@ export const Resources: FC<ResourcesProps> = ({ resources, agentRow }) => {
3737
{hasHideResources && (
3838
<div className="flex items-center justify-center mt-4">
3939
<Button
40+
variant="outline"
4041
className="rounded-full w-full max-w-[260px]"
41-
size="small"
42+
size="sm"
4243
onClick={() => setShouldDisplayHideResources((v) => !v)}
4344
>
4445
{shouldDisplayHideResources ? "Hide" : "Show hidden"} resources

site/src/modules/workspaces/WorkspaceMoreActions/UpdateBuildParametersDialog.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { css } from "@emotion/css";
22
import type { Interpolation, Theme } from "@emotion/react";
3-
import Button from "@mui/material/Button";
43
import Dialog from "@mui/material/Dialog";
54
import DialogActions from "@mui/material/DialogActions";
65
import DialogContent from "@mui/material/DialogContent";
@@ -10,6 +9,7 @@ import type {
109
TemplateVersionParameter,
1110
WorkspaceBuildParameter,
1211
} from "api/typesGenerated";
12+
import { Button } from "components/Button/Button";
1313
import type { DialogProps } from "components/Dialogs/Dialog";
1414
import { FormFields, VerticalForm } from "components/Form/Form";
1515
import { RichParameterInput } from "components/RichParameterInput/RichParameterInput";
@@ -97,10 +97,15 @@ export const UpdateBuildParametersDialog: FC<
9797
</VerticalForm>
9898
</DialogContent>
9999
<DialogActions disableSpacing css={styles.dialogActions}>
100-
<Button fullWidth type="button" onClick={dialogProps.onClose}>
100+
<Button
101+
variant="outline"
102+
className="w-full"
103+
type="button"
104+
onClick={dialogProps.onClose}
105+
>
101106
Cancel
102107
</Button>
103-
<Button color="primary" fullWidth type="submit" form="updateParameters">
108+
<Button className="w-full" type="submit" form="updateParameters">
104109
Update parameters
105110
</Button>
106111
</DialogActions>

site/src/modules/workspaces/WorkspaceTiming/WorkspaceTimings.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type { Interpolation, Theme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import Collapse from "@mui/material/Collapse";
43
import Skeleton from "@mui/material/Skeleton";
54
import type {
65
AgentConnectionTiming,
76
AgentScriptTiming,
87
ProvisionerTiming,
98
} from "api/typesGenerated";
9+
import { Button } from "components/Button/Button";
1010
import sortBy from "lodash/sortBy";
1111
import uniqBy from "lodash/uniqBy";
1212
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
@@ -96,7 +96,7 @@ export const WorkspaceTimings: FC<WorkspaceTimingsProps> = ({
9696
<div css={styles.collapse}>
9797
<Button
9898
disabled={isLoading}
99-
variant="text"
99+
variant="subtle"
100100
css={styles.collapseTrigger}
101101
onClick={() => setIsOpen((o) => !o)}
102102
>

site/src/pages/CreateTemplatePage/BuildLogsDrawer.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import type { Interpolation, Theme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import Drawer from "@mui/material/Drawer";
43
import IconButton from "@mui/material/IconButton";
54
import { visuallyHidden } from "@mui/utils";
65
import { JobError } from "api/queries/templates";
76
import type { TemplateVersion } from "api/typesGenerated";
7+
import { Button } from "components/Button/Button";
88
import { Loader } from "components/Loader/Loader";
99
import { TriangleAlertIcon, XIcon } from "lucide-react";
1010
import { AlertVariant } from "modules/provisioners/ProvisionerAlert";
@@ -103,8 +103,8 @@ const MissingVariablesBanner: FC<MissingVariablesBannerProps> = ({
103103
</p>
104104
<Button
105105
css={bannerStyles.button}
106-
size="small"
107-
variant="outlined"
106+
size="sm"
107+
variant="outline"
108108
onClick={onFillVariables}
109109
>
110110
Fill variables

site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicenseCard.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { CSSObject, Interpolation, Theme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import Paper from "@mui/material/Paper";
43
import type { GetLicensesResponse } from "api/api";
4+
import { Button } from "components/Button/Button";
55
import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog";
66
import { Pill } from "components/Pill/Pill";
77
import { Stack } from "components/Stack/Stack";
@@ -106,9 +106,8 @@ export const LicenseCard: FC<LicenseCardProps> = ({
106106
</Stack>
107107
<Stack spacing={2}>
108108
<Button
109-
css={styles.removeButton}
110-
variant="contained"
111-
size="small"
109+
variant="destructive"
110+
size="sm"
112111
onClick={() => setLicenseIDMarkedForRemoval(license.id)}
113112
className="remove-button"
114113
>
@@ -150,10 +149,4 @@ const styles = {
150149
secondaryMaincolor: (theme) => ({
151150
color: theme.palette.text.secondary,
152151
}),
153-
removeButton: (theme) => ({
154-
color: theme.palette.error.main,
155-
"&:hover": {
156-
backgroundColor: "transparent",
157-
},
158-
}),
159152
} satisfies Record<string, Interpolation<Theme>>;

site/src/pages/DeploymentSettingsPage/LicensesSettingsPage/LicensesSettingsPageView.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { type Interpolation, type Theme, useTheme } from "@emotion/react";
2-
import MuiButton from "@mui/material/Button";
32
import MuiLink from "@mui/material/Link";
43
import Skeleton from "@mui/material/Skeleton";
54
import Tooltip from "@mui/material/Tooltip";
@@ -75,13 +74,12 @@ const LicensesSettingsPageView: FC<Props> = ({
7574
</SettingsHeader>
7675

7776
<Stack direction="row" spacing={2}>
78-
<MuiButton
79-
component={Link}
80-
to="/deployment/licenses/add"
81-
startIcon={<PlusIcon className="size-icon-sm" />}
82-
>
83-
Add a license
84-
</MuiButton>
77+
<Button variant="outline" asChild>
78+
<Link to="/deployment/licenses/add">
79+
<PlusIcon />
80+
Add a license
81+
</Link>
82+
</Button>
8583
<Tooltip title="Refresh license entitlements. This is done automatically every 10 minutes.">
8684
<Button
8785
disabled={isRefreshing}

0 commit comments

Comments
 (0)