import type { Meta, StoryObj } from '@storybook/nextjs-vite' import { fn } from 'storybook/test' import { VideoPlayerButton } from '.' import { videoPlayerButtonIconNames } from './types' import { config } from './variants' const meta: Meta = { title: 'Core Components/Video/VideoPlayerButton', component: VideoPlayerButton, parameters: { docs: { description: { component: 'A component to display a VideoPlayer and content inside a card connected to the video. The size and gaps are determined by the parent container.', }, }, }, argTypes: { onPress: { table: { type: { summary: 'function' }, }, defaultValue: { summary: 'undefined' }, }, size: { control: 'select', options: Object.keys(config.variants.size), table: { defaultValue: { summary: config.defaultVariants.size, }, type: { summary: Object.keys(config.variants.size).join(' | '), }, }, description: 'The size of the button.', }, iconName: { control: 'select', options: videoPlayerButtonIconNames, table: { defaultValue: { summary: 'undefined', }, type: { summary: videoPlayerButtonIconNames.join(' | '), }, }, description: 'This decides the background color and text color of the card.', }, }, } export default meta function renderAllIcons(args: Story['args']) { return (
{videoPlayerButtonIconNames.map((iconName) => ( ))}
) } type Story = StoryObj export const Default: Story = { args: { iconName: 'play_arrow', onPress: fn() }, } export const Small: Story = { args: { ...Default.args, size: 'sm' }, render: (args) => renderAllIcons(args), } export const Medium: Story = { args: { ...Default.args, size: 'md' }, render: (args) => renderAllIcons(args), } export const Large: Story = { args: { ...Default.args, size: 'lg' }, render: (args) => renderAllIcons(args), }