diff --git a/src/components/admin/ConfirmDialog.dynamic.stories.tsx b/src/components/admin/ConfirmDialog.dynamic.stories.tsx new file mode 100644 index 0000000..9a710ac --- /dev/null +++ b/src/components/admin/ConfirmDialog.dynamic.stories.tsx @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import featuresConfig from '@/config/features.json'; +import ConfirmDialog from './ConfirmDialog'; + +const meta = { + title: 'Admin/ConfirmDialog (From JSON)', + component: ConfirmDialog, + parameters: { + layout: 'centered', + docs: { + description: { + component: 'ConfirmDialog component with stories dynamically loaded from features.json', + }, + }, + }, + tags: ['autodocs'], +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// Dynamically generate stories from features.json +const confirmDialogStories = featuresConfig.storybookStories.ConfirmDialog; + +// Default Story +export const Default: Story = { + name: confirmDialogStories.default.name, + args: { + ...confirmDialogStories.default.args, + onConfirm: () => console.log('Confirmed'), + onCancel: () => console.log('Cancelled'), + }, +}; + +// Delete Warning Story +export const DeleteWarning: Story = { + name: confirmDialogStories.deleteWarning.name, + args: { + ...confirmDialogStories.deleteWarning.args, + onConfirm: () => console.log('Confirmed delete'), + onCancel: () => console.log('Cancelled delete'), + }, +}; diff --git a/src/components/admin/ConfirmDialog.stories.tsx b/src/components/admin/ConfirmDialog.stories.tsx new file mode 100644 index 0000000..19267b0 --- /dev/null +++ b/src/components/admin/ConfirmDialog.stories.tsx @@ -0,0 +1,41 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import ConfirmDialog from './ConfirmDialog'; + +const meta = { + title: 'Admin/ConfirmDialog', + component: ConfirmDialog, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// Stories based on features.json storybookStories.ConfirmDialog +export const Default: Story = { + name: 'Default', + args: { + open: true, + title: 'Confirm Action', + message: 'Are you sure you want to proceed?', + confirmLabel: 'Confirm', + cancelLabel: 'Cancel', + onConfirm: () => console.log('Confirmed'), + onCancel: () => console.log('Cancelled'), + }, +}; + +export const DeleteWarning: Story = { + name: 'Delete Warning', + args: { + open: true, + title: 'Delete Item', + message: 'This action cannot be undone. Are you sure you want to delete this item?', + confirmLabel: 'Delete', + cancelLabel: 'Cancel', + onConfirm: () => console.log('Confirmed delete'), + onCancel: () => console.log('Cancelled delete'), + }, +}; diff --git a/src/components/admin/ConfirmDialog.tsx b/src/components/admin/ConfirmDialog.tsx index aab7bd7..d503469 100644 --- a/src/components/admin/ConfirmDialog.tsx +++ b/src/components/admin/ConfirmDialog.tsx @@ -1,13 +1,13 @@ 'use client'; import { - Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, } from '@mui/material'; +import Button from '../atoms/Button'; type ConfirmDialogProps = { open: boolean; @@ -35,10 +35,8 @@ export default function ConfirmDialog({ {message} - - +