import * as React from "bloatless-react"; import { Chat, MessageObject, MessageObjectContent, MessageObjectWithIndex, } from "../../Model/chatModel"; import { icons } from "../../icons"; export function ObjectEntryView( chat: Chat, messageObject: MessageObjectWithIndex, selectedObject: React.State, isShowingObjectModal: React.State ) { const latest = chat.getMostRecentContent(messageObject); function select() { selectedObject.value = messageObject; isShowingObjectModal.value = true; } function dragStart(event: DragEvent) { event.dataTransfer?.setData("text", messageObject.id); } const fields = { [icons.noteContent]: "---", [icons.priority]: "---", [icons.categoryName]: "---", [icons.status]: "---", [icons.date]: "---", [icons.time]: "---", }; Object.entries(latest).forEach((entry) => { let [key, value] = entry as [keyof MessageObjectContent, string]; if (!value) return; const icon = icons[key]; if (!icon) return; if (!fields[icon]) return; fields[icon] = value; }); const fieldElements = Object.entries(fields).map((field) => { const [icon, value] = field; return ( {icon} {value} ); }); const view = ( ); messageObject.index.subscribe(newIndex => { view.style.order = newIndex; }) return view; }