Skip to content

Commit 50c1322

Browse files
authored
Merge pull request #9060 from marmelab/9050-fix-delete-button-style
Fix delete button style
2 parents d0355cb + ed468a5 commit 50c1322

3 files changed

Lines changed: 69 additions & 40 deletions

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import { colors, createTheme } from '@mui/material';
2+
import polyglotI18nProvider from 'ra-i18n-polyglot';
3+
import englishMessages from 'ra-language-english';
4+
import frenchMessages from 'ra-language-french';
5+
import * as React from 'react';
6+
import { AdminContext } from '../AdminContext';
7+
import { DeleteButton } from './DeleteButton';
8+
9+
const theme = createTheme({
10+
palette: {
11+
primary: {
12+
light: colors.orange[100],
13+
main: colors.orange[500],
14+
contrastText: colors.grey[50],
15+
},
16+
error: {
17+
main: colors.orange[500],
18+
},
19+
},
20+
});
21+
22+
const i18nProvider = polyglotI18nProvider(
23+
locale => (locale === 'fr' ? frenchMessages : englishMessages),
24+
'en'
25+
);
26+
27+
export default { title: 'ra-ui-materialui/button/DeleteButton' };
28+
29+
export const Basic = () => (
30+
<AdminContext>
31+
<DeleteButton label="Delete" record={{ id: 1 }} />
32+
</AdminContext>
33+
);
34+
35+
export const Pessimistic = () => (
36+
<AdminContext i18nProvider={i18nProvider}>
37+
<DeleteButton
38+
mutationMode="pessimistic"
39+
record={{ id: 1 }}
40+
label="Delete"
41+
resource="post"
42+
/>
43+
</AdminContext>
44+
);
45+
46+
export const WithUserDefinedPalette = () => (
47+
<AdminContext theme={theme}>
48+
<DeleteButton label="Delete" record={{ id: 1 }} />
49+
</AdminContext>
50+
);
51+
52+
export const ContainedWithUserDefinedPalette = () => (
53+
<AdminContext theme={theme}>
54+
<DeleteButton
55+
variant="contained"
56+
color="primary"
57+
label="Delete"
58+
record={{ id: 1 }}
59+
/>
60+
</AdminContext>
61+
);

packages/ra-ui-materialui/src/button/DeleteWithConfirmButton.tsx

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import React, { Fragment, ReactEventHandler, ReactElement } from 'react';
2-
import { styled } from '@mui/material/styles';
32
import PropTypes from 'prop-types';
4-
import { alpha } from '@mui/material/styles';
53
import ActionDelete from '@mui/icons-material/Delete';
64
import clsx from 'clsx';
75
import inflection from 'inflection';
@@ -34,6 +32,7 @@ export const DeleteWithConfirmButton = <RecordType extends RaRecord = any>(
3432
redirect = 'list',
3533
translateOptions = {},
3634
mutationOptions,
35+
color = 'error',
3736
...rest
3837
} = props;
3938
const translate = useTranslate();
@@ -57,15 +56,16 @@ export const DeleteWithConfirmButton = <RecordType extends RaRecord = any>(
5756

5857
return (
5958
<Fragment>
60-
<StyledButton
59+
<Button
6160
onClick={handleDialogOpen}
6261
label={label}
6362
className={clsx('ra-delete-button', className)}
6463
key="button"
64+
color={color}
6565
{...rest}
6666
>
6767
{icon}
68-
</StyledButton>
68+
</Button>
6969
<Confirm
7070
isOpen={open}
7171
loading={isLoading}
@@ -131,19 +131,3 @@ DeleteWithConfirmButton.propTypes = {
131131
icon: PropTypes.element,
132132
translateOptions: PropTypes.object,
133133
};
134-
135-
const PREFIX = 'RaDeleteWithConfirmButton';
136-
137-
const StyledButton = styled(Button, {
138-
name: PREFIX,
139-
overridesResolver: (props, styles) => styles.root,
140-
})(({ theme }) => ({
141-
color: theme.palette.error.main,
142-
'&:hover': {
143-
backgroundColor: alpha(theme.palette.error.main, 0.12),
144-
// Reset on mouse devices
145-
'@media (hover: none)': {
146-
backgroundColor: 'transparent',
147-
},
148-
},
149-
}));

packages/ra-ui-materialui/src/button/DeleteWithUndoButton.tsx

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import * as React from 'react';
2-
import { styled } from '@mui/material/styles';
32
import { ReactElement, ReactEventHandler } from 'react';
43
import PropTypes from 'prop-types';
5-
import { alpha } from '@mui/material/styles';
64
import ActionDelete from '@mui/icons-material/Delete';
75
import clsx from 'clsx';
86
import { UseMutationOptions } from 'react-query';
@@ -27,6 +25,7 @@ export const DeleteWithUndoButton = <RecordType extends RaRecord = any>(
2725
onClick,
2826
redirect = 'list',
2927
mutationOptions,
28+
color = 'error',
3029
...rest
3130
} = props;
3231

@@ -41,16 +40,17 @@ export const DeleteWithUndoButton = <RecordType extends RaRecord = any>(
4140
});
4241

4342
return (
44-
<StyledButton
43+
<Button
4544
onClick={handleDelete}
4645
disabled={isLoading}
4746
label={label}
4847
className={clsx('ra-delete-button', className)}
4948
key="button"
49+
color={color}
5050
{...rest}
5151
>
5252
{icon}
53-
</StyledButton>
53+
</Button>
5454
);
5555
};
5656

@@ -84,19 +84,3 @@ DeleteWithUndoButton.propTypes = {
8484
resource: PropTypes.string,
8585
icon: PropTypes.element,
8686
};
87-
88-
const PREFIX = 'RaDeleteWithUndoButton';
89-
90-
const StyledButton = styled(Button, {
91-
name: PREFIX,
92-
overridesResolver: (props, styles) => styles.root,
93-
})(({ theme }) => ({
94-
color: theme.palette.error.main,
95-
'&:hover': {
96-
backgroundColor: alpha(theme.palette.error.main, 0.12),
97-
// Reset on mouse devices
98-
'@media (hover: none)': {
99-
backgroundColor: 'transparent',
100-
},
101-
},
102-
}));

0 commit comments

Comments
 (0)