useGutter.js 809 B

12345678910111213141516171819202122232425262728
  1. import { responsiveArray } from '../../_util/responsiveObserver';
  2. export default function useGutter(gutter, screens) {
  3. const results = [undefined, undefined];
  4. const normalizedGutter = Array.isArray(gutter) ? gutter : [gutter, undefined];
  5. // By default use as `xs`
  6. const mergedScreens = screens || {
  7. xs: true,
  8. sm: true,
  9. md: true,
  10. lg: true,
  11. xl: true,
  12. xxl: true
  13. };
  14. normalizedGutter.forEach((g, index) => {
  15. if (typeof g === 'object' && g !== null) {
  16. for (let i = 0; i < responsiveArray.length; i++) {
  17. const breakpoint = responsiveArray[i];
  18. if (mergedScreens[breakpoint] && g[breakpoint] !== undefined) {
  19. results[index] = g[breakpoint];
  20. break;
  21. }
  22. }
  23. } else {
  24. results[index] = g;
  25. }
  26. });
  27. return results;
  28. }