Skip to content

Commit 248ddf1

Browse files
author
Luke Pearson
committed
Addressed review feedback
1 parent 6816a15 commit 248ddf1

File tree

1 file changed

+66
-66
lines changed

1 file changed

+66
-66
lines changed

stories/Input.stories.tsx

Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,74 @@
11
/* eslint-disable import/no-extraneous-dependencies */
2-
import React, { useState, SyntheticEvent } from 'react';
2+
import React, { useState, SyntheticEvent, FunctionComponent } from 'react';
33
import { storiesOf } from '@storybook/react';
44
import centered from '@storybook/addon-centered';
55
import { Input, Form, Button } from '../src';
66

77
const stories = storiesOf('Input', module);
88

9-
const form = (disableErrorFromComponents: boolean) => (
10-
() => {
11-
const [firstName, setFirstName] = useState<string>('');
12-
const [middleName, setMiddleName] = useState<string>('');
13-
const [lastName, setLastName] = useState<string>('');
14-
const [firstNameError, setFirstNameError] = useState<string>('');
15-
const [middleNameError, setMiddleNameError] = useState<string>('');
16-
const [lastNameError, setLastNameError] = useState<string>('');
9+
interface Props {
10+
disableErrorFromComponents?: boolean;
11+
}
1712

18-
const onSubmit = (e: SyntheticEvent<HTMLFormElement>) => {
19-
e.preventDefault();
20-
setFirstNameError(firstName.length === 0 ? 'You must enter a first name' : null);
21-
setMiddleNameError(middleName.length === 0 ? 'You must enter a middle name' : null);
22-
setLastNameError(lastName.length === 0 ? 'You must enter a last name' : null);
23-
};
13+
const ExampleForm: FunctionComponent<Props> = (props: Props) => {
14+
const { disableErrorFromComponents } = props;
15+
const [firstName, setFirstName] = useState<string>('');
16+
const [middleName, setMiddleName] = useState<string>('');
17+
const [lastName, setLastName] = useState<string>('');
18+
const [firstNameError, setFirstNameError] = useState<string>('');
19+
const [middleNameError, setMiddleNameError] = useState<string>('');
20+
const [lastNameError, setLastNameError] = useState<string>('');
2421

25-
return (
26-
<Form onSubmit={onSubmit} disableErrorFromComponents={disableErrorFromComponents}>
27-
<Input
28-
className="nhsuk-u-margin-bottom-3"
29-
autoFocus
30-
name="first_name"
31-
type="string"
32-
aria-label="First name input"
33-
value={firstName || ''}
34-
onChange={e => setFirstName(e.currentTarget.value)}
35-
error={firstNameError}
36-
autoComplete={process.env.NODE_ENV === 'development' ? '' : undefined}
37-
width="10"
38-
>
39-
First Name
40-
</Input>
22+
const onSubmit = (e: SyntheticEvent<HTMLFormElement>) => {
23+
e.preventDefault();
24+
setFirstNameError(firstName.length === 0 ? 'You must enter a first name' : null);
25+
setMiddleNameError(middleName.length === 0 ? 'You must enter a middle name' : null);
26+
setLastNameError(lastName.length === 0 ? 'You must enter a last name' : null);
27+
};
4128

42-
<Input
43-
className="nhsuk-u-margin-bottom-3"
44-
label="middle name"
45-
name="middle_name"
46-
type="string"
47-
aria-label="middle name input"
48-
value={middleName || ''}
49-
onChange={e => setMiddleName(e.currentTarget.value)}
50-
error={middleNameError}
51-
autoComplete={process.env.NODE_ENV === 'development' ? '' : undefined}
52-
width="10"
53-
>
54-
Middle name
55-
</Input>
29+
return (
30+
<Form onSubmit={onSubmit} disableErrorFromComponents={disableErrorFromComponents}>
31+
<Input
32+
className="nhsuk-u-margin-bottom-3"
33+
type="text"
34+
aria-label="First name input"
35+
value={firstName}
36+
onChange={e => setFirstName(e.currentTarget.value)}
37+
error={firstNameError}
38+
width="10"
39+
>
40+
First Name
41+
</Input>
42+
43+
<Input
44+
className="nhsuk-u-margin-bottom-3"
45+
label="middle name"
46+
type="text"
47+
aria-label="middle name input"
48+
value={middleName}
49+
onChange={e => setMiddleName(e.currentTarget.value)}
50+
error={middleNameError}
51+
width="10"
52+
>
53+
Middle name
54+
</Input>
5655

57-
<Input
58-
className="nhsuk-u-margin-bottom-3"
59-
label="Last name"
60-
name="last_name"
61-
type="string"
62-
aria-label="Last name input"
63-
value={lastName || ''}
64-
onChange={e => setLastName(e.currentTarget.value)}
65-
error={lastNameError}
66-
autoComplete={process.env.NODE_ENV === 'development' ? '' : undefined}
67-
width="10"
68-
>
69-
Last name
70-
</Input>
71-
<Button style={{ display: 'block' }} type="submit">Submit</Button>
72-
</Form>
73-
);
74-
}
75-
);
56+
<Input
57+
className="nhsuk-u-margin-bottom-3"
58+
label="Last name"
59+
type="text"
60+
aria-label="Last name input"
61+
value={lastName}
62+
onChange={e => setLastName(e.currentTarget.value)}
63+
error={lastNameError}
64+
width="10"
65+
>
66+
Last name
67+
</Input>
68+
<Button style={{ display: 'block' }} type="submit">Submit</Button>
69+
</Form>
70+
);
71+
};
7672

7773
stories
7874
.addDecorator(centered)
@@ -127,5 +123,9 @@ stories
127123
National Insurance Number
128124
</Input>
129125
))
130-
.add('Multiple Error States', form(false))
131-
.add('Form Error State Disabled', form(true));
126+
.add('Multiple Error States', () => (
127+
<ExampleForm />
128+
))
129+
.add('Form Error State Disabled', () => (
130+
<ExampleForm disableErrorFromComponents />
131+
));

0 commit comments

Comments
 (0)