24 lines
596 B
TypeScript
24 lines
596 B
TypeScript
import type { InjectionKey } from 'vue'
|
|
import type {
|
|
SubsectionItemProps,
|
|
SubsectionItemRect,
|
|
SubsectionProps,
|
|
} from '../components/subsection'
|
|
|
|
export type SubsectionItemContext = SubsectionItemProps & {
|
|
uid: number
|
|
element: SubsectionItemRect
|
|
}
|
|
|
|
export type SubsectionContext = SubsectionProps & {
|
|
items: SubsectionItemContext[]
|
|
activeUid: number
|
|
addItem: (item: SubsectionItemContext) => void
|
|
removeItem: (uid: number) => void
|
|
setActiveItem: (uid: number) => void
|
|
}
|
|
|
|
export const subsectionContextKey: InjectionKey<SubsectionContext> = Symbol(
|
|
'subsectionContextKey'
|
|
)
|