Major categories fixed: - TS6133 (188): Remove unused imports (React, icons, types) and variables - TS2322 (222): Fix type mismatches in stories (satisfies Meta -> const meta: Meta), add nullish coalescing for optional values, fix component prop types - TS2345 (43): Fix argument type mismatches with proper null checks and type narrowing - TS2741 (21): Add missing required properties to mock/story data - TS2339 (19): Fix property access on incorrect types, add type guards - TS2353 (13): Remove extra properties from object literals or extend interfaces - TS2352 (11): Fix type conversion chains - TS2307 (9): Fix import paths and module references - Other (42): Fix implicit any, possibly undefined, export declarations Vite build and tsc --noEmit both pass cleanly. Co-authored-by: Cursor <cursoragent@cursor.com>
63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
import type { Meta, StoryObj } from '@storybook/react';
|
|
import { NotificationItem } from './NotificationItem';
|
|
// Mocking the Notification type interface based on component usage
|
|
import type { Notification } from '../../types';
|
|
|
|
const mockNotification: Notification = {
|
|
id: '1',
|
|
type: 'like',
|
|
title: 'New Like',
|
|
read: false,
|
|
message: 'User X liked your post',
|
|
timestamp: '2m ago',
|
|
actionUrl: '/post/1',
|
|
};
|
|
|
|
const meta = {
|
|
title: 'Components/Features/Notifications/NotificationItem',
|
|
component: NotificationItem,
|
|
tags: ['autodocs'],
|
|
argTypes: {
|
|
onRead: { action: 'read' },
|
|
onAction: { action: 'action clicked' },
|
|
},
|
|
} satisfies Meta<typeof NotificationItem>;
|
|
|
|
export default meta;
|
|
type Story = StoryObj<typeof meta>;
|
|
|
|
export const Default: Story = {
|
|
args: {
|
|
notification: mockNotification,
|
|
onRead: () => {},
|
|
},
|
|
};
|
|
|
|
export const Read: Story = {
|
|
args: {
|
|
notification: { ...mockNotification, read: true },
|
|
onRead: () => {},
|
|
},
|
|
};
|
|
|
|
export const Sale: Story = {
|
|
args: {
|
|
notification: {
|
|
...mockNotification,
|
|
type: 'sale',
|
|
message: 'You sold a track for $20!',
|
|
},
|
|
onRead: () => {},
|
|
}
|
|
}
|
|
|
|
export const Security: Story = {
|
|
args: {
|
|
notification: {
|
|
...mockNotification,
|
|
type: 'security',
|
|
message: 'New login detected',
|
|
},
|
|
onRead: () => {},
|
|
}
|
|
}
|