import React from 'react';
import { Banner } from '../src/lib/components/banner/Banner.component';
import { Icon } from '../src/lib/components/icon/Icon.component';
import { Wrapper } from './common';
import { iconArgType } from './controls';
export default {
title: 'Components/Feedback/Banner',
component: Banner,
decorators: [(story) => {story()}],
args: {
withDefaultIcon: true,
},
argTypes: {
withDefaultIcon: { control: 'boolean' },
icon: iconArgType,
},
};
export const Playground = {
render: ({ withDefaultIcon, icon, variant, children, ...args }) => {
return (
: undefined}
variant={variant}
children={children}
{...args}
/>
);
},
args: {
variant: 'base',
children: 'Some text explaining what happened',
},
argTypes: {
variant: { control: { disable: false } },
title: { control: { disable: false } },
children: { control: { disable: false } },
withDefaultIcon: { control: { disable: false } },
icon: { control: { disable: false } },
},
};
/** No icon. */
export const Default = {
...Playground,
args: {
children: 'There is an alert',
variant: 'base',
withDefaultIcon: false,
icon: undefined,
},
};
/** Simple default: withDefaultIcon + variant. Info-circle for base, Exclamation-circle otherwise. */
export const WithIcon = {
args: {
withDefaultIcon: true,
variant: 'base',
title: 'Info',
children: 'Use withDefaultIcon for the default icon (Info-circle on base, Exclamation-circle on warning/danger/etc.).',
},
};
export const SuccessBanner = {
...Playground,
args: {
variant: 'healthy',
withDefaultIcon: false,
icon: 'Check-circle',
title: 'Success',
children: 'There is a success',
},
};
export const WarningBanner = {
...Playground,
args: {
withDefaultIcon: true,
variant: 'warning',
title: 'Warning',
children: 'There is a warning',
},
};
export const ErrorBanner = {
...Playground,
args: {
withDefaultIcon: true,
variant: 'danger',
title: 'Error',
children: 'There is an error',
},
};
/** Custom icon when default (Exclamation-circle / Info-circle) is not desired. */
export const WithCustomIcon = {
...Playground,
args: {
variant: 'base',
withDefaultIcon: false,
icon: 'Exclamation-circle',
title: 'Custom',
children: 'Use the icon prop when you need a specific icon other than the withDefaultIcon default.',
},
};