import React from 'react'; import { tagProps, Note } from 'App/services/NotesService'; import { formatTimeOrDate, shortDurationFromMs } from 'App/date'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import copy from 'copy-to-clipboard'; import { toast } from 'react-toastify'; import { session } from 'App/routes'; import { confirm, Icon } from 'UI'; import { TeamBadge } from 'Shared/SessionsTabOverview/components/Notes'; import { Tag, Dropdown, Button } from 'antd'; import { MoreOutlined } from '@ant-design/icons'; import { MessageSquareDot } from 'lucide-react'; import { noNoteMsg } from 'App/mstore/notesStore'; interface Props { note: Note; noEdit: boolean; filterOutNote: (id: number) => void; setActiveTab: (tab: string) => void; } function NoteEvent(props: Props) { const { settingsStore, notesStore } = useStore(); const { timezone } = settingsStore.sessionSettings; const onEdit = () => { notesStore.setEditNote(props.note); props.setActiveTab('HIGHLIGHT'); }; const onCopy = () => { copy( `${window.location.origin}/${ window.location.pathname.split('/')[1] }${session(props.note.sessionId)}${ props.note.timestamp > 0 ? `?jumpto=${props.note.timestamp}¬e=${props.note.noteId}` : `?note=${props.note.noteId}` }`, ); toast.success('Note URL copied to clipboard'); }; const onDelete = async () => { if ( await confirm({ header: 'Confirm', confirmButton: 'Yes, delete', confirmation: 'Are you sure you want to delete this note?', }) ) { notesStore.deleteNote(props.note.noteId).then((r) => { props.filterOutNote(props.note.noteId); toast.success('Note deleted'); }); } }; const menuItems = [ { icon: , label: 'Edit', key: '1', onClick: onEdit, disabled: props.noEdit, }, { icon: , label: 'Copy URL', key: '2', onClick: onCopy, }, { icon: , label: 'Delete', key: '3', onClick: onDelete, }, ]; return (
{props.note.userName}
{props.note.startAt !== undefined ? shortDurationFromMs(props.note.startAt) : formatTimeOrDate( props.note.createdAt as unknown as number, timezone, )}
{props.note.message || noNoteMsg}
{props.note.tag ? ( {props.note.tag} ) : null} {!props.note.isPublic ? null : }
); } export default observer(NoteEvent);