Skip to content

Commit 2fddd0c

Browse files
committed
REVERT ME: testing story
1 parent cd47a4f commit 2fddd0c

File tree

1 file changed

+106
-1
lines changed

1 file changed

+106
-1
lines changed

packages/eui/src/components/button/button.stories.tsx

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* Side Public License, v 1.
77
*/
88

9-
import React from 'react';
9+
import React, { useEffect, useRef } from 'react';
1010
import type { Meta, StoryObj } from '@storybook/react';
1111

1212
import {
@@ -16,6 +16,7 @@ import {
1616

1717
import { EuiButtonEmpty } from './button_empty';
1818
import { EuiButton, Props as EuiButtonProps } from './button';
19+
import { EuiFlexGroup } from '../flex';
1920

2021
const meta: Meta<EuiButtonProps> = {
2122
title: 'Navigation/EuiButton',
@@ -53,6 +54,110 @@ export const Playground: Story = {
5354
};
5455
disableStorybookControls(Playground, ['buttonRef']);
5556

57+
export const TESTING_EXAMPLE: Story = {
58+
parameters: {
59+
loki: {
60+
skip: true,
61+
},
62+
controls: {
63+
include: ['hasAriaDisabled'],
64+
},
65+
},
66+
render: function Render({ hasAriaDisabled }: any) {
67+
const buttonRef = useRef<HTMLButtonElement | null>(null);
68+
const [isLoading, setIsLoading] = React.useState(false);
69+
const [isDisabled, setIsDisabled] = React.useState(false);
70+
71+
useEffect(() => {
72+
if (isLoading) {
73+
const timer = setTimeout(() => {
74+
setIsLoading(false);
75+
}, 5000);
76+
77+
return () => clearTimeout(timer);
78+
}
79+
}, [isLoading]);
80+
81+
useEffect(() => {
82+
if (isDisabled) {
83+
const timer = setTimeout(() => {
84+
setIsDisabled(false);
85+
}, 5000);
86+
87+
return () => clearTimeout(timer);
88+
}
89+
}, [isDisabled]);
90+
91+
useEffect(() => {
92+
const button = buttonRef.current;
93+
94+
if (!button) return;
95+
96+
const onClickHandler = () => {
97+
console.log('DOM event: click');
98+
};
99+
100+
const onMouseDownHandler = () => {
101+
console.log('DOM event: mousedown');
102+
};
103+
104+
const onTouchStartHandler = () => {
105+
console.log('DOM event: touchstart');
106+
};
107+
108+
const onKeyDownHandler = () => {
109+
console.log('DOM event: keydown');
110+
};
111+
112+
const onFocusHandler = (e: FocusEvent) => {
113+
console.log('DOM event: focus', e.target, e.relatedTarget);
114+
};
115+
116+
const onBlurHandler = (e: FocusEvent) => {
117+
console.log('DOM event: blur', e.target, e.relatedTarget);
118+
};
119+
120+
button.addEventListener('click', onClickHandler, { capture: true });
121+
button.addEventListener('mousedown', onMouseDownHandler);
122+
button.addEventListener('touchstart', onTouchStartHandler);
123+
button.addEventListener('keydown', onKeyDownHandler);
124+
button.addEventListener('focus', onFocusHandler, { capture: true });
125+
button.addEventListener('blur', onBlurHandler);
126+
127+
return () => {
128+
button.removeEventListener('click', onClickHandler);
129+
button.removeEventListener('mousedown', onMouseDownHandler);
130+
button.removeEventListener('touchstart', onTouchStartHandler);
131+
button.removeEventListener('keydown', onKeyDownHandler);
132+
button.removeEventListener('focus', onFocusHandler);
133+
button.removeEventListener('blur', onBlurHandler);
134+
};
135+
}, []);
136+
137+
return (
138+
<EuiFlexGroup>
139+
<EuiButton onClick={() => setIsLoading(true)}>Set loading</EuiButton>
140+
<EuiButton onClick={() => setIsDisabled(true)}>Set disabled</EuiButton>
141+
<EuiButton
142+
buttonRef={buttonRef}
143+
isLoading={isLoading}
144+
isDisabled={isDisabled}
145+
hasAriaDisabled={hasAriaDisabled}
146+
onClick={() => console.log('EuiButton onClick')}
147+
onKeyDown={() => console.log('EuiButton onKeyDown')}
148+
onMouseDown={() => console.log('EuiButton onMouseDown')}
149+
onPointerDown={() => console.log('EuiButton onPointerDown')}
150+
onTouchStart={() => console.log('EuiButton onTouchStart')}
151+
onFocus={() => console.log('EuiButton onFocus')}
152+
onBlur={() => console.log('EuiButton onBlur')}
153+
>
154+
Button
155+
</EuiButton>
156+
</EuiFlexGroup>
157+
);
158+
},
159+
};
160+
56161
export const HighContrast: Story = {
57162
tags: ['vrt-only'],
58163
globals: { highContrastMode: true },

0 commit comments

Comments
 (0)