Skip to content

Commit

Permalink
Merge pull request #7149 from Expensify/Rory-TextInputStories
Browse files Browse the repository at this point in the history
(cherry picked from commit 3910a6c)
  • Loading branch information
roryabraham authored and OSBotify committed Jan 12, 2022
1 parent 0ef0eff commit 5d66867
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/components/TextInput/baseTextInputPropTypes.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ const propTypes = {
/** input style */
inputStyle: PropTypes.arrayOf(PropTypes.object),

/** If present, this prop forces the label to remain in a position where it will not collide with input text */
forceActiveLabel: PropTypes.bool,

/** Should the input auto focus? */
Expand Down
68 changes: 68 additions & 0 deletions src/stories/TextInput.stories.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import React from 'react';
import TextInput from '../components/TextInput';

/**
* 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 = {
title: 'Components/TextInput',
component: TextInput,
};

// eslint-disable-next-line react/jsx-props-no-spreading
const Template = args => <TextInput {...args} />;

// Arguments can be passed to the component by binding
// See: https://storybook.js.org/docs/react/writing-stories/introduction#using-args

const AutoFocus = Template.bind({});
AutoFocus.args = {
label: 'Auto-focused text input',
name: 'AutoFocus',
autoFocus: true,
};

const Default = Template.bind({});
Default.args = {
label: 'Default text input',
name: 'Default',
};

const DefaultValue = Template.bind({});
DefaultValue.args = {
label: 'Input with default value',
name: 'DefaultValue',
defaultValue: 'My default value',
};

const ErrorStory = Template.bind({});
ErrorStory.args = {
label: 'Input with error',
name: 'InputWithError',
errorText: 'This field has an error.',
};

const ForceActiveLabel = Template.bind({});
ForceActiveLabel.args = {
label: 'Forced active label',
forceActiveLabel: true,
};

const Placeholder = Template.bind({});
Placeholder.args = {
label: 'Input with placeholder',
name: 'Placeholder',
placeholder: 'My placeholder text',
};

export default story;
export {
AutoFocus,
Default,
DefaultValue,
ErrorStory,
ForceActiveLabel,
Placeholder,
};

0 comments on commit 5d66867

Please sign in to comment.