useSize.js 730 B

123456789101112131415161718192021
  1. import { computed, inject, provide } from 'vue';
  2. import { defaultConfigProvider } from '../../config-provider';
  3. var sizeProvider = Symbol('SizeProvider');
  4. var useProvideSize = function useProvideSize(props) {
  5. var configProvider = inject('configProvider', defaultConfigProvider);
  6. var size = computed(function () {
  7. return props.size || configProvider.componentSize;
  8. });
  9. provide(sizeProvider, size);
  10. return size;
  11. };
  12. var useInjectSize = function useInjectSize(props) {
  13. var size = props ? computed(function () {
  14. return props.size;
  15. }) : inject(sizeProvider, computed(function () {
  16. return 'default';
  17. }));
  18. return size;
  19. };
  20. export { useInjectSize, sizeProvider, useProvideSize };
  21. export default useProvideSize;