Skip to content

Commit c452a0e

Browse files
refactor: [M3-8642] - Migrate Button to UI package (#11250)
* Move Button to UI package * Added changeset: Migrate `Button` component and styled variants * Tweaks: fix cannibalistic imports, tests and more * PR feedback @coliu-akamai: consolidate imports, fix comment
1 parent 8492246 commit c452a0e

File tree

201 files changed

+491
-591
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

201 files changed

+491
-591
lines changed

packages/manager/src/components/AccessPanel/AccessPanel.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Paper } from '@linode/ui';
1+
import { Divider, Paper } from '@linode/ui';
22
import * as React from 'react';
33
import { makeStyles } from 'tss-react/mui';
44

@@ -21,7 +21,6 @@ import { Typography } from 'src/components/Typography';
2121
import { useRegionsQuery } from 'src/queries/regions/regions';
2222
import { doesRegionSupportFeature } from 'src/utilities/doesRegionSupportFeature';
2323

24-
import { Divider } from '@linode/ui';
2524
import UserSSHKeyPanel from './UserSSHKeyPanel';
2625

2726
import type { Theme } from '@mui/material/styles';

packages/manager/src/components/AccessPanel/UserSSHKeyPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
import { Button } from '@linode/ui';
12
import { useTheme } from '@mui/material/styles';
23
import * as React from 'react';
34
import { makeStyles } from 'tss-react/mui';
45

5-
import { Button } from 'src/components/Button/Button';
66
import { Checkbox } from 'src/components/Checkbox';
77
import { Table } from 'src/components/Table';
88
import { TableBody } from 'src/components/TableBody';

packages/manager/src/components/AccountActivation/AccountActivationLanding.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { StyledLinkButton } from '@linode/ui';
12
import Warning from '@mui/icons-material/CheckCircle';
23
import { createLazyRoute } from '@tanstack/react-router';
34
import * as React from 'react';
@@ -7,8 +8,6 @@ import { ErrorState } from 'src/components/ErrorState/ErrorState';
78
import { Typography } from 'src/components/Typography';
89
import { SupportTicketDialog } from 'src/features/Support/SupportTickets/SupportTicketDialog';
910

10-
import { StyledLinkButton } from '../Button/StyledLinkButton';
11-
1211
import type { AttachmentError } from 'src/features/Support/SupportTicketDetail/SupportTicketDetail';
1312

