import { computed, type ComputedRef, inject, type InjectionKey, provide } from 'vue'; export interface ActionContext { isSelectItem: ComputedRef; } const defaultActionContext: ActionContext = { isSelectItem: computed(() => false) }; export const ActionContextKey: InjectionKey = Symbol('ActionContextKey'); export function useProviderActionContext(state: Partial): void { provide(ActionContextKey, { ...defaultActionContext, ...state }); } export function useInjectActionContext(): ActionContext { return inject(ActionContextKey, defaultActionContext); }