@jobber/components-native 0.80.1-upgrade-to-2ee92b7.19 → 0.80.2

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.
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { AtlantisThemeContextProviderProps, AtlantisThemeContextValue } from "./types";
3
- export declare function AtlantisThemeContextProvider({ children, dangerouslyOverrideTheme, }: AtlantisThemeContextProviderProps): React.JSX.Element;
2
+ export declare function AtlantisThemeContextProvider({ children, dangerouslyOverrideTheme, }: AtlantisThemeContextProviderProps): JSX.Element;
4
3
  export declare function useAtlantisTheme(): AtlantisThemeContextValue;
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { useSizeStyles } from "./Glimmer.size.style";
3
2
  import { useShapeStyles } from "./Glimmer.shape.style";
4
3
  export type GlimmerShapes = keyof ReturnType<typeof useShapeStyles>;
@@ -27,5 +26,5 @@ interface GlimmerProps {
27
26
  }
28
27
  export declare const GLIMMER_TEST_ID = "ATL-Glimmer";
29
28
  export declare const GLIMMER_SHINE_TEST_ID = "ATL-Glimmer-Shine";
30
- export declare function Glimmer({ width, shape, size, timing, }: GlimmerProps): React.JSX.Element;
29
+ export declare function Glimmer({ width, shape, size, timing, }: GlimmerProps): JSX.Element;
31
30
  export {};
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  interface ProgressBarSteppedProps {
3
2
  readonly total: number;
4
3
  readonly current: number;
@@ -6,5 +5,5 @@ interface ProgressBarSteppedProps {
6
5
  readonly loading?: boolean;
7
6
  readonly inProgress?: number;
8
7
  }
9
- export declare function ProgressBarStepped({ total, current, color, loading, inProgress, }: ProgressBarSteppedProps): React.JSX.Element;
8
+ export declare function ProgressBarStepped({ total, current, color, loading, inProgress, }: ProgressBarSteppedProps): JSX.Element;
10
9
  export {};
package/jestSetup.js CHANGED
@@ -33,6 +33,5 @@ jest.mock("react-native-reanimated", () => {
33
33
  FadeIn: {
34
34
  duration: () => undefined,
35
35
  },
36
- useEvent: () => ({ listeners: [] }),
37
36
  };
38
37
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components-native",
3
- "version": "0.80.1-upgrade-to-2ee92b7.19+2ee92b75",
3
+ "version": "0.80.2",
4
4
  "license": "MIT",
5
5
  "description": "React Native implementation of Atlantis",
6
6
  "repository": {
@@ -70,7 +70,7 @@
70
70
  "date-fns-tz": "^2.0.0",
71
71
  "react": "^18.2.0",
72
72
  "react-intl": "^6.4.2",
73
- "react-native": ">=0.76.0",
73
+ "react-native": ">=0.69.2",
74
74
  "react-native-gesture-handler": ">=2.10.0",
75
75
  "react-native-keyboard-aware-scroll-view": "^0.9.5",
76
76
  "react-native-modal-datetime-picker": " >=13.0.0",
@@ -80,5 +80,5 @@
80
80
  "react-native-safe-area-context": "^4.5.2",
81
81
  "react-native-svg": ">=12.0.0"
82
82
  },
83
- "gitHead": "2ee92b753e53fd4b5235e27553378ad899192068"
83
+ "gitHead": "f9f0fd3344b7bdc1198d5fd23a6f4057ad31f9c4"
84
84
  }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { fireEvent, render, screen } from "@testing-library/react-native";
2
+ import { fireEvent, render } from "@testing-library/react-native";
3
3
  import { ReactTestInstance } from "react-test-renderer";
4
4
  import { Disclosure } from ".";
5
5
  import { Text } from "../Text";
@@ -23,107 +23,49 @@ function fireLayoutEvent(disclosureContent: ReactTestInstance) {
23
23
  });
24
24
  }
25
25
 
