import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; import DialogItemPreview from './DialogItemPreview'; import Badge from '../Badge/Badge'; import Avatar from '../Avatar/Avatar'; import { ConferenceSvg, GroupChatSvg, MoreSvg, PublicChannelSvg, UserSvg, } from '../../icons'; import PreviewFileMessage from '../PreviewFileMessage/PreviewFileMessage'; import Dropdown from '../Dropdown/Dropdown'; const meta: Meta = { title: '@quickblox-react-ui-kit/Presentation/ui-components/DialogItemPreview', tags: ['autodocs'], component: DialogItemPreview, decorators: [], parameters: { viewport: { viewports: INITIAL_VIEWPORTS, }, }, argTypes: { avatar: { description: 'Avatar or Icon', control: 'select', options: ['User', 'Group', 'Conference', 'Public', 'Photo'], mapping: { User: } />, Group: } />, Conference: } />, Public: } />, Photo: ( ), }, }, lastMessage: { description: 'Last message by type', control: 'select', options: ['ShortText', 'LongText', 'Image', 'File', 'None'], mapping: { ShortText: 'Hello, world!How are you?', LongText: "Hello, dear Mr. User. Thank you for choosing us. I'm here to assist with your order's delivery. Please provide your preferred address and any specific instructions. We offer standard, express, and same-day delivery in select areas. Let us know your convenience, and we'll ensure a smooth process.", Image: ( ), File: , None: undefined, }, }, badge: { description: 'Badge', control: 'select', options: ['Default', 'OverCount', 'None'], mapping: { Default: , OverCount: , None: undefined, }, }, active: { table: { defaultValue: { summary: 'false', }, type: { summary: 'boolean' }, }, description: 'Active', }, contextMenu: { description: 'Context action icon', control: 'select', options: ['Default', 'Leave', 'None'], mapping: { Default: , Leave: ( { console.log(value); }} > ), None: undefined, }, }, }, }; export default meta; type Story = StoryObj; export const DialogItemPreviewDefault: Story = { name: 'DialogItemPreview Default', args: { title: 'Name', avatar: } />, }, render: (args) => { // eslint-disable-next-line no-param-reassign args.date = args.date ? new Date(args.date!).toLocaleDateString() : new Date().toLocaleDateString(); return ; }, }; export const DialogItemPreviewFullScreen: Story = { name: 'DialogItemPreview FullScreen', args: { title: 'Name', avatar: } />, lastMessage: "Hello, dear Mr. User. Thank you for choosing us. I'm here to assist with your order's delivery. Please provide your preferred address and any specific instructions. We offer standard, express, and same-day delivery in select areas. Let us know your convenience, and we'll ensure a smooth process.", badge: , contextMenu: , }, parameters: { viewport: { defaultViewport: 'responsive', }, }, render: (args) => { // eslint-disable-next-line no-param-reassign args.date = new Date().toLocaleDateString(); return ; }, }; export const DialogItemPreviewMobileScreen: Story = { name: 'DialogItemPreview MobileScreen', args: { title: 'Name', avatar: } />, lastMessage: "Hello, dear Mr. User. Thank you for choosing us. I'm here to assist with your order's delivery. Please provide your preferred address and any specific instructions. We offer standard, express, and same-day delivery in select areas. Let us know your convenience, and we'll ensure a smooth process.", badge: , contextMenu: , }, parameters: { viewport: { defaultViewport: 'iphonese2', }, }, render: (args) => { // eslint-disable-next-line no-param-reassign args.date = args.date ? new Date(args.date!).toLocaleDateString() : new Date().toLocaleDateString(); return ; }, }; export const DialogItemPreviewMobileScreenIPad: Story = { name: 'DialogItemPreview MobileScreen IPad', args: { title: 'Name', avatar: } />, lastMessage: "Hello, dear Mr. User. Thank you for choosing us. I'm here to assist with your order's delivery. Please provide your preferred address and any specific instructions. We offer standard, express, and same-day delivery in select areas. Let us know your convenience, and we'll ensure a smooth process.", badge: , contextMenu: , }, parameters: { viewport: { defaultViewport: 'ipad', }, }, render: (args) => { // eslint-disable-next-line no-param-reassign args.date = args.date ? new Date(args.date!).toLocaleDateString() : new Date().toLocaleDateString(); return ; }, };