import React from 'react'
import type { Meta } from '@storybook/react'
import { IconButton, Icons, NormaChatMessageBalloon } from '../components'
import { useChatMessageBalloon } from '../components/NormaChatMessageBalloon/hook'
import { Avatar, Box, Typography } from '@mui/material'
import { SentimentDissatisfiedOutlined, TagFacesOutlined } from '@mui/icons-material'
const messageArr = [
{
direction: 'O' as 'O',
label: 'Teste de Título',
description:
'lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, varius velit. Nulla nec purus feugiat, molestie ipsum et, varius velit.',
date: '06/02/2025',
},
{
direction: 'I' as 'I',
label: 'Teste de Título',
description:
'lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, varius velit. Nulla nec purus feugiat, molestie ipsum et, varius velit.',
date: '06/02/2025',
},
{
direction: 'O' as 'O',
label: 'Teste de Título',
description:
'lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, molestie ipsum et, varius velit. Nulla nec purus feugiat, molestie ipsum et, varius velit.',
date: '07/02/2025',
},
]
const avatars = {
O: {
src: '',
alt: 'HC',
},
I: {
src: 'https://letsenhance.io/static/73136da51c245e80edc6ccfe44888a99/1015f/MainBefore.jpg',
alt: 'MB',
},
}
const Template = () => {
return (
<>
{messageArr.map((message, index) => {
const { balloonClassNames } = useChatMessageBalloon(() => console.log('hover'), false)
return (
console.log('hover')}
onMouseLeave={() => console.log('leave')}
>
console.log('row hover')}
onMouseLeave={() => console.log('row leave')}
>
)
})}
>
)
}
const TemplateWithAvatar = () => {
return (
<>
{messageArr.map((message, index) => {
const { balloonClassNames } = useChatMessageBalloon(() => console.log('hover'), false)
return (
console.log('hover')}
onMouseLeave={() => console.log('leave')}
>
console.log('row hover')}
onMouseLeave={() => console.log('row leave')}
>
{avatars[message.direction].alt}
)
})}
>
)
}
const TemplateWithChildren = () => {
return (
<>
{messageArr.map((message, index) => {
const { balloonClassNames } = useChatMessageBalloon(() => console.log('hover'), false)
return (
console.log('hover')}
onMouseLeave={() => console.log('leave')}
>
console.log('row hover')}
onMouseLeave={() => console.log('row leave')}
>
{/* Children located here */}
...children
)
})}
>
)
}
const SimplifiedTemplate = () => {
return (
<>
{messageArr.map((message, index) => {
const { balloonClassNames } = useChatMessageBalloon(() => console.log('hover'), false)
return (
console.log('hover')}
onMouseLeave={() => console.log('leave')}
>
console.log('row hover')}
onMouseLeave={() => console.log('row leave')}
className={balloonClassNames}
avatar={avatars[message.direction]}
children={
<>
...children
>
}
/>
)
})}
>
)
}
const meta = {
title: 'Norma/ChatMessageBalloon',
component: Template,
parameters: {
layout: 'centered',
},
tags: ['autodocs'],
argTypes: {},
} satisfies Meta
export default meta
export const Default = Template.bind({})
export const WithAvatar = TemplateWithAvatar.bind({})
export const WithChildren = TemplateWithChildren.bind({})
export const Simplified = SimplifiedTemplate.bind({})