import type { Meta, StoryObj } from '@storybook/nextjs' import { fn } from 'storybook/test' import { useState } from 'react' import InlineDeleteConfirm from '.' const meta = { title: 'Base/Feedback/InlineDeleteConfirm', component: InlineDeleteConfirm, parameters: { layout: 'centered', docs: { description: { component: 'Compact confirmation prompt that appears inline, commonly used near delete buttons or destructive controls.', }, }, }, argTypes: { variant: { control: 'select', options: ['delete', 'warning', 'info'], }, }, args: { title: 'Delete this item?', confirmText: 'Delete', cancelText: 'Cancel', onConfirm: fn(), onCancel: fn(), }, tags: ['autodocs'], } satisfies Meta export default meta type Story = StoryObj const InlineDeleteConfirmDemo = (args: Story['args']) => { const [visible, setVisible] = useState(true) return (
{visible && ( { console.log('✅ Confirm clicked') setVisible(false) }} onCancel={() => { console.log('❎ Cancel clicked') setVisible(false) }} /> )}
) } export const Playground: Story = { render: args => , } export const WarningVariant: Story = { render: args => , args: { variant: 'warning', title: 'Archive conversation?', confirmText: 'Archive', cancelText: 'Keep', }, } export const InfoVariant: Story = { render: args => , args: { variant: 'info', title: 'Remove collaborator?', confirmText: 'Remove', cancelText: 'Keep', }, }