@terreno/ui 0.11.8 → 0.12.0
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.
- package/dist/ConsentFormScreen.js +2 -2
- package/dist/ConsentFormScreen.js.map +1 -1
- package/dist/SidebarNavigation.js.map +1 -1
- package/package.json +1 -1
- package/src/ConsentFormScreen.tsx +21 -19
- package/src/HeightField.test.tsx +30 -0
- package/src/HeightFieldDesktop.test.tsx +31 -0
- package/src/SegmentedControl.test.tsx +8 -0
- package/src/SidebarNavigation.tsx +9 -5
- package/src/SignatureField.test.tsx +2 -2
- package/src/Utilities.test.tsx +15 -12
|
@@ -85,8 +85,8 @@ export const ConsentFormScreen = ({ form, isSubmitting = false, locale, onAgree,
|
|
|
85
85
|
onAgree({ checkboxValues, signature: signatureValue });
|
|
86
86
|
};
|
|
87
87
|
const confirmingCheckbox = confirmModalCheckboxIndex !== null ? form.checkboxes[confirmModalCheckboxIndex] : null;
|
|
88
|
-
const footer = (
|
|
89
|
-
return (_jsxs(Page, { footer: footer, scroll: false, title: form.title, children: [_jsx(ScrollView, { onContentSizeChange: handleContentSizeChange, onLayout: handleLayout, onScroll: handleScroll, scrollEnabled: scrollEnabled, scrollEventThrottle: 16, style: { flex: 1 }, testID: "consent-form-scroll-view", children: _jsxs(Box, { direction: "column", gap: 3, paddingY: 2, children: [_jsx(MarkdownView, { children: content }), form.checkboxes.length > 0 && (_jsx(Box, { direction: "column", gap: 2, testID: "consent-form-checkboxes", children: form.checkboxes.map((checkbox, index) => {
|
|
88
|
+
const footer = (_jsx(Box, { alignSelf: "center", maxWidth: 800, testID: "consent-form-footer", width: "100%", children: _jsxs(Box, { direction: "row", gap: 4, paddingY: 2, width: "100%", children: [Boolean(form.allowDecline && onDecline) && (_jsx(Box, { flex: "grow", children: _jsx(Button, { fullWidth: true, onClick: onDecline, testID: "consent-form-decline-button", text: form.declineButtonText, variant: "muted" }) })), _jsx(Box, { flex: "grow", children: _jsx(Button, { disabled: !canAgree, fullWidth: true, loading: isSubmitting, onClick: handleAgree, testID: "consent-form-agree-button", text: form.agreeButtonText }) })] }) }));
|
|
89
|
+
return (_jsxs(Page, { color: "base", footer: footer, maxWidth: "100%", scroll: false, title: form.title, children: [_jsx(ScrollView, { onContentSizeChange: handleContentSizeChange, onLayout: handleLayout, onScroll: handleScroll, scrollEnabled: scrollEnabled, scrollEventThrottle: 16, style: { alignSelf: "center", flex: 1, maxWidth: 800, width: "100%" }, testID: "consent-form-scroll-view", children: _jsxs(Box, { direction: "column", gap: 3, paddingY: 2, children: [_jsx(MarkdownView, { children: content }), form.checkboxes.length > 0 && (_jsx(Box, { direction: "column", gap: 2, testID: "consent-form-checkboxes", children: form.checkboxes.map((checkbox, index) => {
|
|
90
90
|
var _a;
|
|
91
91
|
const key = index.toString();
|
|
92
92
|
const isChecked = (_a = checkboxValues[key]) !== null && _a !== void 0 ? _a : false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsentFormScreen.js","sourceRoot":"","sources":["../src/ConsentFormScreen.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ConsentFormScreen.js","sourceRoot":"","sources":["../src/ConsentFormScreen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidebarNavigation.js","sourceRoot":"","sources":["../src/SidebarNavigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC,MAAM,aAAa,CAAC;AAC5C,gGAAgG;AAChG,gGAAgG;AAChG,2FAA2F;AAC3F,sDAAsD;AACtD,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"SidebarNavigation.js","sourceRoot":"","sources":["../src/SidebarNavigation.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -116,40 +116,42 @@ export const ConsentFormScreen: React.FC<ConsentFormScreenProps> = ({
|
|
|
116
116
|
confirmModalCheckboxIndex !== null ? form.checkboxes[confirmModalCheckboxIndex] : null;
|
|
117
117
|
|
|
118
118
|
const footer = (
|
|
119
|
-
<Box
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
<Box alignSelf="center" maxWidth={800} testID="consent-form-footer" width="100%">
|
|
120
|
+
<Box direction="row" gap={4} paddingY={2} width="100%">
|
|
121
|
+
{Boolean(form.allowDecline && onDecline) && (
|
|
122
|
+
<Box flex="grow">
|
|
123
|
+
<Button
|
|
124
|
+
fullWidth
|
|
125
|
+
onClick={onDecline!}
|
|
126
|
+
testID="consent-form-decline-button"
|
|
127
|
+
text={form.declineButtonText}
|
|
128
|
+
variant="muted"
|
|
129
|
+
/>
|
|
130
|
+
</Box>
|
|
131
|
+
)}
|
|
132
|
+
<Box flex="grow">
|
|
122
133
|
<Button
|
|
134
|
+
disabled={!canAgree}
|
|
123
135
|
fullWidth
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
136
|
+
loading={isSubmitting}
|
|
137
|
+
onClick={handleAgree}
|
|
138
|
+
testID="consent-form-agree-button"
|
|
139
|
+
text={form.agreeButtonText}
|
|
128
140
|
/>
|
|
129
141
|
</Box>
|
|
130
|
-
)}
|
|
131
|
-
<Box width="100%">
|
|
132
|
-
<Button
|
|
133
|
-
disabled={!canAgree}
|
|
134
|
-
fullWidth
|
|
135
|
-
loading={isSubmitting}
|
|
136
|
-
onClick={handleAgree}
|
|
137
|
-
testID="consent-form-agree-button"
|
|
138
|
-
text={form.agreeButtonText}
|
|
139
|
-
/>
|
|
140
142
|
</Box>
|
|
141
143
|
</Box>
|
|
142
144
|
);
|
|
143
145
|
|
|
144
146
|
return (
|
|
145
|
-
<Page footer={footer} scroll={false} title={form.title}>
|
|
147
|
+
<Page color="base" footer={footer} maxWidth="100%" scroll={false} title={form.title}>
|
|
146
148
|
<ScrollView
|
|
147
149
|
onContentSizeChange={handleContentSizeChange}
|
|
148
150
|
onLayout={handleLayout}
|
|
149
151
|
onScroll={handleScroll}
|
|
150
152
|
scrollEnabled={scrollEnabled}
|
|
151
153
|
scrollEventThrottle={16}
|
|
152
|
-
style={{flex: 1}}
|
|
154
|
+
style={{alignSelf: "center", flex: 1, maxWidth: 800, width: "100%"}}
|
|
153
155
|
testID="consent-form-scroll-view"
|
|
154
156
|
>
|
|
155
157
|
<Box direction="column" gap={3} paddingY={2}>
|
package/src/HeightField.test.tsx
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import {afterEach, beforeEach, describe, expect, it, mock} from "bun:test";
|
|
2
|
+
import {fireEvent} from "@testing-library/react-native";
|
|
3
|
+
import {HeightActionSheet} from "./HeightActionSheet";
|
|
2
4
|
import {HeightField} from "./HeightField";
|
|
3
5
|
import {renderWithTheme} from "./test-utils";
|
|
4
6
|
|
|
@@ -96,6 +98,34 @@ describe("HeightField", () => {
|
|
|
96
98
|
});
|
|
97
99
|
});
|
|
98
100
|
|
|
101
|
+
describe("action sheet interactions", () => {
|
|
102
|
+
it("opens the action sheet when the pressable is tapped", () => {
|
|
103
|
+
const {getByLabelText} = renderWithTheme(<HeightField onChange={mockOnChange} value="60" />);
|
|
104
|
+
const pressable = getByLabelText("Height selector");
|
|
105
|
+
// Should not throw when pressed
|
|
106
|
+
fireEvent.press(pressable);
|
|
107
|
+
expect(pressable).toBeTruthy();
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it("does not open the action sheet when disabled and pressed", () => {
|
|
111
|
+
const {getByLabelText} = renderWithTheme(
|
|
112
|
+
<HeightField disabled onChange={mockOnChange} value="60" />
|
|
113
|
+
);
|
|
114
|
+
const pressable = getByLabelText("Height selector");
|
|
115
|
+
fireEvent.press(pressable);
|
|
116
|
+
expect(mockOnChange).not.toHaveBeenCalled();
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
it("forwards changes from the action sheet to onChange", () => {
|
|
120
|
+
const {UNSAFE_getByType} = renderWithTheme(
|
|
121
|
+
<HeightField onChange={mockOnChange} value="60" />
|
|
122
|
+
);
|
|
123
|
+
const actionSheet = UNSAFE_getByType(HeightActionSheet);
|
|
124
|
+
actionSheet.props.onChange("72");
|
|
125
|
+
expect(mockOnChange).toHaveBeenCalledWith("72");
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
|
|
99
129
|
describe("disabled state", () => {
|
|
100
130
|
it("should render in disabled state", () => {
|
|
101
131
|
const {root} = renderWithTheme(<HeightField disabled onChange={mockOnChange} value="70" />);
|
|
@@ -95,6 +95,37 @@ describe("HeightField (desktop/web path)", () => {
|
|
|
95
95
|
expect(mockOnChange).toHaveBeenCalledWith("");
|
|
96
96
|
});
|
|
97
97
|
|
|
98
|
+
it("calls onChange with empty string when feet is cleared from already-empty state", () => {
|
|
99
|
+
const {getAllByLabelText} = renderWithTheme(<HeightField onChange={mockOnChange} value="" />);
|
|
100
|
+
const feetInput = getAllByLabelText("ft input")[0];
|
|
101
|
+
fireEvent.changeText(feetInput, "");
|
|
102
|
+
expect(mockOnChange).toHaveBeenCalledWith("");
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it("calls onChange with empty string when inches is cleared from already-empty state", () => {
|
|
106
|
+
const {getAllByLabelText} = renderWithTheme(<HeightField onChange={mockOnChange} value="" />);
|
|
107
|
+
const inchesInput = getAllByLabelText("in input")[0];
|
|
108
|
+
fireEvent.changeText(inchesInput, "");
|
|
109
|
+
expect(mockOnChange).toHaveBeenCalledWith("");
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("calls onChange on blur when feet has a value", () => {
|
|
113
|
+
const {getAllByLabelText} = renderWithTheme(
|
|
114
|
+
<HeightField onChange={mockOnChange} value="70" />
|
|
115
|
+
);
|
|
116
|
+
const feetInput = getAllByLabelText("ft input")[0];
|
|
117
|
+
fireEvent(feetInput, "blur");
|
|
118
|
+
// 5ft 10in = 70 inches
|
|
119
|
+
expect(mockOnChange).toHaveBeenCalledWith("70");
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it("does not call onChange on blur when both feet and inches are empty", () => {
|
|
123
|
+
const {getAllByLabelText} = renderWithTheme(<HeightField onChange={mockOnChange} value="" />);
|
|
124
|
+
const feetInput = getAllByLabelText("ft input")[0];
|
|
125
|
+
fireEvent(feetInput, "blur");
|
|
126
|
+
expect(mockOnChange).not.toHaveBeenCalled();
|
|
127
|
+
});
|
|
128
|
+
|
|
98
129
|
it("does not call onChange with values exceeding max feet", () => {
|
|
99
130
|
const {getAllByLabelText} = renderWithTheme(
|
|
100
131
|
<HeightField max={95} onChange={mockOnChange} value="" />
|
|
@@ -100,6 +100,14 @@ describe("SegmentedControl", () => {
|
|
|
100
100
|
expect(queryByText("Tab 1")).toBeNull();
|
|
101
101
|
});
|
|
102
102
|
|
|
103
|
+
it("uses the default no-op onChange when none is provided", () => {
|
|
104
|
+
const {getByText} = renderWithTheme(
|
|
105
|
+
<SegmentedControl items={defaultItems} selectedIndex={0} />
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
expect(() => fireEvent.press(getByText("Tab 2"))).not.toThrow();
|
|
109
|
+
});
|
|
110
|
+
|
|
103
111
|
it("invokes handlePrevious when previous scroll button is pressed", () => {
|
|
104
112
|
const manyItems = ["Tab 1", "Tab 2", "Tab 3", "Tab 4", "Tab 5", "Tab 6"];
|
|
105
113
|
const {UNSAFE_getAllByProps, queryByText} = renderWithTheme(
|
|
@@ -5,8 +5,8 @@ import {Navigator, Slot} from "expo-router";
|
|
|
5
5
|
// update the import path here — this is the only place in the codebase that references it.
|
|
6
6
|
// eslint-disable-next-line import/no-internal-modules
|
|
7
7
|
import {Screen} from "expo-router/build/views/Screen";
|
|
8
|
-
import {type FC, useCallback, useMemo, useState} from "react";
|
|
9
|
-
import {Pressable, type StyleProp, View, type ViewStyle} from "react-native";
|
|
8
|
+
import {type FC, type ReactNode, useCallback, useMemo, useState} from "react";
|
|
9
|
+
import {Pressable, type StyleProp, View, type ViewProps, type ViewStyle} from "react-native";
|
|
10
10
|
|
|
11
11
|
import {Badge} from "./Badge";
|
|
12
12
|
import {Box} from "./Box";
|
|
@@ -127,7 +127,7 @@ export const SidebarNavigationPanel: FC<SidebarNavigationPanelProps> = ({
|
|
|
127
127
|
<View style={{flex: 1}}>
|
|
128
128
|
<View style={{flex: 1, marginLeft: COLLAPSED_WIDTH}}>{children}</View>
|
|
129
129
|
<View
|
|
130
|
-
{...({onMouseEnter: handleHoverIn, onMouseLeave: handleHoverOut} as
|
|
130
|
+
{...({onMouseEnter: handleHoverIn, onMouseLeave: handleHoverOut} as unknown as ViewProps)}
|
|
131
131
|
style={[
|
|
132
132
|
{
|
|
133
133
|
backgroundColor: theme.surface.base,
|
|
@@ -149,7 +149,7 @@ export const SidebarNavigationPanel: FC<SidebarNavigationPanelProps> = ({
|
|
|
149
149
|
transitionDuration: "150ms",
|
|
150
150
|
transitionProperty: "width",
|
|
151
151
|
transitionTimingFunction: "ease-in-out",
|
|
152
|
-
} as
|
|
152
|
+
} as unknown as ViewStyle,
|
|
153
153
|
panelStyle,
|
|
154
154
|
]}
|
|
155
155
|
>
|
|
@@ -195,7 +195,11 @@ const SidebarNavigatorContent: FC<{
|
|
|
195
195
|
const {theme} = useTheme();
|
|
196
196
|
const {state, navigation, descriptors} = Navigator.useContext();
|
|
197
197
|
const activeRoute = state.routes[state.index];
|
|
198
|
-
const {headerLeft, headerRight, title} = (descriptors[activeRoute?.key]?.options ?? {}) as
|
|
198
|
+
const {headerLeft, headerRight, title} = (descriptors[activeRoute?.key]?.options ?? {}) as {
|
|
199
|
+
headerLeft?: (props: object) => ReactNode;
|
|
200
|
+
headerRight?: (props: object) => ReactNode;
|
|
201
|
+
title?: string;
|
|
202
|
+
};
|
|
199
203
|
|
|
200
204
|
const handleNavigate = useCallback(
|
|
201
205
|
(route: string) => {
|
|
@@ -8,8 +8,8 @@ import {renderWithTheme} from "./test-utils";
|
|
|
8
8
|
|
|
9
9
|
// Mock react-signature-canvas (used by Signature component)
|
|
10
10
|
mock.module("react-signature-canvas", () => ({
|
|
11
|
-
default: forwardRef(({backgroundColor}
|
|
12
|
-
<View ref={ref
|
|
11
|
+
default: forwardRef<View, {backgroundColor?: string}>(({backgroundColor}, ref) => (
|
|
12
|
+
<View ref={ref} style={{backgroundColor}} testID="signature-canvas" />
|
|
13
13
|
)),
|
|
14
14
|
}));
|
|
15
15
|
|
package/src/Utilities.test.tsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {describe, expect, it} from "bun:test";
|
|
2
2
|
|
|
3
|
+
import type {APIError, BaseProfile} from "./Common";
|
|
3
4
|
import {
|
|
4
5
|
bind,
|
|
5
6
|
concat,
|
|
@@ -47,15 +48,15 @@ describe("Utilities", () => {
|
|
|
47
48
|
|
|
48
49
|
describe("isTestUser", () => {
|
|
49
50
|
it("returns true for nang.io email", () => {
|
|
50
|
-
expect(isTestUser({email: "test@nang.io"} as
|
|
51
|
+
expect(isTestUser({email: "test@nang.io"} as unknown as BaseProfile)).toBe(true);
|
|
51
52
|
});
|
|
52
53
|
|
|
53
54
|
it("returns true for example.com email", () => {
|
|
54
|
-
expect(isTestUser({email: "test@example.com"} as
|
|
55
|
+
expect(isTestUser({email: "test@example.com"} as unknown as BaseProfile)).toBe(true);
|
|
55
56
|
});
|
|
56
57
|
|
|
57
58
|
it("returns false for regular email", () => {
|
|
58
|
-
expect(isTestUser({email: "user@company.com"} as
|
|
59
|
+
expect(isTestUser({email: "user@company.com"} as unknown as BaseProfile)).toBe(false);
|
|
59
60
|
});
|
|
60
61
|
|
|
61
62
|
it("returns falsy for undefined profile", () => {
|
|
@@ -63,7 +64,7 @@ describe("Utilities", () => {
|
|
|
63
64
|
});
|
|
64
65
|
|
|
65
66
|
it("returns falsy for profile without email", () => {
|
|
66
|
-
expect(isTestUser({} as
|
|
67
|
+
expect(isTestUser({} as unknown as BaseProfile)).toBeFalsy();
|
|
67
68
|
});
|
|
68
69
|
});
|
|
69
70
|
|
|
@@ -321,13 +322,13 @@ describe("Utilities", () => {
|
|
|
321
322
|
});
|
|
322
323
|
|
|
323
324
|
it("handles empty components with includeCounty", () => {
|
|
324
|
-
const result = processAddressComponents([], {includeCounty: true})
|
|
325
|
+
const result = processAddressComponents([], {includeCounty: true});
|
|
325
326
|
expect(result.countyName).toBe("");
|
|
326
327
|
expect(result.countyCode).toBe("");
|
|
327
328
|
});
|
|
328
329
|
|
|
329
330
|
it("handles components with includeCounty when county is present", () => {
|
|
330
|
-
const result = processAddressComponents(components, {includeCounty: true})
|
|
331
|
+
const result = processAddressComponents(components, {includeCounty: true});
|
|
331
332
|
expect(result.countyName).toBe("Suffolk County");
|
|
332
333
|
});
|
|
333
334
|
|
|
@@ -337,7 +338,7 @@ describe("Utilities", () => {
|
|
|
337
338
|
);
|
|
338
339
|
const result = processAddressComponents(componentsWithoutCounty, {
|
|
339
340
|
includeCounty: true,
|
|
340
|
-
})
|
|
341
|
+
});
|
|
341
342
|
expect(result.countyName).toBe("");
|
|
342
343
|
});
|
|
343
344
|
});
|
|
@@ -364,7 +365,7 @@ describe("Utilities", () => {
|
|
|
364
365
|
});
|
|
365
366
|
|
|
366
367
|
it("returns false when passed a non-string value", () => {
|
|
367
|
-
expect(isValidGoogleApiKey(123 as
|
|
368
|
+
expect(isValidGoogleApiKey(123 as unknown as string)).toBe(false);
|
|
368
369
|
});
|
|
369
370
|
|
|
370
371
|
it("returns false for whitespace-only key", () => {
|
|
@@ -404,22 +405,24 @@ describe("Utilities", () => {
|
|
|
404
405
|
describe("printAPIError", () => {
|
|
405
406
|
it("prints error title", () => {
|
|
406
407
|
const error = {data: {title: "Not Found"}};
|
|
407
|
-
expect(printAPIError(error as
|
|
408
|
+
expect(printAPIError(error as unknown as APIError)).toBe("Not Found");
|
|
408
409
|
});
|
|
409
410
|
|
|
410
411
|
it("prints error title and detail", () => {
|
|
411
412
|
const error = {data: {detail: "Resource does not exist", title: "Not Found"}};
|
|
412
|
-
expect(printAPIError(error as
|
|
413
|
+
expect(printAPIError(error as unknown as APIError)).toBe(
|
|
414
|
+
"Not Found: Resource does not exist"
|
|
415
|
+
);
|
|
413
416
|
});
|
|
414
417
|
|
|
415
418
|
it("omits detail when details is false", () => {
|
|
416
419
|
const error = {data: {detail: "Resource does not exist", title: "Not Found"}};
|
|
417
|
-
expect(printAPIError(error as
|
|
420
|
+
expect(printAPIError(error as unknown as APIError, false)).toBe("Not Found");
|
|
418
421
|
});
|
|
419
422
|
|
|
420
423
|
it("prints title when detail is missing", () => {
|
|
421
424
|
const error = {data: {title: "Not Found"}};
|
|
422
|
-
expect(printAPIError(error as
|
|
425
|
+
expect(printAPIError(error as unknown as APIError, true)).toBe("Not Found");
|
|
423
426
|
});
|
|
424
427
|
});
|
|
425
428
|
});
|