UNPKG

ftt-ui-components

Version:

some components for vuetify3/element-plus/... with vue3.

31 lines (26 loc) 841 B
import { shallowReactive } from 'vue' import type { ComponentInternalInstance, VNode } from 'vue' import type { Mutable } from '../../utils' import type { MessageHandler, MessageProps } from './message' export type MessageContext = { id: string vnode: VNode handler: MessageHandler vm: ComponentInternalInstance props: Mutable<MessageProps> } export const instances: MessageContext[] = shallowReactive([]) export const getInstance = (id: string) => { const idx = instances.findIndex((instance) => instance.id === id) const current = instances[idx] let prev: MessageContext | undefined if (idx > 0) { prev = instances[idx - 1] } return { current, prev } } export const getLastOffset = (id: string): number => { const { prev } = getInstance(id) if (!prev) return 0 return prev.vm.exposeProxy?.bottom ?? 0 }