import type { InjectionKey, Ref } from 'vue';
import { inject, provide } from 'vue';

export interface ExpandedRowProps {
  componentWidth: Ref<number>;
  fixHeader: Ref<boolean>;
  fixColumn: Ref<boolean>;
  horizonScroll: Ref<boolean>;
}
export const ExpandedRowContextKey: InjectionKey<ExpandedRowProps> = Symbol('ExpandedRowProps');

export const useProvideExpandedRow = (props: ExpandedRowProps) => {
  provide(ExpandedRowContextKey, props);
};

export const useInjectExpandedRow = () => {
  return inject(ExpandedRowContextKey, {} as ExpandedRowProps);
};