forked from Expensify/App
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCheckboxWithLabel.stories.tsx
More file actions
59 lines (51 loc) · 1.91 KB
/
Copy pathCheckboxWithLabel.stories.tsx
File metadata and controls
59 lines (51 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import type {Meta, StoryFn} from '@storybook/react-webpack5';
import React from 'react';
import CheckboxWithLabel from '@components/CheckboxWithLabel';
import type {CheckboxWithLabelProps} from '@components/CheckboxWithLabel';
import Text from '@components/Text';
import styles from '@src/styles';
import {defaultTheme} from '@src/styles/theme';
const defaultStyles = styles(defaultTheme);
type CheckboxWithLabelStory = StoryFn<typeof CheckboxWithLabel>;
/**
* We use the Component Story Format for writing stories. Follow the docs here:
*
* https://storybook.js.org/docs/react/writing-stories/introduction#component-story-format
*/
const story: Meta<typeof CheckboxWithLabel> = {
title: 'Components/CheckboxWithLabel',
component: CheckboxWithLabel,
};
function Template(props: CheckboxWithLabelProps) {
// eslint-disable-next-line react/jsx-props-no-spreading
return <CheckboxWithLabel {...props} />;
}
// Arguments can be passed to the component by binding
// See: https://storybook.js.org/docs/react/writing-stories/introduction#using-args
const Default: CheckboxWithLabelStory = Template.bind({});
const WithLabelComponent: CheckboxWithLabelStory = Template.bind({});
const WithErrors: CheckboxWithLabelStory = Template.bind({});
Default.args = {
isChecked: true,
label: 'Plain text label',
onInputChange: () => {},
};
WithLabelComponent.args = {
isChecked: true,
onInputChange: () => {},
LabelComponent: () => (
<>
<Text style={[defaultStyles.textLarge]}>Test</Text>
<Text style={[defaultStyles.textMicroBold]}> Test </Text>
<Text style={[defaultStyles.textMicroSupporting]}>Test</Text>
</>
),
};
WithErrors.args = {
isChecked: false,
errorText: 'Please accept Terms before continuing.',
onInputChange: () => {},
label: 'I accept the Terms & Conditions',
};
export default story;
export {Default, WithLabelComponent, WithErrors};