Skip to content

Commit b91f094

Browse files
author
Constance
authored
[Emotion] Convert EuiHealth (#5832)
* Convert Sass to CSS-in-JS * Remove Sass imports * Update component file and tests * Remove --textSize CSS classes (not used by in Kibana except for snapshots) * Update snapshots * Add changelog * [PR feedback] Restore TEXT_SIZES
1 parent f9c3a04 commit b91f094

File tree

8 files changed

+63
-55
lines changed

8 files changed

+63
-55
lines changed

src/components/health/__snapshots__/health.test.tsx.snap

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
exports[`EuiHealth is rendered 1`] = `
44
<div
55
aria-label="aria-label"
6-
class="euiHealth euiHealth--textSizeS testClass1 testClass2"
6+
class="euiHealth testClass1 testClass2 css-qn8ayk-euiHealth-s"
77
data-test-subj="test subject string"
88
>
99
<div
@@ -25,7 +25,7 @@ exports[`EuiHealth is rendered 1`] = `
2525

2626
exports[`EuiHealth props color #000000 is rendered 1`] = `
2727
<div
28-
class="euiHealth euiHealth--textSizeS"
28+
class="euiHealth css-qn8ayk-euiHealth-s"
2929
>
3030
<div
3131
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -47,7 +47,7 @@ exports[`EuiHealth props color #000000 is rendered 1`] = `
4747

4848
exports[`EuiHealth props color accent is rendered 1`] = `
4949
<div
50-
class="euiHealth euiHealth--textSizeS"
50+
class="euiHealth css-qn8ayk-euiHealth-s"
5151
>
5252
<div
5353
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -69,7 +69,7 @@ exports[`EuiHealth props color accent is rendered 1`] = `
6969

7070
exports[`EuiHealth props color danger is rendered 1`] = `
7171
<div
72-
class="euiHealth euiHealth--textSizeS"
72+
class="euiHealth css-qn8ayk-euiHealth-s"
7373
>
7474
<div
7575
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -91,7 +91,7 @@ exports[`EuiHealth props color danger is rendered 1`] = `
9191

9292
exports[`EuiHealth props color default is rendered 1`] = `
9393
<div
94-
class="euiHealth euiHealth--textSizeS"
94+
class="euiHealth css-qn8ayk-euiHealth-s"
9595
>
9696
<div
9797
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -113,7 +113,7 @@ exports[`EuiHealth props color default is rendered 1`] = `
113113

114114
exports[`EuiHealth props color ghost is rendered 1`] = `
115115
<div
116-
class="euiHealth euiHealth--textSizeS"
116+
class="euiHealth css-qn8ayk-euiHealth-s"
117117
>
118118
<div
119119
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -135,7 +135,7 @@ exports[`EuiHealth props color ghost is rendered 1`] = `
135135

136136
exports[`EuiHealth props color inherit is rendered 1`] = `
137137
<div
138-
class="euiHealth euiHealth--textSizeS"
138+
class="euiHealth css-qn8ayk-euiHealth-s"
139139
>
140140
<div
141141
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -157,7 +157,7 @@ exports[`EuiHealth props color inherit is rendered 1`] = `
157157

158158
exports[`EuiHealth props color primary is rendered 1`] = `
159159
<div
160-
class="euiHealth euiHealth--textSizeS"
160+
class="euiHealth css-qn8ayk-euiHealth-s"
161161
>
162162
<div
163163
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -179,7 +179,7 @@ exports[`EuiHealth props color primary is rendered 1`] = `
179179

180180
exports[`EuiHealth props color subdued is rendered 1`] = `
181181
<div
182-
class="euiHealth euiHealth--textSizeS"
182+
class="euiHealth css-qn8ayk-euiHealth-s"
183183
>
184184
<div
185185
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -201,7 +201,7 @@ exports[`EuiHealth props color subdued is rendered 1`] = `
201201

202202
exports[`EuiHealth props color success is rendered 1`] = `
203203
<div
204-
class="euiHealth euiHealth--textSizeS"
204+
class="euiHealth css-qn8ayk-euiHealth-s"
205205
>
206206
<div
207207
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -223,7 +223,7 @@ exports[`EuiHealth props color success is rendered 1`] = `
223223

224224
exports[`EuiHealth props color text is rendered 1`] = `
225225
<div
226-
class="euiHealth euiHealth--textSizeS"
226+
class="euiHealth css-qn8ayk-euiHealth-s"
227227
>
228228
<div
229229
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -245,7 +245,7 @@ exports[`EuiHealth props color text is rendered 1`] = `
245245

246246
exports[`EuiHealth props color warning is rendered 1`] = `
247247
<div
248-
class="euiHealth euiHealth--textSizeS"
248+
class="euiHealth css-qn8ayk-euiHealth-s"
249249
>
250250
<div
251251
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -267,7 +267,7 @@ exports[`EuiHealth props color warning is rendered 1`] = `
267267

268268
exports[`EuiHealth props textSize inherit is rendered 1`] = `
269269
<div
270-
class="euiHealth euiHealth--textSizeInherit"
270+
class="euiHealth css-1eqikqq-euiHealth-inherit"
271271
>
272272
<div
273273
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -289,7 +289,7 @@ exports[`EuiHealth props textSize inherit is rendered 1`] = `
289289

290290
exports[`EuiHealth props textSize m is rendered 1`] = `
291291
<div
292-
class="euiHealth euiHealth--textSizeM"
292+
class="euiHealth css-28ntf-euiHealth-m"
293293
>
294294
<div
295295
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -311,7 +311,7 @@ exports[`EuiHealth props textSize m is rendered 1`] = `
311311

312312
exports[`EuiHealth props textSize s is rendered 1`] = `
313313
<div
314-
class="euiHealth euiHealth--textSizeS"
314+
class="euiHealth css-qn8ayk-euiHealth-s"
315315
>
316316
<div
317317
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"
@@ -333,7 +333,7 @@ exports[`EuiHealth props textSize s is rendered 1`] = `
333333

334334
exports[`EuiHealth props textSize xs is rendered 1`] = `
335335
<div
336-
class="euiHealth euiHealth--textSizeXS"
336+
class="euiHealth css-ft4ki3-euiHealth-xs"
337337
>
338338
<div
339339
class="euiFlexGroup euiFlexGroup--gutterExtraSmall euiFlexGroup--alignItemsCenter euiFlexGroup--directionRow"

src/components/health/_health.scss

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/components/health/_index.scss

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the Elastic License
4+
* 2.0 and the Server Side Public License, v 1; you may not use this file except
5+
* in compliance with, at your election, the Elastic License 2.0 or the Server
6+
* Side Public License, v 1.
7+
*/
8+
9+
import { css } from '@emotion/react';
10+
import { UseEuiTheme } from '../../services';
11+
import { euiFontSize } from '../../global_styling';
12+
13+
export const euiHealthStyles = ({ euiTheme }: UseEuiTheme) => ({
14+
euiHealth: css`
15+
display: inline-block;
16+
`,
17+
// Text sizes
18+
xs: css`
19+
${euiFontSize('xs', euiTheme)}
20+
`,
21+
s: css`
22+
${euiFontSize('s', euiTheme)}
23+
`,
24+
m: css`
25+
${euiFontSize('m', euiTheme)}
26+
`,
27+
inherit: css`
28+
font-size: inherit;
29+
`,
30+
});

src/components/health/health.test.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
import React from 'react';
1010
import { render } from 'enzyme';
1111
import { requiredProps } from '../../test/required_props';
12-
import { TEXT_SIZES, EuiHealth } from './health';
12+
import { shouldRenderCustomStyles } from '../../test/internal';
1313
import { COLORS } from '../icon/icon';
14+
import { EuiHealth, TEXT_SIZES } from './health';
1415

1516
describe('EuiHealth', () => {
1617
test('is rendered', () => {
@@ -19,9 +20,11 @@ describe('EuiHealth', () => {
1920
expect(component).toMatchSnapshot();
2021
});
2122

23+
shouldRenderCustomStyles(<EuiHealth />);
24+
2225
describe('props', () => {
2326
describe('textSize', () => {
24-
TEXT_SIZES.forEach((textSize) => {
27+
TEXT_SIZES.forEach((textSize: any) => {
2528
test(`${textSize} is rendered`, () => {
2629
const component = render(
2730
<EuiHealth textSize={textSize} color="success" />

src/components/health/health.tsx

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,14 @@
88

99
import React, { FunctionComponent, HTMLAttributes } from 'react';
1010
import classNames from 'classnames';
11-
import { CommonProps, keysOf } from '../common';
11+
import { useEuiTheme } from '../../services';
12+
import { euiHealthStyles } from './health.styles';
1213

14+
import { CommonProps } from '../common';
1315
import { EuiIcon, IconColor } from '../icon';
14-
1516
import { EuiFlexGroup, EuiFlexItem } from '../flex';
1617

17-
const sizeToClassNameMap = {
18-
xs: 'euiHealth--textSizeXS',
19-
s: 'euiHealth--textSizeS',
20-
m: 'euiHealth--textSizeM',
21-
inherit: 'euiHealth--textSizeInherit',
22-
};
23-
24-
export const TEXT_SIZES = keysOf(sizeToClassNameMap);
18+
export const TEXT_SIZES = ['xs', 's', 'm', 'inherit'] as const;
2519

2620
export type EuiHealthProps = CommonProps &
2721
Omit<HTMLAttributes<HTMLDivElement>, 'color'> & {
@@ -45,14 +39,13 @@ export const EuiHealth: FunctionComponent<EuiHealthProps> = ({
4539
textSize = 's',
4640
...rest
4741
}) => {
48-
const classes = classNames(
49-
'euiHealth',
50-
textSize ? sizeToClassNameMap[textSize] : null,
51-
className
52-
);
42+
const euiTheme = useEuiTheme();
43+
const styles = euiHealthStyles(euiTheme);
44+
const cssStyles = [styles.euiHealth, styles[textSize]];
45+
const classes = classNames('euiHealth', className);
5346

5447
return (
55-
<div className={classes} {...rest}>
48+
<div css={cssStyles} className={classes} {...rest}>
5649
<EuiFlexGroup gutterSize="xs" alignItems="center" responsive={false}>
5750
<EuiFlexItem grow={false}>
5851
<EuiIcon type="dot" color={color} />

src/components/index.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
@import 'flyout/index';
3030
@import 'form/index';
3131
@import 'header/index';
32-
@import 'health/index';
3332
@import 'icon/index';
3433
@import 'image/index';
3534
@import 'key_pad_menu/index';

upcoming_changelogs/5832.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
**CSS-in-JS conversions**
2+
3+
- Converted `EuiHealth` to Emotion

0 commit comments

Comments
 (0)