1413
const AccountActivationLanding = () => {

packages/manager/src/components/ActionsPanel/ActionsPanel.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
import { Box } from '@linode/ui';
1+
import { Box, Button } from '@linode/ui';
22
import { styled } from '@mui/material/styles';
33
import * as React from 'react';
44
import { useStyles } from 'tss-react/mui';
55

6-
import { Button } from 'src/components/Button/Button';
7-
8-
import type { BoxProps } from '@linode/ui';
9-
import type { ButtonProps } from 'src/components/Button/Button';
6+
import type { BoxProps, ButtonProps } from '@linode/ui';
107

118
interface ActionButtonsProps extends ButtonProps {
129
'data-node-idx'?: number;

packages/manager/src/components/AkamaiBanner/AkamaiBanner.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import { Button } from '@linode/ui';
12
import userEvent from '@testing-library/user-event';
23
import React from 'react';
34

45
import { renderWithTheme } from 'src/utilities/testHelpers';
56

6-
import { Button } from '../Button/Button';
77
import { AkamaiBanner } from './AkamaiBanner';
88

99
import type { Flags } from 'src/featureFlags';

packages/manager/src/components/CheckoutBar/styles.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1+
import { Button } from '@linode/ui';
12
import { styled, useTheme } from '@mui/material/styles';
23

3-
import { Button } from 'src/components/Button/Button';
4-
54
const StyledButton = styled(Button)(({ theme }) => ({
65
marginTop: 18,
76
[theme.breakpoints.up('lg')]: {

packages/manager/src/components/DismissibleBanner/DismissibleBanner.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import { Button } from '@linode/ui';
12
import * as React from 'react';
23

3-
import { Button } from 'src/components/Button/Button';
44
import { Link } from 'src/components/Link';
55
import { Typography } from 'src/components/Typography';
66

packages/manager/src/components/DismissibleBanner/DismissibleBanner.styles.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
import { Notice } from '@linode/ui';
1+
import { Notice, StyledLinkButton } from '@linode/ui';
22
import { styled } from '@mui/material/styles';
33

4-
import { StyledLinkButton } from '../Button/StyledLinkButton';
5-
64
export const StyledNotice = styled(Notice, { label: 'StyledNotice' })(
75
({ theme }) => ({
86
'&&': {

packages/manager/src/components/DismissibleBanner/DismissibleBanner.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { Button } from '@linode/ui';
12
import { fireEvent } from '@testing-library/react';
23
import * as React from 'react';
34

4-
import { Button } from 'src/components/Button/Button';
55
import { Typography } from 'src/components/Typography';
66
import { renderWithTheme } from 'src/utilities/testHelpers';
77

packages/manager/src/components/DownloadCSV/DownloadCSV.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1+
import { Button, StyledLinkButton } from '@linode/ui';
12
import * as React from 'react';
23
import { CSVLink } from 'react-csv';
34

45
import DownloadIcon from 'src/assets/icons/lke-download.svg';
5-
import { Button } from 'src/components/Button/Button';
6-
import { StyledLinkButton } from 'src/components/Button/StyledLinkButton';
76

7+
import type { ButtonType } from '@linode/ui';
88
import type { SxProps, Theme } from '@mui/material/styles';
9-
import type { ButtonType } from 'src/components/Button/Button';
109

1110
interface DownloadCSVProps {
1211
buttonType?: 'styledLink' | ButtonType;

packages/manager/src/components/Drawer.stories.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1+
import { Button } from '@linode/ui';
12
import { action } from '@storybook/addon-actions';
2-
import { Meta, StoryObj } from '@storybook/react';
33
import React from 'react';
44

55
import { ActionsPanel } from './ActionsPanel/ActionsPanel';
6-
import { Button } from './Button/Button';
76
import { Drawer } from './Drawer';
87
import { TextField } from './TextField';
98
import { Typography } from './Typography';
109

10+
import type { Meta, StoryObj } from '@storybook/react';
11+
1112
const meta: Meta<typeof Drawer> = {
1213
component: Drawer,
1314
title: 'Components/Drawer',

packages/manager/src/components/EditableEntityLabel/EditableInput.styles.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
import { Box } from '@linode/ui';
1+
import { Box, Button, fadeIn } from '@linode/ui';
22
import Edit from '@mui/icons-material/Edit';
33
import { styled } from '@mui/material/styles';
44

5-
import { Button } from 'src/components/Button/Button';
65
import { TextField } from 'src/components/TextField';
76
import { Typography } from 'src/components/Typography';
8-
import { fadeIn } from 'src/styles/keyframes';
97

108
import type { EditableTextVariant } from './EditableInput';
119
import type { TextFieldProps } from 'src/components/TextField';

packages/manager/src/components/EditableText/EditableText.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1+
import { Button } from '@linode/ui';
12
import Check from '@mui/icons-material/Check';
23
import Close from '@mui/icons-material/Close';
34
import Edit from '@mui/icons-material/Edit';
4-
import { Theme } from '@mui/material/styles';
55
import * as React from 'react';
66
import { Link } from 'react-router-dom';
77
import { makeStyles } from 'tss-react/mui';
88

9-
import { Button } from 'src/components/Button/Button';
109
import { ClickAwayListener } from 'src/components/ClickAwayListener';
1110
import { H1Header } from 'src/components/H1Header/H1Header';
1211

13-
import { TextField, TextFieldProps } from '../TextField';
12+
import { TextField } from '../TextField';
13+
14+
import type { TextFieldProps } from '../TextField';
15+
import type { Theme } from '@mui/material/styles';
1416

1517
const useStyles = makeStyles<void, 'editIcon' | 'icon'>()(
1618
(theme: Theme, _params, classes) => ({

packages/manager/src/components/EnhancedNumberInput/EnhancedNumberInput.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import { Box } from '@linode/ui';
1+
import { Box, Button } from '@linode/ui';
22
import { styled } from '@mui/material/styles';
33
import * as React from 'react';
44

55
import Minus from 'src/assets/icons/LKEminusSign.svg';
66
import Plus from 'src/assets/icons/LKEplusSign.svg';
7-
import { Button } from 'src/components/Button/Button';
87
import { TextField } from 'src/components/TextField';
98

109
const sxTextFieldBase = {

packages/manager/src/components/EntityHeader/EntityHeader.stories.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
import { Box } from '@linode/ui';
1+
import { Box, Button } from '@linode/ui';
22
import { action } from '@storybook/addon-actions';
33
import React from 'react';
44

55
import { EntityHeader } from 'src/components/EntityHeader/EntityHeader';
66
import { Hidden } from 'src/components/Hidden';
77
import { LinodeActionMenu } from 'src/features/Linodes/LinodesLanding/LinodeActionMenu/LinodeActionMenu';
88

9-
import { Button } from '../Button/Button';
109
import { Link } from '../Link';
1110

1211
import type { Meta, StoryObj } from '@storybook/react';

packages/manager/src/components/ErrorState/ErrorState.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import { Button } from '@linode/ui';
12
import ErrorOutline from '@mui/icons-material/ErrorOutline';
23
import { styled, useTheme } from '@mui/material/styles';
34
import Grid from '@mui/material/Unstable_Grid2';
45
import * as React from 'react';
56

6-
import { Button } from 'src/components/Button/Button';
77
import { Typography } from 'src/components/Typography';
88

99
import type { SvgIconProps } from '../SvgIcon';

packages/manager/src/components/GenerateFirewallDialog/GenerateFirewallDialog.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import { Notice, Stack } from '@linode/ui';
1+
import { Button, Notice, Stack } from '@linode/ui';
22
import React from 'react';
33

44
import { useFlags } from 'src/hooks/useFlags';
55
import { replaceNewlinesWithLineBreaks } from 'src/utilities/replaceNewlinesWithLineBreaks';
66

7-
import { Button } from '../Button/Button';
87
import { Dialog } from '../Dialog/Dialog';
98
import { ErrorMessage } from '../ErrorMessage';
109
import { LinearProgress } from '../LinearProgress';

packages/manager/src/components/IconTextLink/IconTextLink.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { Theme } from '@mui/material/styles';
1+
import { Button } from '@linode/ui';
22
import * as React from 'react';
33
import { Link } from 'react-router-dom';
44
import { makeStyles } from 'tss-react/mui';
55

6-
import { Button } from 'src/components/Button/Button';
7-
import { SvgIcon } from 'src/components/SvgIcon';
6+
import type { Theme } from '@mui/material/styles';
7+
import type { SvgIcon } from 'src/components/SvgIcon';
88

99
const useStyles = makeStyles()((theme: Theme) => ({
1010
active: {

packages/manager/src/components/InlineMenuAction/InlineMenuAction.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
/* eslint-disable react/jsx-no-useless-fragment */
2+
import { StyledActionButton } from '@linode/ui';
23
import { styled } from '@mui/material/styles';
34
import * as React from 'react';
45
import { Link } from 'react-router-dom';
56

6-
import { StyledActionButton } from 'src/components/Button/StyledActionButton';
7-
87
interface InlineMenuActionProps {
98
/** Required action text */
109
actionText: string;

packages/manager/src/components/LandingHeader/LandingHeader.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { Button } from '@linode/ui';
12
import { action } from '@storybook/addon-actions';
23
import React from 'react';
34

4-
import { Button } from '../Button/Button';
55
import { LandingHeader } from './LandingHeader';
66

77
import type { Meta, StoryObj } from '@storybook/react';

packages/manager/src/components/LandingHeader/LandingHeader.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import { Theme, styled, useTheme } from '@mui/material/styles';
1+
import { Button } from '@linode/ui';
2+
import { styled, useTheme } from '@mui/material/styles';
23
import Grid from '@mui/material/Unstable_Grid2';
34
import useMediaQuery from '@mui/material/useMediaQuery';
45
import * as React from 'react';
56

67
import BetaFeedbackIcon from 'src/assets/icons/icon-feedback.svg';
7-
import {
8-
Breadcrumb,
9-
BreadcrumbProps,
10-
} from 'src/components/Breadcrumb/Breadcrumb';
11-
import { Button } from 'src/components/Button/Button';
8+
import { Breadcrumb } from 'src/components/Breadcrumb/Breadcrumb';
129
import { DocsLink } from 'src/components/DocsLink/DocsLink';
1310

11+
import type { Theme } from '@mui/material/styles';
12+
import type { BreadcrumbProps } from 'src/components/Breadcrumb/Breadcrumb';
13+
1414
export interface LandingHeaderProps {
1515
analyticsLabel?: string;
1616
betaFeedbackLink?: string;

packages/manager/src/components/LineGraph/LineGraph.styles.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { omittedProps } from '@linode/ui';
1+
import { Button, omittedProps } from '@linode/ui';
22
import { styled } from '@mui/material/styles';
33

4-
import { Button } from 'src/components/Button/Button';
54
import { Table } from 'src/components/Table';
65
import { TableBody } from 'src/components/TableBody';
76
import { TableCell } from 'src/components/TableCell';

packages/manager/src/components/LineGraph/MetricDisplay.styles.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
import { omittedProps } from '@linode/ui';
1+
import { Button, omittedProps } from '@linode/ui';
22
import { styled } from '@mui/material/styles';
33

4-
import { Button } from 'src/components/Button/Button';
54
import { Table } from 'src/components/Table';
65
import { TableCell } from 'src/components/TableCell';
76

packages/manager/src/components/LinkButton.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import { Box, CircleProgress } from '@linode/ui';
1+
import { Box, CircleProgress, StyledLinkButton } from '@linode/ui';
22
import * as React from 'react';
33
import { makeStyles } from 'tss-react/mui';
44

5-
import { StyledLinkButton } from './Button/StyledLinkButton';
6-
75
import type { Theme } from '@mui/material/styles';
86

97
const useStyles = makeStyles()((theme: Theme) => ({

packages/manager/src/components/MaintenanceScreen.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { Stack } from '@linode/ui';
2-
import { Box } from '@linode/ui';
1+
import { Box, Stack } from '@linode/ui';
32
import BuildIcon from '@mui/icons-material/Build';
43
import { useTheme } from '@mui/material/styles';
54
import * as React from 'react';

packages/manager/src/components/MultipleIPInput/MultipleIPInput.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import { InputLabel, Notice } from '@linode/ui';
1+
import { Button, InputLabel, Notice } from '@linode/ui';
22
import Close from '@mui/icons-material/Close';
33
import Grid from '@mui/material/Unstable_Grid2';
44
import * as React from 'react';
55
import { makeStyles } from 'tss-react/mui';
66

7-
import { Button } from 'src/components/Button/Button';
87
import { LinkButton } from 'src/components/LinkButton';
98
import { StyledLinkButtonBox } from 'src/components/SelectFirewallPanel/SelectFirewallPanel';
109
import { TextField } from 'src/components/TextField';

packages/manager/src/components/Placeholder/Placeholder.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1+
import { Button, fadeIn } from '@linode/ui';
12
import { styled, useTheme } from '@mui/material/styles';
23
import * as React from 'react';
34

45
import LinodeIcon from 'src/assets/addnewmenu/linode.svg';
5-
import { Button } from 'src/components/Button/Button';
66
import { H1Header } from 'src/components/H1Header/H1Header';
77
import { Typography } from 'src/components/Typography';
8-
import { fadeIn } from 'src/styles/keyframes';
98

109
import { TransferDisplay } from '../TransferDisplay/TransferDisplay';
1110

12-
import type { ButtonProps } from 'src/components/Button/Button';
11+
import type { ButtonProps } from '@linode/ui';
1312

1413
export interface ExtendedButtonProps extends ButtonProps {
1514
target?: string;

packages/manager/src/components/RemovableSelectionsList/RemovableSelectionsList.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* eslint-disable @typescript-eslint/no-empty-function */
2+
import { Button } from '@linode/ui';
23
import * as React from 'react';
34

4-
import { Button } from '../Button/Button';
55
import { RemovableSelectionsList } from './RemovableSelectionsList';
66

77
import type { RemovableItem } from './RemovableSelectionsList';

packages/manager/src/components/RemovableSelectionsList/RemovableSelectionsList.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import { Button } from '@linode/ui';
12
import { fireEvent } from '@testing-library/react';
23
import * as React from 'react';
34

45
import { renderWithTheme } from 'src/utilities/testHelpers';
56

6-
import { Button } from '../Button/Button';
77
import { RemovableSelectionsList } from './RemovableSelectionsList';
88

99
const defaultList = Array.from({ length: 5 }, (_, index) => {

packages/manager/src/components/RemovableSelectionsList/RemovableSelectionsList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import {
1212
StyledScrollBox,
1313
} from './RemovableSelectionsList.style';
1414

15+
import type { ButtonProps } from '@linode/ui';
1516
import type { SxProps, Theme } from '@mui/material';
16-
import type { ButtonProps } from 'src/components/Button/Button';
1717

1818
export type RemovableItem = {
1919
// The remaining key-value pairs must have their values typed

packages/manager/src/components/ShowMoreExpansion/ShowMoreExpansion.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import { Button } from '@linode/ui';
12
import KeyboardArrowRight from '@mui/icons-material/KeyboardArrowRight';
23
import Collapse from '@mui/material/Collapse';
3-
import { Theme } from '@mui/material/styles';
44
import * as React from 'react';
55
import { makeStyles } from 'tss-react/mui';
66

7-
import { Button } from 'src/components/Button/Button';
7+
import type { Theme } from '@mui/material/styles';
88

99
const useStyles = makeStyles<void, 'caret'>()(
1010
(theme: Theme, _params, classes) => ({

packages/manager/src/components/Snackbar/ToastNotifications.stories.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import { Stack } from '@linode/ui';
1+
import { Button, Stack } from '@linode/ui';
22
import { useSnackbar } from 'notistack';
33
import React from 'react';
44

5-
import { Button } from 'src/components/Button/Button';
65
import { Snackbar } from 'src/components/Snackbar/Snackbar';
76
import { getEventMessage } from 'src/features/Events/utils';
87

0 commit comments

Comments
 (0)