26
- describe("Disclosure", () => {
27
- const defaultProps = {
28
- header: <Text>This is the header</Text>,
29
- content: <Text>This is the content</Text>,
30
- onToggle: jest.fn(),
31
- };
32
-
33
- it("renders a Disclosure with a header and a content when open is true", () => {
34
- render(
35
- <Disclosure
36
- header={<Text>This is the header</Text>}
37
- content={<Text>This is the content</Text>}
38
- open={true}
39
- isEmpty={false}
40
- onToggle={() => {
41
- return;
42
- }}
43
- />,
44
- );
45
-
46
- expect(screen.getByText("This is the header")).toBeTruthy();
47
-
48
- const content = screen.getByTestId("content");
49
- fireLayoutEvent(content);
50
-
51
- expect(screen.getByText("This is the content")).toBeTruthy();
52
- expect(screen.getByTestId("arrowUp")).toBeTruthy();
53
- });
54
-
55
- it("renders a Disclosure with a header and with a content of size 0 when open is false", () => {
56
- render(
57
- <Disclosure
58
- header={<Text>This is the header</Text>}
59
- content={<Text>This is the content</Text>}
60
- open={false}
61
- isEmpty={false}
62
- onToggle={() => {
63
- return;
64
- }}
65
- />,
66
- );
67
-
68
- expect(screen.getByText("This is the header")).toBeTruthy();
69
-
70
- const content = screen.getByTestId("content");
71
- fireLayoutEvent(content);
72
-
73
- expect(screen.getByText("This is the content")).toBeTruthy();
74
- expect(screen.getByTestId("arrowUp")).toBeTruthy();
75
- });
76
-
77
- it("should not render the caret when the Disclosure is empty", () => {
78
- render(
79
- <Disclosure
80
- header={<Text>This is the header</Text>}
81
- content={<Text>This is the content</Text>}
82
- open={false}
83
- isEmpty={true}
84
- onToggle={() => {
85
- return;
86
- }}
87
- />,
88
- );
89
-
90
- expect(screen.getByText("This is the header")).toBeTruthy();
91
- expect(screen.queryByTestId("arrowUp")).toBeNull();
92
- });
93
-
94
- it("calls onToggle when header is pressed", () => {
95
- const onToggleMock = jest.fn();
96
- const { getByText } = render(
97
- <Disclosure
98
- {...defaultProps}
99
- onToggle={onToggleMock}
100
- open={false}
101
- isEmpty={false}
102
- />,
103
- );
104
-
105
- const headerText = getByText("This is the header");
106
-
107
- fireEvent.press(headerText);
108
-
109
- expect(onToggleMock).toHaveBeenCalledTimes(1);
110
- });
111
-
112
- it("does not call onToggle when header is pressed and isEmpty is true", () => {
113
- const onToggleMock = jest.fn();
114
- const { getByText } = render(
115
- <Disclosure
116
- {...defaultProps}
117
- onToggle={onToggleMock}
118
- open={false}
119
- isEmpty={true}
120
- />,
121
- );
122
-
123
- const headerText = getByText("This is the header");
26
+ it("renders a Disclosure with a header and a content when open is true", () => {
27
+ const disclosure = render(
28
+ <Disclosure
29
+ header={<Text>This is the header</Text>}
30
+ content={<Text>This is the content</Text>}
31
+ open={true}
32
+ isEmpty={false}
33
+ onToggle={() => {
34
+ return;
35
+ }}
36
+ />,
37
+ );
38
+ fireLayoutEvent(disclosure.getByTestId("content"));
39
+ expect(disclosure).toMatchSnapshot();
40
+ });
124
41
 
125
- fireEvent.press(headerText);
42
+ it("renders a Disclosure with a header and with a content of size 0 when closed is false", () => {
43
+ const disclosure = render(
44
+ <Disclosure
45
+ header={<Text>This is the header</Text>}
46
+ content={<Text>This is the content</Text>}
47
+ open={false}
48
+ isEmpty={false}
49
+ onToggle={() => {
50
+ return;
51
+ }}
52
+ />,
53
+ );
54
+ fireLayoutEvent(disclosure.getByTestId("content"));
55
+ expect(disclosure).toMatchSnapshot();
56
+ });
126
57
 
127
- expect(onToggleMock).not.toHaveBeenCalled();
128
- });
58
+ it("should not render the caret when the Disclosure is empty", () => {
59
+ const disclosure = render(
60
+ <Disclosure
61
+ header={<Text>This is the header</Text>}
62
+ content={<Text>This is the content</Text>}
63
+ open={false}
64
+ isEmpty={true}
65
+ onToggle={() => {
66
+ return;
67
+ }}
68
+ />,
69
+ );
70
+ expect(disclosure).toMatchSnapshot();
129
71
  });
@@ -0,0 +1,482 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`renders a Disclosure with a header and a content when open is true 1`] = `
4
+ <View
5
+ style={
6
+ {
7
+ "width": "100%",
8
+ }
9
+ }
10
+ >
11
+ <View
12
+ accessibilityState={
13
+ {
14
+ "busy": undefined,
15
+ "checked": undefined,
16
+ "disabled": false,
17
+ "expanded": undefined,
18
+ "selected": undefined,
19
+ }
20
+ }
21
+ accessibilityValue={
22
+ {
23
+ "max": undefined,
24
+ "min": undefined,
25
+ "now": undefined,
26
+ "text": undefined,
27
+ }
28
+ }
29
+ accessible={true}
30
+ collapsable={false}
31
+ focusable={true}
32
+ onClick={[Function]}
33
+ onResponderGrant={[Function]}
34
+ onResponderMove={[Function]}
35
+ onResponderRelease={[Function]}
36
+ onResponderTerminate={[Function]}
37
+ onResponderTerminationRequest={[Function]}
38
+ onStartShouldSetResponder={[Function]}
39
+ style={
40
+ {
41
+ "opacity": 1,
42
+ }
43
+ }
44
+ >
45
+ <View
46
+ style={
47
+ {
48
+ "alignItems": "flex-start",
49
+ "flexDirection": "row",
50
+ "justifyContent": "space-between",
51
+ }
52
+ }
53
+ >
54
+ <Text
55
+ accessibilityRole="text"
56
+ adjustsFontSizeToFit={false}
57
+ allowFontScaling={true}
58
+ collapsable={false}
59
+ maxFontSizeMultiplier={3.125}
60
+ selectable={true}
61
+ selectionColor="hsl(86, 100%, 46%)"
62
+ style={
63
+ [
64
+ {
65
+ "fontFamily": "inter-regular",
66
+ },
67
+ {
68
+ "color": "hsl(198, 35%, 21%)",
69
+ },
70
+ {
71
+ "textAlign": "left",
72
+ },
73
+ {
74
+ "fontSize": 16,
75
+ "lineHeight": 20,
76
+ },
77
+ {
78
+ "letterSpacing": 0,
79
+ },
80
+ ]
81
+ }
82
+ >
83
+ This is the header
84
+ </Text>
85
+ <View
86
+ style={
87
+ [
88
+ {
89
+ "transform": [
90
+ {
91
+ "rotateZ": "0deg",
92
+ },
93
+ ],
94
+ },
95
+ ]
96
+ }
97
+ >
98
+ <SVGMock
99
+ style={
100
+ {
101
+ "display": "flex",
102
+ "fill": "hsl(0, 0%, 72%)",
103
+ "height": 24,
104
+ "verticalAlign": "middle",
105
+ "width": 24,
106
+ }
107
+ }
108
+ testID="arrowUp"
109
+ viewBox="0 0 24 24"
110
+ >
111
+ <Path
112
+ d="M16.297 14.709a.996.996 0 0 0 1.41-.001.994.994 0 0 0 0-1.41l-5-5.005a.998.998 0 0 0-1.415 0l-5 5a.994.994 0 0 0 0 1.41.996.996 0 0 0 1.411.001L12 10.416l4.297 4.293Z"
113
+ fill="hsl(0, 0%, 72%)"
114
+ />
115
+ </SVGMock>
116
+ </View>
117
+ </View>
118
+ </View>
119
+ <RCTScrollView
120
+ collapsable={false}
121
+ scrollEnabled={false}
122
+ scrollEventThrottle={0.0001}
123
+ showsHorizontalScrollIndicator={false}
124
+ showsVerticalScrollIndicator={false}
125
+ style={
126
+ {
127
+ "height": 100,
128
+ "paddingTop": 8,
129
+ }
130
+ }
131
+ >
132
+ <View>
133
+ <View
134
+ onLayout={[Function]}
135
+ testID="content"
136
+ >
137
+ <Text
138
+ accessibilityRole="text"
139
+ adjustsFontSizeToFit={false}
140
+ allowFontScaling={true}
141
+ collapsable={false}
142
+ maxFontSizeMultiplier={3.125}
143
+ selectable={true}
144
+ selectionColor="hsl(86, 100%, 46%)"
145
+ style={
146
+ [
147
+ {
148
+ "fontFamily": "inter-regular",
149
+ },
150
+ {
151
+ "color": "hsl(198, 35%, 21%)",
152
+ },
153
+ {
154
+ "textAlign": "left",
155
+ },
156
+ {
157
+ "fontSize": 16,
158
+ "lineHeight": 20,
159
+ },
160
+ {
161
+ "letterSpacing": 0,
162
+ },
163
+ ]
164
+ }
165
+ >
166
+ This is the content
167
+ </Text>
168
+ </View>
169
+ </View>
170
+ </RCTScrollView>
171
+ </View>
172
+ `;
173
+
174
+ exports[`renders a Disclosure with a header and with a content of size 0 when closed is false 1`] = `
175
+ <View
176
+ style={
177
+ {
178
+ "width": "100%",
179
+ }
180
+ }
181
+ >
182
+ <View
183
+ accessibilityState={
184
+ {
185
+ "busy": undefined,
186
+ "checked": undefined,
187
+ "disabled": false,
188
+ "expanded": undefined,
189
+ "selected": undefined,
190
+ }
191
+ }
192
+ accessibilityValue={
193
+ {
194
+ "max": undefined,
195
+ "min": undefined,
196
+ "now": undefined,
197
+ "text": undefined,
198
+ }
199
+ }
200
+ accessible={true}
201
+ collapsable={false}
202
+ focusable={true}
203
+ onClick={[Function]}
204
+ onResponderGrant={[Function]}
205
+ onResponderMove={[Function]}
206
+ onResponderRelease={[Function]}
207
+ onResponderTerminate={[Function]}
208
+ onResponderTerminationRequest={[Function]}
209
+ onStartShouldSetResponder={[Function]}
210
+ style={
211
+ {
212
+ "opacity": 1,
213
+ }
214
+ }
215
+ >
216
+ <View
217
+ style={
218
+ {
219
+ "alignItems": "flex-start",
220
+ "flexDirection": "row",
221
+ "justifyContent": "space-between",
222
+ }
223
+ }
224
+ >
225
+ <Text
226
+ accessibilityRole="text"
227
+ adjustsFontSizeToFit={false}
228
+ allowFontScaling={true}
229
+ collapsable={false}
230
+ maxFontSizeMultiplier={3.125}
231
+ selectable={true}
232
+ selectionColor="hsl(86, 100%, 46%)"
233
+ style={
234
+ [
235
+ {
236
+ "fontFamily": "inter-regular",
237
+ },
238
+ {
239
+ "color": "hsl(198, 35%, 21%)",
240
+ },
241
+ {
242
+ "textAlign": "left",
243
+ },
244
+ {
245
+ "fontSize": 16,
246
+ "lineHeight": 20,
247
+ },
248
+ {
249
+ "letterSpacing": 0,
250
+ },
251
+ ]
252
+ }
253
+ >
254
+ This is the header
255
+ </Text>
256
+ <View
257
+ style={
258
+ [
259
+ {
260
+ "transform": [
261
+ {
262
+ "rotateZ": "-180deg",
263
+ },
264
+ ],
265
+ },
266
+ ]
267
+ }
268
+ >
269
+ <SVGMock
270
+ style={
271
+ {
272
+ "display": "flex",
273
+ "fill": "hsl(0, 0%, 72%)",
274
+ "height": 24,
275
+ "verticalAlign": "middle",
276
+ "width": 24,
277
+ }
278
+ }
279
+ testID="arrowUp"
280
+ viewBox="0 0 24 24"
281
+ >
282
+ <Path
283
+ d="M16.297 14.709a.996.996 0 0 0 1.41-.001.994.994 0 0 0 0-1.41l-5-5.005a.998.998 0 0 0-1.415 0l-5 5a.994.994 0 0 0 0 1.41.996.996 0 0 0 1.411.001L12 10.416l4.297 4.293Z"
284
+ fill="hsl(0, 0%, 72%)"
285
+ />
286
+ </SVGMock>
287
+ </View>
288
+ </View>
289
+ </View>
290
+ <RCTScrollView
291
+ collapsable={false}
292
+ scrollEnabled={false}
293
+ scrollEventThrottle={0.0001}
294
+ showsHorizontalScrollIndicator={false}
295
+ showsVerticalScrollIndicator={false}
296
+ style={
297
+ {
298
+ "height": 0,
299
+ "paddingTop": 8,
300
+ }
301
+ }
302
+ >
303
+ <View>
304
+ <View
305
+ onLayout={[Function]}
306
+ testID="content"
307
+ >
308
+ <Text
309
+ accessibilityRole="text"
310
+ adjustsFontSizeToFit={false}
311
+ allowFontScaling={true}
312
+ collapsable={false}
313
+ maxFontSizeMultiplier={3.125}
314
+ selectable={true}
315
+ selectionColor="hsl(86, 100%, 46%)"
316
+ style={
317
+ [
318
+ {
319
+ "fontFamily": "inter-regular",
320
+ },
321
+ {
322
+ "color": "hsl(198, 35%, 21%)",
323
+ },
324
+ {
325
+ "textAlign": "left",
326
+ },
327
+ {
328
+ "fontSize": 16,
329
+ "lineHeight": 20,
330
+ },
331
+ {
332
+ "letterSpacing": 0,
333
+ },
334
+ ]
335
+ }
336
+ >
337
+ This is the content
338
+ </Text>
339
+ </View>
340
+ </View>
341
+ </RCTScrollView>
342
+ </View>
343
+ `;
344
+
345
+ exports[`should not render the caret when the Disclosure is empty 1`] = `
346
+ <View
347
+ style={
348
+ {
349
+ "width": "100%",
350
+ }
351
+ }
352
+ >
353
+ <View
354
+ accessibilityState={
355
+ {
356
+ "busy": undefined,
357
+ "checked": undefined,
358
+ "disabled": true,
359
+ "expanded": undefined,
360
+ "selected": undefined,
361
+ }
362
+ }
363
+ accessibilityValue={
364
+ {
365
+ "max": undefined,
366
+ "min": undefined,
367
+ "now": undefined,
368
+ "text": undefined,
369
+ }
370
+ }
371
+ accessible={true}
372
+ collapsable={false}
373
+ focusable={true}
374
+ onClick={[Function]}
375
+ onResponderGrant={[Function]}
376
+ onResponderMove={[Function]}
377
+ onResponderRelease={[Function]}
378
+ onResponderTerminate={[Function]}
379
+ onResponderTerminationRequest={[Function]}
380
+ onStartShouldSetResponder={[Function]}
381
+ style={
382
+ {
383
+ "opacity": 1,
384
+ }
385
+ }
386
+ >
387
+ <View
388
+ style={
389
+ {
390
+ "alignItems": "flex-start",
391
+ "flexDirection": "row",
392
+ "justifyContent": "space-between",
393
+ }
394
+ }
395
+ >
396
+ <Text
397
+ accessibilityRole="text"
398
+ adjustsFontSizeToFit={false}
399
+ allowFontScaling={true}
400
+ collapsable={false}
401
+ maxFontSizeMultiplier={3.125}
402
+ selectable={true}
403
+ selectionColor="hsl(86, 100%, 46%)"
404
+ style={
405
+ [
406
+ {
407
+ "fontFamily": "inter-regular",
408
+ },
409
+ {
410
+ "color": "hsl(198, 35%, 21%)",
411
+ },
412
+ {
413
+ "textAlign": "left",
414
+ },
415
+ {
416
+ "fontSize": 16,
417
+ "lineHeight": 20,
418
+ },
419
+ {
420
+ "letterSpacing": 0,
421
+ },
422
+ ]
423
+ }
424
+ >
425
+ This is the header
426
+ </Text>
427
+ </View>
428
+ </View>
429
+ <RCTScrollView
430
+ collapsable={false}
431
+ scrollEnabled={false}
432
+ scrollEventThrottle={0.0001}
433
+ showsHorizontalScrollIndicator={false}
434
+ showsVerticalScrollIndicator={false}
435
+ style={
436
+ {
437
+ "height": 0,
438
+ "paddingTop": 8,
439
+ }
440
+ }
441
+ >
442
+ <View>
443
+ <View
444
+ onLayout={[Function]}
445
+ testID="content"
446
+ >
447
+ <Text
448
+ accessibilityRole="text"
449
+ adjustsFontSizeToFit={false}
450
+ allowFontScaling={true}
451
+ collapsable={false}
452
+ maxFontSizeMultiplier={3.125}
453
+ selectable={true}
454
+ selectionColor="hsl(86, 100%, 46%)"
455
+ style={
456
+ [
457
+ {
458
+ "fontFamily": "inter-regular",
459
+ },
460
+ {
461
+ "color": "hsl(198, 35%, 21%)",
462
+ },
463
+ {
464
+ "textAlign": "left",
465
+ },
466
+ {
467
+ "fontSize": 16,
468
+ "lineHeight": 20,
469
+ },
470
+ {
471
+ "letterSpacing": 0,
472
+ },
473
+ ]
474
+ }
475
+ >
476
+ This is the content
477
+ </Text>
478
+ </View>
479
+ </View>
480
+ </RCTScrollView>
481
+ </View>
482
+ `;
@@ -545,7 +545,7 @@ describe("Form", () => {
545
545
  });
546
546
 
547
547
  describe("Safe Area", () => {
548
- it("does render a safe area when there's NO saveButtonOffset provided", () => {
548
+ it("does render a safe area when there's a saveButtonOffset is provided", () => {
549
549
  const { getByTestId } = render(<FormTest onSubmit={onSubmitMock} />);
550
550
 
551
551
  expect(getByTestId("ATL-FormSafeArea")).toBeDefined();