Dashboard sipadu mbip
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import forwardRef from '@restart/context/forwardRef';
  3. import React, { useContext, useMemo } from 'react';
  4. var ThemeContext = React.createContext({});
  5. var Consumer = ThemeContext.Consumer,
  6. Provider = ThemeContext.Provider;
  7. function ThemeProvider(_ref) {
  8. var prefixes = _ref.prefixes,
  9. children = _ref.children;
  10. var copiedPrefixes = useMemo(function () {
  11. return _extends({}, prefixes);
  12. }, [prefixes]);
  13. return React.createElement(Provider, {
  14. value: copiedPrefixes
  15. }, children);
  16. }
  17. export function useBootstrapPrefix(prefix, defaultPrefix) {
  18. var prefixes = useContext(ThemeContext);
  19. return prefix || prefixes[defaultPrefix] || defaultPrefix;
  20. }
  21. function createBootstrapComponent(Component, opts) {
  22. if (typeof opts === 'string') opts = {
  23. prefix: opts
  24. };
  25. var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref
  26. var _opts = opts,
  27. prefix = _opts.prefix,
  28. _opts$forwardRefAs = _opts.forwardRefAs,
  29. forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;
  30. return forwardRef(function (_ref2, ref) {
  31. var props = _extends({}, _ref2);
  32. props[forwardRefAs] = ref; // eslint-disable-next-line react/prop-types
  33. var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);
  34. return React.createElement(Component, _extends({}, props, {
  35. bsPrefix: bsPrefix
  36. }));
  37. }, {
  38. displayName: "Bootstrap(" + (Component.displayName || Component.name) + ")"
  39. });
  40. }
  41. export { createBootstrapComponent, Consumer as ThemeConsumer };
  42. export default ThemeProvider;