'use client'; import * as React from 'react'; import Avatar from '@mui/material/Avatar'; import IconButton from '@mui/material/IconButton'; import OutlinedInput from '@mui/material/OutlinedInput'; import Stack from '@mui/material/Stack'; import Tooltip from '@mui/material/Tooltip'; import { Camera as CameraIcon } from '@phosphor-icons/react/dist/ssr/Camera'; import { Paperclip as PaperclipIcon } from '@phosphor-icons/react/dist/ssr/Paperclip'; import { PaperPlaneTilt as PaperPlaneTiltIcon } from '@phosphor-icons/react/dist/ssr/PaperPlaneTilt'; import type { User } from '@/types/user'; import type { MessageType } from './types'; const user = { id: 'USR-000', name: 'Sofia Rivers', avatar: '/assets/avatar.png', email: 'sofia@devias.io', } satisfies User; export interface MessageAddProps { disabled?: boolean; onSend?: (type: MessageType, content: string) => void; } export function MessageAdd({ disabled = false, onSend }: MessageAddProps): React.JSX.Element { const [content, setContent] = React.useState(''); const fileInputRef = React.useRef(null); const handleAttach = React.useCallback(() => { fileInputRef.current?.click(); }, []); const handleChange = React.useCallback((event: React.ChangeEvent) => { setContent(event.target.value); }, []); const handleSend = React.useCallback(() => { if (!content) { return; } onSend?.('text', content); setContent(''); }, [content, onSend]); const handleKeyUp = React.useCallback( (event: React.KeyboardEvent) => { if (event.code === 'Enter') { handleSend(); } }, [handleSend] ); return ( ); }