SizeContext.js 363 B

12345678910
  1. import { computed, inject, ref, provide } from 'vue';
  2. const SizeContextKey = Symbol('SizeContextKey');
  3. export const useInjectSize = () => {
  4. return inject(SizeContextKey, ref(undefined));
  5. };
  6. export const useProviderSize = size => {
  7. const parentSize = useInjectSize();
  8. provide(SizeContextKey, computed(() => size.value || parentSize.value));
  9. return size;
  10. };