import { inject } from "vue";

export const CellContextKey = Symbol("CellContext");

export interface CellContext {
  /**
   * 子组件设置单元格点击事件。注意：只能设置一次，后续设置会覆盖之前的设置。
   * @param listener 点击事件
   * @returns 
   */
  setOnClickListener: (listener: () => void) => void;
}

/**
 * 获取单元格上下文
 * @returns 单元格上下文
 */
export function useCellContext() {
  return inject<CellContext>(CellContextKey, null as any);
}
