Skip to content

Commit d92e0d1

Browse files
authored
[Ingest Pipelines] migrate from scss to emotion (elastic#234444)
Addresses elastic#205027 • Migrate Ingest Pipelines UI styling from SCSS to Emotion across pipeline editor, processor form, processors tree, and test pipeline components; remove SCSS files and inline styles in TSX. • Fixed related test file ## Screenshots (Before | After) <img width="3271" height="1396" alt="image" src="https://github.com/user-attachments/assets/d2e4c9d9-4964-46f9-8e36-57239af7b4cb" /> <img width="3263" height="1396" alt="image" src="https://github.com/user-attachments/assets/18a3c7cd-115e-48a0-a46c-aec24eea5702" /> <img width="3263" height="1393" alt="image" src="https://github.com/user-attachments/assets/2fa8a0a2-b8fa-4041-bdb6-33bd13a11e54" /> <img width="3266" height="1393" alt="image" src="https://github.com/user-attachments/assets/1302d606-f9f3-4154-ac12-431daf887afa" /> <img width="3265" height="1396" alt="image" src="https://github.com/user-attachments/assets/0a0fe8dd-b84d-4449-9e32-f275dafb8a22" /> <img width="3261" height="1392" alt="image" src="https://github.com/user-attachments/assets/d1e57301-a87e-493c-8431-579e43cb2866" /> <img width="3264" height="1401" alt="image" src="https://github.com/user-attachments/assets/afe80157-0162-47b7-bb1f-6f40a8636303" />
1 parent 8bc3096 commit d92e0d1

File tree

35 files changed

+434
-412
lines changed

35 files changed

+434
-412
lines changed

x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/__jest__/pipeline_processors_editor.test.tsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -355,12 +355,22 @@ describe('Pipeline Editor', () => {
355355
expect(find(`processors>${processorIndex}.inlineTextInputNonEditableText`).text()).toBe(
356356
description
357357
);
358-
expect(
359-
(
360-
find(`processors>${processorIndex}.pipelineProcessorItemDescriptionContainer`).props()
361-
.className as string
362-
).includes('--displayNone')
363-
).toBe(!descriptionVisible);
358+
359+
const descriptionContainer = find(
360+
`processors>${processorIndex}.pipelineProcessorItemDescriptionContainer`
361+
);
362+
363+
expect(descriptionContainer.exists()).toBe(true);
364+
365+
if (descriptionVisible) {
366+
expect(
367+
window.getComputedStyle(descriptionContainer.getDOMNode()).getPropertyValue('display')
368+
).not.toBe('none');
369+
} else {
370+
expect(
371+
window.getComputedStyle(descriptionContainer.getDOMNode()).getPropertyValue('display')
372+
).toBe('none');
373+
}
364374
};
365375

366376
const assertScriptProcessor = createAssertForProcessor('0');

x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/_shared.scss

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

x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/add_processor_button.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import type { FunctionComponent } from 'react';
99
import React from 'react';
1010
import { i18n } from '@kbn/i18n';
1111
import { EuiButtonEmpty, EuiButton } from '@elastic/eui';
12+
import { css } from '@emotion/react';
13+
1214
import { usePipelineProcessorsContext } from '../context';
1315

1416
export interface Props {
@@ -23,6 +25,12 @@ const addProcessorButtonLabel = i18n.translate(
2325
}
2426
);
2527

28+
const styles = {
29+
button: css`
30+
width: fit-content;
31+
`,
32+
};
33+
2634
export const AddProcessorButton: FunctionComponent<Props> = (props) => {
2735
const { onClick, renderButtonAsLink } = props;
2836
const {
@@ -46,7 +54,7 @@ export const AddProcessorButton: FunctionComponent<Props> = (props) => {
4654
return (
4755
<EuiButton
4856
data-test-subj="addProcessorButton"
49-
className="pipelineProcessorsEditor__tree__addProcessorButton"
57+
css={styles.button}
5058
disabled={editor.mode.id !== 'idle'}
5159
onClick={onClick}
5260
>

x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/on_failure_processors_title.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,30 @@
55
* 2.0.
66
*/
77

8-
import { EuiLink, EuiText, EuiTitle } from '@elastic/eui';
8+
import { EuiLink, EuiText, EuiTitle, useEuiTheme } from '@elastic/eui';
99
import type { FunctionComponent } from 'react';
1010
import React from 'react';
1111
import { i18n } from '@kbn/i18n';
1212
import { FormattedMessage } from '@kbn/i18n-react';
13+
import { css } from '@emotion/react';
1314

1415
import { useKibana } from '../../../../shared_imports';
1516

17+
const useStyles = () => {
18+
const { euiTheme } = useEuiTheme();
19+
return {
20+
title: css`
21+
padding-left: ${euiTheme.size.s};
22+
`,
23+
};
24+
};
25+
1626
export const OnFailureProcessorsTitle: FunctionComponent = () => {
1727
const { services } = useKibana();
28+
const styles = useStyles();
1829

1930
return (
20-
<div className="pipelineEditor__onFailureTitle">
31+
<div css={styles.title}>
2132
<EuiTitle size="xs">
2233
<h4>
2334
<FormattedMessage

x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/context_menu.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
* 2.0.
66
*/
77

8-
import classNames from 'classnames';
98
import type { FunctionComponent } from 'react';
109
import React, { useState } from 'react';
10+
import { css } from '@emotion/react';
1111

1212
import { EuiContextMenuItem, EuiContextMenuPanel, EuiPopover, EuiButtonIcon } from '@elastic/eui';
1313

@@ -23,14 +23,19 @@ interface Props {
2323
'data-test-subj'?: string;
2424
}
2525

26+
const getStyles = ({ hidden }: { hidden?: boolean }) => ({
27+
container: hidden
28+
? css`
29+
display: none;
30+
`
31+
: undefined,
32+
});
33+
2634
export const ContextMenu: FunctionComponent<Props> = (props) => {
2735
const { showAddOnFailure, onDuplicate, onAddOnFailure, onDelete, disabled, hidden } = props;
36+
const styles = getStyles({ hidden });
2837
const [isOpen, setIsOpen] = useState<boolean>(false);
2938

30-
const containerClasses = classNames({
31-
'pipelineProcessorsEditor__item--displayNone': hidden,
32-
});
33-
3439
const contextMenuItems = [
3540
<EuiContextMenuItem
3641
data-test-subj="duplicateButton"
@@ -71,7 +76,7 @@ export const ContextMenu: FunctionComponent<Props> = (props) => {
7176
].filter(Boolean) as JSX.Element[];
7277

7378
return (
74-
<div className={containerClasses}>
79+
<div css={styles.container}>
7580
<EuiPopover
7681
data-test-subj={props['data-test-subj']}
7782
anchorPosition="leftCenter"

x-pack/platform/plugins/shared/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/pipeline_processors_editor_item.scss

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

0 commit comments

Comments
 (0)