Skip to content

Commit 18d43b4

Browse files
[badge] Refactor variant styles generation (#47742)
Signed-off-by: sai chand <60743144+sai6855@users.noreply.github.com> Co-authored-by: Zeeshan Tamboli <zeeshan.tamboli@gmail.com>
1 parent 49f0c5c commit 18d43b4

File tree

1 file changed

+19
-120
lines changed

1 file changed

+19
-120
lines changed

packages/mui-material/src/Badge/Badge.js

Lines changed: 19 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -108,126 +108,6 @@ const BadgeBadge = styled('span', {
108108
padding: 0,
109109
},
110110
},
111-
{
112-
props: ({ ownerState }) =>
113-
ownerState.anchorOrigin.vertical === 'top' &&
114-
ownerState.anchorOrigin.horizontal === 'right' &&
115-
ownerState.overlap === 'rectangular',
116-
style: {
117-
top: 0,
118-
right: 0,
119-
transform: 'scale(1) translate(50%, -50%)',
120-
transformOrigin: '100% 0%',
121-
[`&.${badgeClasses.invisible}`]: {
122-
transform: 'scale(0) translate(50%, -50%)',
123-
},
124-
},
125-
},
126-
{
127-
props: ({ ownerState }) =>
128-
ownerState.anchorOrigin.vertical === 'bottom' &&
129-
ownerState.anchorOrigin.horizontal === 'right' &&
130-
ownerState.overlap === 'rectangular',
131-
style: {
132-
bottom: 0,
133-
right: 0,
134-
transform: 'scale(1) translate(50%, 50%)',
135-
transformOrigin: '100% 100%',
136-
[`&.${badgeClasses.invisible}`]: {
137-
transform: 'scale(0) translate(50%, 50%)',
138-
},
139-
},
140-
},
141-
{
142-
props: ({ ownerState }) =>
143-
ownerState.anchorOrigin.vertical === 'top' &&
144-
ownerState.anchorOrigin.horizontal === 'left' &&
145-
ownerState.overlap === 'rectangular',
146-
style: {
147-
top: 0,
148-
left: 0,
149-
transform: 'scale(1) translate(-50%, -50%)',
150-
transformOrigin: '0% 0%',
151-
[`&.${badgeClasses.invisible}`]: {
152-
transform: 'scale(0) translate(-50%, -50%)',
153-
},
154-
},
155-
},
156-
{
157-
props: ({ ownerState }) =>
158-
ownerState.anchorOrigin.vertical === 'bottom' &&
159-
ownerState.anchorOrigin.horizontal === 'left' &&
160-
ownerState.overlap === 'rectangular',
161-
style: {
162-
bottom: 0,
163-
left: 0,
164-
transform: 'scale(1) translate(-50%, 50%)',
165-
transformOrigin: '0% 100%',
166-
[`&.${badgeClasses.invisible}`]: {
167-
transform: 'scale(0) translate(-50%, 50%)',
168-
},
169-
},
170-
},
171-
{
172-
props: ({ ownerState }) =>
173-
ownerState.anchorOrigin.vertical === 'top' &&
174-
ownerState.anchorOrigin.horizontal === 'right' &&
175-
ownerState.overlap === 'circular',
176-
style: {
177-
top: '14%',
178-
right: '14%',
179-
transform: 'scale(1) translate(50%, -50%)',
180-
transformOrigin: '100% 0%',
181-
[`&.${badgeClasses.invisible}`]: {
182-
transform: 'scale(0) translate(50%, -50%)',
183-
},
184-
},
185-
},
186-
{
187-
props: ({ ownerState }) =>
188-
ownerState.anchorOrigin.vertical === 'bottom' &&
189-
ownerState.anchorOrigin.horizontal === 'right' &&
190-
ownerState.overlap === 'circular',
191-
style: {
192-
bottom: '14%',
193-
right: '14%',
194-
transform: 'scale(1) translate(50%, 50%)',
195-
transformOrigin: '100% 100%',
196-
[`&.${badgeClasses.invisible}`]: {
197-
transform: 'scale(0) translate(50%, 50%)',
198-
},
199-
},
200-
},
201-
{
202-
props: ({ ownerState }) =>
203-
ownerState.anchorOrigin.vertical === 'top' &&
204-
ownerState.anchorOrigin.horizontal === 'left' &&
205-
ownerState.overlap === 'circular',
206-
style: {
207-
top: '14%',
208-
left: '14%',
209-
transform: 'scale(1) translate(-50%, -50%)',
210-
transformOrigin: '0% 0%',
211-
[`&.${badgeClasses.invisible}`]: {
212-
transform: 'scale(0) translate(-50%, -50%)',
213-
},
214-
},
215-
},
216-
{
217-
props: ({ ownerState }) =>
218-
ownerState.anchorOrigin.vertical === 'bottom' &&
219-
ownerState.anchorOrigin.horizontal === 'left' &&
220-
ownerState.overlap === 'circular',
221-
style: {
222-
bottom: '14%',
223-
left: '14%',
224-
transform: 'scale(1) translate(-50%, 50%)',
225-
transformOrigin: '0% 100%',
226-
[`&.${badgeClasses.invisible}`]: {
227-
transform: 'scale(0) translate(-50%, 50%)',
228-
},
229-
},
230-
},
231111
{
232112
props: { invisible: true },
233113
style: {
@@ -237,6 +117,25 @@ const BadgeBadge = styled('span', {
237117
}),
238118
},
239119
},
120+
{
121+
style: ({ ownerState }) => {
122+
const { vertical, horizontal } = ownerState.anchorOrigin;
123+
const offset = ownerState.overlap === 'circular' ? '14%' : 0;
124+
return {
125+
'--Badge-translateX': horizontal === 'right' ? '50%' : '-50%',
126+
'--Badge-translateY': vertical === 'top' ? '-50%' : '50%',
127+
top: vertical === 'top' ? offset : 'initial',
128+
bottom: vertical === 'bottom' ? offset : 'initial',
129+
right: horizontal === 'right' ? offset : 'initial',
130+
left: horizontal === 'left' ? offset : 'initial',
131+
transform: 'scale(1) translate(var(--Badge-translateX), var(--Badge-translateY))',
132+
transformOrigin: `${horizontal === 'right' ? '100%' : '0%'} ${vertical === 'top' ? '0%' : '100%'}`,
133+
[`&.${badgeClasses.invisible}`]: {
134+
transform: 'scale(0) translate(var(--Badge-translateX), var(--Badge-translateY))',
135+
},
136+
};
137+
},
138+
},
240139
],
241140
})),
242141
);

0 commit comments

Comments
 (0)