@simplybusiness/mobius 4.0.0-beta.3 → 4.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,6 @@ export type UseBreakpointType = {
9
9
  up: (size: SizeType) => boolean | undefined;
10
10
  down: (size: SizeType) => boolean | undefined;
11
11
  };
12
- export declare const DEFAULT_BREAKPOINT: Breakpoint;
13
- declare const useBreakpoint: () => UseBreakpointType;
12
+ export declare const DEFAULT_BREAKPOINTS: BreakpointsType;
13
+ declare const useBreakpoint: (customBreakpoints?: BreakpointsType) => UseBreakpointType;
14
14
  export { useBreakpoint };
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.useBreakpoint = exports.DEFAULT_BREAKPOINT = void 0;
7
+ exports.useBreakpoint = exports.DEFAULT_BREAKPOINTS = void 0;
8
8
  const lodash_debounce_1 = __importDefault(require("lodash.debounce"));
9
9
  const react_1 = require("react");
10
10
  // Hard code breakpoints for SB designs
11
- const breakpoints = [
11
+ exports.DEFAULT_BREAKPOINTS = [
12
12
  { size: "xs", value: 320 },
13
13
  { size: "sm", value: 480 },
14
14
  { size: "md", value: 670 },
@@ -16,8 +16,7 @@ const breakpoints = [
16
16
  { size: "xl", value: 1200 },
17
17
  { size: "xxl", value: 1320 },
18
18
  ];
19
- exports.DEFAULT_BREAKPOINT = breakpoints[0];
20
- const getBreakpoint = (windowWidth) => {
19
+ const getBreakpoint = (breakpoints, windowWidth) => {
21
20
  // When breakpoint size and windowWidth are a match
22
21
  // The addition of 1px ensures the right breakpoint
23
22
  const closest = breakpoints.findIndex(breakpoint => breakpoint.value >= windowWidth + 1);
@@ -30,25 +29,27 @@ const getBreakpoint = (windowWidth) => {
30
29
  return largest;
31
30
  return match;
32
31
  };
33
- const useBreakpoint = () => {
32
+ const useBreakpoint = (customBreakpoints) => {
34
33
  const window = (globalThis === null || globalThis === void 0 ? void 0 : globalThis.window) || undefined;
35
34
  const isClientSide = typeof window !== "undefined";
36
- const [windowWidth, setWindowWidth] = (0, react_1.useState)(isClientSide ? window.innerWidth : exports.DEFAULT_BREAKPOINT.value);
37
- const [currentBreakpoint, setCurrentBreakpoint] = (0, react_1.useState)(exports.DEFAULT_BREAKPOINT);
35
+ const breakpoints = customBreakpoints || exports.DEFAULT_BREAKPOINTS;
36
+ const defaultBreakpoint = breakpoints[0];
37
+ const [windowWidth, setWindowWidth] = (0, react_1.useState)(isClientSide ? window.innerWidth : defaultBreakpoint.value);
38
+ const [currentBreakpoint, setCurrentBreakpoint] = (0, react_1.useState)(defaultBreakpoint);
38
39
  const handleResize = () => {
39
40
  setWindowWidth(window.innerWidth);
40
41
  };
41
42
  (0, react_1.useEffect)(() => {
42
43
  if (!windowWidth || breakpoints.length === 0) {
43
- setCurrentBreakpoint(exports.DEFAULT_BREAKPOINT);
44
+ setCurrentBreakpoint(breakpoints[0]);
44
45
  return;
45
46
  }
46
- const newBreakpoint = getBreakpoint(windowWidth);
47
+ const newBreakpoint = getBreakpoint(breakpoints, windowWidth);
47
48
  // Don't update state if value is the same
48
49
  if (currentBreakpoint.size === (newBreakpoint === null || newBreakpoint === void 0 ? void 0 : newBreakpoint.size))
49
50
  return;
50
51
  setCurrentBreakpoint(newBreakpoint);
51
- }, [currentBreakpoint, windowWidth]);
52
+ }, [currentBreakpoint, windowWidth, breakpoints]);
52
53
  (0, react_1.useEffect)(() => {
53
54
  window.addEventListener("resize", (0, lodash_debounce_1.default)(handleResize, 200), {
54
55
  passive: true,
@@ -56,18 +57,32 @@ const useBreakpoint = () => {
56
57
  return () => window.removeEventListener("resize", handleResize);
57
58
  // eslint-disable-next-line react-hooks/exhaustive-deps
58
59
  }, [window]);
60
+ /**
61
+ * up(breakpointSize: string) => boolean
62
+ * Returns true if the current screen width >= breakpoint width
63
+ */
59
64
  const up = (0, react_1.useCallback)((size) => {
60
65
  const sizeIndex = breakpoints.findIndex(item => item.size === size);
66
+ if (sizeIndex === -1) {
67
+ return false;
68
+ }
61
69
  const currentIndex = breakpoints.findIndex(item => item.size === currentBreakpoint.size);
62
70
  return currentIndex >= sizeIndex;
63
- }, [currentBreakpoint]);
71
+ }, [currentBreakpoint, breakpoints]);
72
+ /**
73
+ * down(breakpointSize: string) => boolean
74
+ * Returns true if the current screen width <= breakpoint width
75
+ */
64
76
  const down = (0, react_1.useCallback)((size) => {
65
77
  const sizeIndex = breakpoints.findIndex(item => item.size === size);
78
+ if (sizeIndex === -1) {
79
+ return true;
80
+ }
66
81
  const currentIndex = breakpoints.findIndex(item => item.size === currentBreakpoint.size);
67
82
  return currentIndex <= sizeIndex;
68
- }, [currentBreakpoint]);
83
+ }, [currentBreakpoint, breakpoints]);
69
84
  return {
70
- breakpoint: isClientSide ? currentBreakpoint : exports.DEFAULT_BREAKPOINT,
85
+ breakpoint: isClientSide ? currentBreakpoint : defaultBreakpoint,
71
86
  up,
72
87
  down,
73
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useBreakpoint.js","sourceRoot":"","sources":["../../../../src/hooks/useBreakpoint/useBreakpoint.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBreakpoint.js","sourceRoot":"","sources":["../../../../src/hooks/useBreakpoint/useBreakpoint.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { Meta } from "@storybook/react";
2
2
  import { useBreakpoint } from "./useBreakpoint";
3
3
  declare const _default: {
4
4
  title: string;
5
- component: () => import("./useBreakpoint").UseBreakpointType;
5
+ component: (customBreakpoints?: import("./useBreakpoint").BreakpointsType | undefined) => import("./useBreakpoint").UseBreakpointType;
6
6
  decorators: ((Story: any) => import("react/jsx-runtime").JSX.Element)[];
7
7
  };
8
8
  export default _default;
@@ -7,6 +7,7 @@ const TestComponent = () => {
7
7
  const { breakpoint } = (0, _1.useBreakpoint)();
8
8
  return (0, jsx_runtime_1.jsx)("div", { children: breakpoint.size });
9
9
  };
10
+ const customWrapper = ({ children }) => ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(TestComponent, {}), children] }));
10
11
  describe("useBreakpoint", () => {
11
12
  beforeAll(() => {
12
13
  Object.defineProperty(window, "innerWidth", {
@@ -21,7 +22,22 @@ describe("useBreakpoint", () => {
21
22
  describe("given no breakpoints are provided through a Context", () => {
22
23
  it("returns default breakpoint", () => {
23
24
  (0, react_1.render)((0, jsx_runtime_1.jsx)(TestComponent, {}));
24
- expect(react_1.screen.getByText(_1.DEFAULT_BREAKPOINT.size)).toBeInTheDocument();
25
+ expect(react_1.screen.getByText(_1.DEFAULT_BREAKPOINTS[0].size)).toBeInTheDocument();
26
+ });
27
+ });
28
+ describe.each([
29
+ [300, "xs"],
30
+ [600, "sm"],
31
+ [670, "md"],
32
+ [800, "md"],
33
+ [1000, "lg"],
34
+ [1200, "xl"],
35
+ [1400, "xxl"],
36
+ ])("given window width %s", (size, expected) => {
37
+ it(`it returns breakpoint ${expected}`, () => {
38
+ setWindowWidth(size);
39
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)());
40
+ expect(result.current.breakpoint.size).toEqual(expected);
25
41
  });
26
42
  });
27
43
  describe("up", () => {
@@ -96,8 +112,7 @@ describe("useBreakpoint", () => {
96
112
  describe.each(table)("given window width %s", (value, expected) => {
97
113
  it.each(expected)("it returns %s for breakpoint %s", (expectedResult, breakpoint) => {
98
114
  setWindowWidth(value);
99
- const wrapper = ({ children }) => (0, jsx_runtime_1.jsx)("div", { children: children });
100
- const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)(), { wrapper });
115
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)());
101
116
  expect(result.current.up(breakpoint)).toBe(expectedResult);
102
117
  });
103
118
  });
@@ -174,11 +189,189 @@ describe("useBreakpoint", () => {
174
189
  describe.each(table)("given window width %s", (value, expected) => {
175
190
  it.each(expected)("it returns %s for breakpoint %s", (expectedResult, breakpoint) => {
176
191
  setWindowWidth(value);
177
- const wrapper = ({ children }) => (0, jsx_runtime_1.jsx)("div", { children: children });
178
- const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)(), { wrapper });
192
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)());
179
193
  expect(result.current.down(breakpoint)).toBe(expectedResult);
180
194
  });
181
195
  });
182
196
  });
197
+ describe("respects custom breakpoints when supplied", () => {
198
+ const customBreakpoints = [
199
+ { size: "xs", value: 320 },
200
+ { size: "sm", value: 480 },
201
+ { size: "md", value: 600 },
202
+ { size: "lg", value: 850 },
203
+ { size: "xl", value: 1024 },
204
+ ];
205
+ it("returns default breakpoint", () => {
206
+ setWindowWidth(0);
207
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)(customBreakpoints));
208
+ expect(result.current.breakpoint.size).toEqual(customBreakpoints[0].size);
209
+ });
210
+ describe.each([
211
+ [300, "xs"],
212
+ [490, "sm"],
213
+ [600, "md"],
214
+ [800, "md"],
215
+ [860, "lg"],
216
+ [1000, "lg"],
217
+ [1400, "xl"],
218
+ ])("given window width %s", (size, expected) => {
219
+ it(`it returns breakpoint ${expected}`, () => {
220
+ setWindowWidth(size);
221
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)(customBreakpoints), {
222
+ wrapper: customWrapper,
223
+ });
224
+ expect(result.current.breakpoint.size).toEqual(expected);
225
+ });
226
+ });
227
+ describe("up", () => {
228
+ const table = [
229
+ [
230
+ 300,
231
+ [
232
+ [true, "xs"],
233
+ [false, "sm"],
234
+ [false, "md"],
235
+ [false, "lg"],
236
+ [false, "xl"],
237
+ [false, "xxl"],
238
+ ],
239
+ ],
240
+ [
241
+ 600,
242
+ [
243
+ [true, "xs"],
244
+ [true, "sm"],
245
+ [true, "md"],
246
+ [false, "lg"],
247
+ [false, "xl"],
248
+ [false, "xxl"],
249
+ ],
250
+ ],
251
+ [
252
+ 800,
253
+ [
254
+ [true, "xs"],
255
+ [true, "sm"],
256
+ [true, "md"],
257
+ [false, "lg"],
258
+ [false, "xl"],
259
+ [false, "xxl"],
260
+ ],
261
+ ],
262
+ [
263
+ 1000,
264
+ [
265
+ [true, "xs"],
266
+ [true, "sm"],
267
+ [true, "md"],
268
+ [true, "lg"],
269
+ [false, "xl"],
270
+ [false, "xxl"],
271
+ ],
272
+ ],
273
+ [
274
+ 1200,
275
+ [
276
+ [true, "xs"],
277
+ [true, "sm"],
278
+ [true, "md"],
279
+ [true, "lg"],
280
+ [true, "xl"],
281
+ [false, "xxl"],
282
+ ],
283
+ ],
284
+ [
285
+ 1400,
286
+ [
287
+ [true, "xs"],
288
+ [true, "sm"],
289
+ [true, "md"],
290
+ [true, "lg"],
291
+ [true, "xl"],
292
+ [false, "xxl"],
293
+ ],
294
+ ],
295
+ ];
296
+ describe.each(table)("given window width %s", (value, expected) => {
297
+ it.each(expected)("it returns %s for breakpoint %s", (expectedResult, breakpoint) => {
298
+ setWindowWidth(value);
299
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)(customBreakpoints));
300
+ expect(result.current.up(breakpoint)).toBe(expectedResult);
301
+ });
302
+ });
303
+ });
304
+ describe("down", () => {
305
+ const table = [
306
+ [
307
+ 300,
308
+ [
309
+ [true, "xs"],
310
+ [true, "sm"],
311
+ [true, "md"],
312
+ [true, "lg"],
313
+ [true, "xl"],
314
+ ],
315
+ ],
316
+ [
317
+ 600,
318
+ [
319
+ [false, "xs"],
320
+ [true, "sm"],
321
+ [true, "md"],
322
+ [true, "lg"],
323
+ [true, "xl"],
324
+ ],
325
+ ],
326
+ [
327
+ 800,
328
+ [
329
+ [false, "xs"],
330
+ [false, "sm"],
331
+ [true, "md"],
332
+ [true, "lg"],
333
+ [true, "xl"],
334
+ ],
335
+ ],
336
+ [
337
+ 1000,
338
+ [
339
+ [false, "xs"],
340
+ [false, "sm"],
341
+ [false, "md"],
342
+ [true, "lg"],
343
+ [true, "xl"],
344
+ ],
345
+ ],
346
+ [
347
+ 1200,
348
+ [
349
+ [false, "xs"],
350
+ [false, "sm"],
351
+ [false, "md"],
352
+ [false, "lg"],
353
+ [true, "xl"],
354
+ ],
355
+ ],
356
+ [
357
+ 1400,
358
+ [
359
+ [false, "xs"],
360
+ [false, "sm"],
361
+ [false, "md"],
362
+ [false, "lg"],
363
+ [false, "xl"],
364
+ ],
365
+ ],
366
+ ];
367
+ describe.each(table)("given window width %s", (value, expected) => {
368
+ it.each(expected)("it returns %s for breakpoint %s", (expectedResult, breakpoint) => {
369
+ setWindowWidth(value);
370
+ const { result } = (0, react_1.renderHook)(() => (0, _1.useBreakpoint)());
371
+ expect(result.current.down(breakpoint)).toBe(expectedResult);
372
+ });
373
+ });
374
+ });
375
+ });
183
376
  });
184
377
  //# sourceMappingURL=useBreakpoint.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBreakpoint.test.js","sourceRoot":"","sources":["../../../../src/hooks/useBreakpoint/useBreakpoint.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBreakpoint.test.js","sourceRoot":"","sources":["../../../../src/hooks/useBreakpoint/useBreakpoint.test.tsx"],"names":[],"mappings":"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"}