Skip to content
This repository has been archived by the owner on Jan 9, 2023. It is now read-only.

fix(alert): update alert story #628

Merged
merged 3 commits into from
Oct 22, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .storybook/preview.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ export const parameters = {
},
options: {
storySort: {
order: ['Welcome'],
method: 'alphabetical',
order: ['Welcome', ],
},
}
}
}
6 changes: 3 additions & 3 deletions src/components/Alert/Alert.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import BootstrapAlert from 'react-bootstrap/Alert'
import { ColorVariant } from '../../interfaces'
import { Button } from '../Button'

interface Props {
export interface AlertProps {
/**
* Defines the color of the alert. Defaults to primary.
* @default "primary"
Expand Down Expand Up @@ -48,8 +48,8 @@ interface State {
* with the handful of available and flexible alert messages.
*/

class Alert extends Component<Props, State> {
constructor(props: Props) {
class Alert extends Component<AlertProps, State> {
constructor(props: AlertProps) {
super(props)
this.state = {
show: true,
Expand Down
151 changes: 100 additions & 51 deletions stories/alerts.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,53 +1,102 @@
import { storiesOf } from '@storybook/react'
import { Story, Meta } from '@storybook/react/types-6-0'
import React from 'react'

import { Alert } from '../src'

storiesOf('Alert', module)
.addParameters({
info: {
inline: true,
},
})
.addDecorator((storyFn) => (
<div style={{ marginLeft: '2em', marginRight: '2em' }}>{storyFn()}</div>
))
.add('Alert', () => (
<div>
<Alert
color="primary"
title="This is the title of the alert"
message="And this is the message of the alert"
/>
<Alert color="secondary" title="This is an alert with only the title" />
<Alert color="success" message="This is an alert with only the message" />
<Alert color="danger" title="This alert is dismissible" dismissible />
<Alert
color="warning"
title="This alert is dismissible with a custom label"
dismissible
closeLabel="Close me"
/>
<Alert color="info" title="This is an info alert" />
<Alert color="light" title="This is a light alert" />
<Alert
color="dark"
title="This is a dark alert"
message={<strong>With a strong message</strong>}
/>
<Alert
title="This is an alert with a custom class"
className="customClass"
message="And it has a button with a custom class"
btnClassName="customClass2"
dismissible
/>
<Alert
title="This is an alert with a custom style"
style={{ height: '50%', width: '50%', border: '2px solid red' }}
message="And it has a button with a custom style"
btnStyle={{ background: 'red', color: 'white' }}
dismissible
/>
</div>
))
import { Alert, AlertProps } from '../src'

export default {
title: 'Alert',
component: Alert,
decorators: [
(St) => (
<div style={{ margin: '3em' }}>
<St />
</div>
),
],
} as Meta
// your templates and stories

// We create a “template” of how args map to rendering
const Template: Story<AlertProps> = (args) => <Alert {...args} />

// main story tha's editable and has the docs for the props
export const Main = Template.bind({})
Main.args = {
color: 'primary',
title: 'This is the title of the alert',
message: 'And this is the message of the alert',
dismissible: true,
closeLabel: 'Close',
}

// Rest of the stories
export const Primary = Template.bind({})
Primary.args = {
color: 'primary',
title: 'This is the title of the alert',
message: 'And this is the message of the alert',
}

export const Secondary = Template.bind({})
Secondary.args = {
color: 'secondary',
title: 'This is an alert with only the title',
}

export const Success = Template.bind({})
Success.args = {
color: 'success',
title: 'This is an alert with only the title',
}

export const Danger = Template.bind({})
Danger.args = {
color: 'danger',
title: 'This alert is dismissible',
dismissible: true,
}

export const Warning = Template.bind({})
Warning.args = {
color: 'warning',
title: 'This alert is dismissible with a custom label',
dismissible: true,
closeLabel: 'Close me',
}

export const Info = Template.bind({})
Info.args = {
color: 'info',
title: 'This is an info alert',
}

export const Light = Template.bind({})
Light.args = {
color: 'light',
title: 'This is an light alert',
}

export const Dark = Template.bind({})
Dark.args = {
color: 'dark',
title: 'This is an dark alert',
message: <strong>With a strong message</strong>,
}

export const CustomClass = Template.bind({})
CustomClass.args = {
title: 'This is an alert with a custom class',
className: 'customClass',
message: 'And it has a button with a custom class',
btnClassName: 'customClass2',
dismissible: true,
}

export const CustomStyle = Template.bind({})
CustomStyle.args = {
title: 'This is an alert with a custom style',
style: { height: '50%', width: '50%', border: '2px solid red' },
message: 'And it has a button with a custom style',
btnStyle: { background: 'red', color: 'white' },
dismissible: true,
}