Skip to content

Commit 54ce03a

Browse files
chore: replace MUI buttons (#19968)
Replace MUI buttons with `components/Button`
1 parent 10d41b3 commit 54ce03a

File tree

10 files changed

+59
-74
lines changed

10 files changed

+59
-74
lines changed

site/src/pages/TemplatePage/TemplateEmbedPage/TemplateEmbedPage.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import Button from "@mui/material/Button";
21
import FormControlLabel from "@mui/material/FormControlLabel";
32
import Radio from "@mui/material/Radio";
43
import RadioGroup from "@mui/material/RadioGroup";
54
import { API } from "api/api";
65
import type { Template, TemplateVersionParameter } from "api/typesGenerated";
6+
import { Button } from "components/Button/Button";
77
import { FormSection, VerticalForm } from "components/Form/Form";
88
import { Input } from "components/Input/Input";
99
import { Label } from "components/Label/Label";
@@ -236,18 +236,11 @@ export const TemplateEmbedPageView: FC<TemplateEmbedPageViewProps> = ({
236236
}}
237237
>
238238
<Button
239-
css={{ borderRadius: 999 }}
240-
startIcon={
241-
clipboard.showCopiedSuccess ? (
242-
<CheckIcon className="size-icon-sm" />
243-
) : (
244-
<CopyIcon className="size-icon-sm" />
245-
)
246-
}
247-
variant="contained"
239+
className="rounded-full"
248240
onClick={clipboard.copyToClipboard}
249241
disabled={clipboard.showCopiedSuccess}
250242
>
243+
{clipboard.showCopiedSuccess ? <CheckIcon /> : <CopyIcon />}
251244
Copy button code
252245
</Button>
253246
</div>

site/src/pages/TemplatePage/TemplateInsightsPage/WeekPicker.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Button from "@mui/material/Button";
21
import Menu from "@mui/material/Menu";
32
import MenuItem from "@mui/material/MenuItem";
3+
import { Button } from "components/Button/Button";
44
import dayjs from "dayjs";
55
import { CheckIcon, ChevronDownIcon } from "lucide-react";
66
import { type FC, useRef, useState } from "react";
@@ -31,15 +31,16 @@ export const WeekPicker: FC<WeekPickerProps> = ({ value, onChange }) => {
3131
return (
3232
<div>
3333
<Button
34+
variant="outline"
3435
ref={anchorRef}
3536
id="interval-button"
3637
aria-controls={open ? "interval-menu" : undefined}
3738
aria-haspopup="true"
3839
aria-expanded={open ? "true" : undefined}
3940
onClick={() => setOpen(true)}
40-
endIcon={<ChevronDownIcon className="size-icon-xs" />}
4141
>
4242
Last {numberOfWeeks} weeks
43+
<ChevronDownIcon />
4344
</Button>
4445
<Menu
4546
id="interval-menu"

site/src/pages/TemplatePage/TemplateVersionsPage/VersionRow.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { CSSObject, Interpolation, Theme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import TableCell from "@mui/material/TableCell";
43
import type { TemplateVersion } from "api/typesGenerated";
54
import { Avatar } from "components/Avatar/Avatar";
5+
import { Button } from "components/Button/Button";
66
import { InfoTooltip } from "components/InfoTooltip/InfoTooltip";
77
import { Pill } from "components/Pill/Pill";
88
import { Stack } from "components/Stack/Stack";
@@ -107,7 +107,7 @@ export const VersionRow: FC<VersionRowProps> = ({
107107

108108
{jobStatus === "failed" && onArchiveClick && (
109109
<Button
110-
css={styles.promoteButton}
110+
variant="outline"
111111
disabled={isActive || version.archived}
112112
onClick={(e) => {
113113
e.preventDefault();
@@ -121,7 +121,7 @@ export const VersionRow: FC<VersionRowProps> = ({
121121

122122
{jobStatus === "succeeded" && onPromoteClick && (
123123
<Button
124-
css={styles.promoteButton}
124+
variant="outline"
125125
disabled={isActive || jobStatus !== "succeeded"}
126126
onClick={(e) => {
127127
e.preventDefault();
@@ -140,11 +140,6 @@ export const VersionRow: FC<VersionRowProps> = ({
140140
};
141141

142142
const styles = {
143-
promoteButton: (theme) => ({
144-
color: theme.palette.text.secondary,
145-
transition: "none",
146-
}),
147-
148143
versionWrapper: {
149144
padding: "16px 32px",
150145
},

site/src/pages/TemplateSettingsPage/TemplateSchedulePage/TemplateScheduleAutostart.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import Button from "@mui/material/Button";
21
import FormHelperText from "@mui/material/FormHelperText";
2+
import { Button } from "components/Button/Button";
33
import { Stack } from "components/Stack/Stack";
44
import type { FC } from "react";
55
import {
@@ -27,7 +27,7 @@ export const TemplateScheduleAutostart: FC<TemplateScheduleAutostartProps> = ({
2727
spacing={0}
2828
alignItems="baseline"
2929
justifyContent="center"
30-
css={{ width: "100%" }}
30+
className="w-full gap-0.5"
3131
>
3232
{(
3333
[
@@ -44,11 +44,10 @@ export const TemplateScheduleAutostart: FC<TemplateScheduleAutostartProps> = ({
4444
}[]
4545
).map((day) => (
4646
<Button
47-
fullWidth
48-
key={day.key}
49-
css={{ borderRadius: 0 }}
47+
variant="outline"
5048
// TODO: Adding a background color would also help
51-
color={value.includes(day.value) ? "primary" : "secondary"}
49+
className={`flex-1 rounded-none ${value.includes(day.value) ? "text-content-primary bg-surface-tertiary" : "text-content-secondary"}`}
50+
key={day.key}
5251
disabled={isSubmitting || !enabled}
5352
onClick={() => {
5453
if (!value.includes(day.value)) {

site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Button from "@mui/material/Button";
21
import type { TemplateVersion } from "api/typesGenerated";
32
import { ErrorAlert } from "components/Alert/ErrorAlert";
3+
import { Button } from "components/Button/Button";
44
import { Loader } from "components/Loader/Loader";
55
import { Margins } from "components/Margins/Margins";
66
import {
@@ -49,21 +49,18 @@ export const TemplateVersionPageView: FC<TemplateVersionPageViewProps> = ({
4949
actions={
5050
<>
5151
{createWorkspaceUrl && (
52-
<Button
53-
variant="contained"
54-
startIcon={<PlusIcon />}
55-
component={RouterLink}
56-
to={createWorkspaceUrl}
57-
>
58-
Create workspace
52+
<Button asChild>
53+
<RouterLink to={createWorkspaceUrl}>
54+
<PlusIcon />
55+
Create workspace
56+
</RouterLink>
5957
</Button>
6058
)}
61-
<Button
62-
startIcon={<EditIcon className="size-icon-xs" />}
63-
component={RouterLink}
64-
to={`${templateLink}/versions/${versionName}/edit`}
65-
>
66-
Edit
59+
<Button variant="outline" asChild>
60+
<RouterLink to={`${templateLink}/versions/${versionName}/edit`}>
61+
<EditIcon />
62+
Edit
63+
</RouterLink>
6764
</Button>
6865
</>
6966
}

site/src/pages/UserSettingsPage/OAuth2ProviderPage/OAuth2ProviderPageView.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import Button from "@mui/material/Button";
21
import Table from "@mui/material/Table";
32
import TableBody from "@mui/material/TableBody";
43
import TableCell from "@mui/material/TableCell";
@@ -8,6 +7,7 @@ import TableRow from "@mui/material/TableRow";
87
import type * as TypesGen from "api/typesGenerated";
98
import { ErrorAlert } from "components/Alert/ErrorAlert";
109
import { Avatar } from "components/Avatar/Avatar";
10+
import { Button } from "components/Button/Button";
1111
import { Stack } from "components/Stack/Stack";
1212
import { TableLoader } from "components/TableLoader/TableLoader";
1313
import type { FC } from "react";
@@ -74,12 +74,7 @@ const OAuth2AppRow: FC<OAuth2AppRowProps> = ({ app, revoke }) => {
7474
</TableCell>
7575

7676
<TableCell>
77-
<Button
78-
variant="contained"
79-
size="small"
80-
color="error"
81-
onClick={() => revoke(app)}
82-
>
77+
<Button size="sm" variant="destructive" onClick={() => revoke(app)}>
8378
Revoke&hellip;
8479
</Button>
8580
</TableCell>

site/src/pages/UserSettingsPage/SSHKeysPage/SSHKeysPageView.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { useTheme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import CircularProgress from "@mui/material/CircularProgress";
43
import type { GitSSHKey } from "api/typesGenerated";
54
import { ErrorAlert } from "components/Alert/ErrorAlert";
5+
import { Button } from "components/Button/Button";
66
import { CodeExample } from "components/CodeExample/CodeExample";
77
import { Stack } from "components/Stack/Stack";
88
import type { FC } from "react";
@@ -63,7 +63,11 @@ export const SSHKeysPageView: FC<SSHKeysPageViewProps> = ({
6363
</p>
6464
<CodeExample secret={false} code={sshKey.public_key.trim()} />
6565
<div>
66-
<Button onClick={onRegenerateClick} data-testid="regenerate">
66+
<Button
67+
onClick={onRegenerateClick}
68+
data-testid="regenerate"
69+
variant="outline"
70+
>
6771
Regenerate&hellip;
6872
</Button>
6973
</div>

site/src/pages/UserSettingsPage/SecurityPage/SingleSignOnSection.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useTheme } from "@emotion/react";
22
import GitHubIcon from "@mui/icons-material/GitHub";
3-
import Button from "@mui/material/Button";
43
import Link from "@mui/material/Link";
54
import TextField from "@mui/material/TextField";
65
import { API } from "api/api";
@@ -11,6 +10,7 @@ import type {
1110
OIDCAuthMethod,
1211
UserLoginType,
1312
} from "api/typesGenerated";
13+
import { Button } from "components/Button/Button";
1414
import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog";
1515
import { EmptyState } from "components/EmptyState/EmptyState";
1616
import { Stack } from "components/Stack/Stack";
@@ -149,24 +149,26 @@ export const SingleSignOnSection: FC<SingleSignOnSectionProps> = ({
149149
<>
150150
{authMethods.github.enabled && (
151151
<Button
152-
size="large"
153-
fullWidth
152+
variant="outline"
153+
size="lg"
154+
className="w-full"
154155
disabled={isUpdating}
155-
startIcon={<GitHubIcon css={{ width: 16, height: 16 }} />}
156156
onClick={() => openConfirmation("github")}
157157
>
158+
<GitHubIcon />
158159
GitHub
159160
</Button>
160161
)}
161162

162163
{authMethods.oidc.enabled && (
163164
<Button
164-
size="large"
165-
fullWidth
165+
variant="outline"
166+
size="lg"
167+
className="w-full"
166168
disabled={isUpdating}
167-
startIcon={<OIDCIcon oidcAuth={authMethods.oidc} />}
168169
onClick={() => openConfirmation("oidc")}
169170
>
171+
<OIDCIcon oidcAuth={authMethods.oidc} />
170172
{getOIDCLabel(authMethods.oidc)}
171173
</Button>
172174
)}
@@ -229,7 +231,7 @@ interface OIDCIconProps {
229231

230232
const OIDCIcon: FC<OIDCIconProps> = ({ oidcAuth }) => {
231233
if (!oidcAuth.iconUrl) {
232-
return <KeyIcon className="size-4" />;
234+
return <KeyIcon />;
233235
}
234236

235237
return (

site/src/pages/UserSettingsPage/TokensPage/TokensPage.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { css, type Interpolation, type Theme } from "@emotion/react";
2-
import Button from "@mui/material/Button";
32
import type { APIKeyWithOwner } from "api/typesGenerated";
3+
import { Button } from "components/Button/Button";
44
import { Stack } from "components/Stack/Stack";
55
import { PlusIcon } from "lucide-react";
66
import { type FC, useState } from "react";
@@ -65,12 +65,11 @@ const TokensPage: FC = () => {
6565

6666
const TokenActions: FC = () => (
6767
<Stack direction="row" justifyContent="end" css={{ marginBottom: 8 }}>
68-
<Button
69-
startIcon={<PlusIcon className="size-icon-sm" />}
70-
component={RouterLink}
71-
to="new"
72-
>
73-
Add token
68+
<Button asChild variant="outline">
69+
<RouterLink to="new">
70+
<PlusIcon />
71+
Add token
72+
</RouterLink>
7473
</Button>
7574
</Stack>
7675
);

site/src/pages/WorkspaceSettingsPage/WorkspaceParametersPage/WorkspaceParametersPage.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import Button from "@mui/material/Button";
21
import { API } from "api/api";
32
import { isApiValidationError } from "api/errors";
43
import { checkAuthorization } from "api/queries/authCheck";
54
import type { Workspace, WorkspaceBuildParameter } from "api/typesGenerated";
65
import { ErrorAlert } from "components/Alert/ErrorAlert";
6+
import { Button } from "components/Button/Button";
77
import { EmptyState } from "components/EmptyState/EmptyState";
88
import { Loader } from "components/Loader/Loader";
99
import { ExternalLinkIcon } from "lucide-react";
@@ -163,15 +163,15 @@ export const WorkspaceParametersPageView: FC<
163163
<EmptyState
164164
message="This workspace has no parameters"
165165
cta={
166-
<Button
167-
component="a"
168-
href={docs("/admin/templates/extending-templates/parameters")}
169-
startIcon={<ExternalLinkIcon className="size-icon-xs" />}
170-
variant="contained"
171-
target="_blank"
172-
rel="noreferrer"
173-
>
174-
Learn more about parameters
166+
<Button asChild>
167+
<a
168+
href={docs("/admin/templates/extending-templates/parameters")}
169+
target="_blank"
170+
rel="noreferrer"
171+
>
172+
<ExternalLinkIcon className="size-icon-xs" />
173+
Learn more about parameters
174+
</a>
175175
</Button>
176176
}
177177
css={(theme) => ({

0 commit comments

Comments
 (0)