import React from 'react'; import { Icon } from 'UI'; import { tagProps, iTag, Note } from 'App/services/NotesService'; import { formatTimeOrDate } from 'App/date'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import { ItemMenu } from 'UI'; import copy from 'copy-to-clipboard'; import { toast } from 'react-toastify'; import { session } from 'App/routes'; import { confirm } from 'UI'; import { filterOutNote as filterOutTimelineNote } from 'Player'; interface Props { note: Note; noEdit: boolean; userEmail: string; filterOutNote: (id: number) => void; onEdit: (noteTooltipObj: Record) => void; } function NoteEvent(props: Props) { const { settingsStore, notesStore } = useStore(); const { timezone } = settingsStore.sessionSettings; console.log(props.noEdit); const onEdit = () => { props.onEdit({ isVisible: true, isEdit: true, time: props.note.timestamp, note: { timestamp: props.note.timestamp, tag: props.note.tag, isPublic: props.note.isPublic, message: props.note.message, sessionId: props.note.sessionId, noteId: props.note.noteId, }, }); }; const onCopy = () => { copy( `${window.location.origin}/${window.location.pathname.split('/')[1]}${session( props.note.sessionId )}${props.note.timestamp > 0 ? '?jumpto=' + props.note.timestamp : ''}` ); 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); filterOutTimelineNote(props.note.noteId); toast.success('Note deleted'); }); } }; const menuItems = [ { icon: 'pencil', text: 'Edit', onClick: onEdit, disabled: props.noEdit }, { icon: 'link-45deg', text: 'Copy URL', onClick: onCopy }, { icon: 'trash', text: 'Delete', onClick: onDelete }, ]; return (
{props.userEmail}
{formatTimeOrDate(props.note.createdAt as unknown as number, timezone)}
{props.note.message}
{props.note.tag ? (
{props.note.tag}
) : null} {!props.note.isPublic ? null : ( <> Team )}
); } export default observer(NoteEvent);