const { util: { getFiber, reactFiberWalker }, flux: { dispatcher, stores }, observeDom: observeDom, ui: { Button, openModal, ModalBody, ModalFooter, ModalRoot, ModalHeader, ModalSizes, }, } = shelter; dispatcher.subscribe("CONTEXT_MENU_OPEN", handler); function handler(dispatch) { const unObserve = observeDom("[id^=message-copy-link]", (elem) => { const messageId = reactFiberWalker(getFiber(elem), "message", true) .pendingProps.message.id; elem.insertAdjacentElement( "afterend", ); unObserve(); }); setTimeout(unObserve, 500); } function clicked(a) { const remove = openModal((p) => ( {JSON.stringify(a, null, 2)} )); dispatcher.dispatch({ type: "CONTEXT_MENU_CLOSE" }); } function getMessageObject(messageId) { const fluxMessages = stores.MessageStore.getMessages( stores.SelectedChannelStore.getChannelId() ); return fluxMessages._map[messageId]; } export function onUnload() { dispatcher.unsubscribe("CONTEXT_MENU_OPEN", handler); }