@terreno/ui 0.12.2 → 0.13.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.
@@ -85,7 +85,7 @@ 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 = (_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 }) })] }) }));
88
+ const footer = (_jsxs(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 }) })] }), Boolean(form.requireScrollToBottom && !hasScrolledToBottom) && (_jsx(Text, { align: "center", color: "error", size: "sm", testID: "consent-footer-scroll-hint", children: "Please scroll to the bottom to continue" })), Boolean(form.captureSignature && !signatureValue) && (_jsx(Text, { align: "center", color: "error", size: "sm", testID: "consent-footer-signature-hint", children: "Please provide your signature to continue" }))] }));
89
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();
@@ -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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"}
package/dist/Field.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../src/Field.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -137,5 +137,5 @@
137
137
  "test:coverage": "TZ=America/New_York bun run ../scripts/check-coverage.ts",
138
138
  "types": "bun typedoc"
139
139
  },
140
- "version": "0.12.2"
140
+ "version": "0.13.0"
141
141
  }
@@ -1,30 +1,10 @@
1
- import {afterAll, describe, expect, it, mock} from "bun:test";
1
+ import {describe, expect, it, mock} from "bun:test";
2
2
  import {act, fireEvent} from "@testing-library/react-native";
3
- import {Text as RNText} from "react-native";
4
-
5
- // Capture the real MarkdownView export before mocking so we can restore it in
6
- // afterAll and avoid leaking a test-only mock to sibling test files.
7
- const RealMarkdownViewModule = require("./MarkdownView");
8
-
9
- // Mock MarkdownView with a simple Text passthrough so we can assert on the
10
- // rendered (variable-substituted) content without depending on
11
- // react-native-markdown-display's tokenization.
12
- mock.module("./MarkdownView", () => ({
13
- MarkdownView: ({children}: {children: string}) => (
14
- <RNText testID="markdown-view">{children}</RNText>
15
- ),
16
- }));
17
3
 
18
4
  import {ConsentFormScreen} from "./ConsentFormScreen";
19
5
  import {renderWithTheme} from "./test-utils";
20
6
  import type {ConsentFormPublic} from "./useConsentForms";
21
7
 
22
- // Restore the real MarkdownView so downstream test files (e.g.
23
- // MarkdownView.test.tsx) see the un-mocked module regardless of test order.
24
- afterAll(() => {
25
- mock.module("./MarkdownView", () => RealMarkdownViewModule);
26
- });
27
-
28
8
  const baseForm: ConsentFormPublic = {
29
9
  active: true,
30
10
  agreeButtonText: "I agree",
@@ -59,7 +39,7 @@ describe("ConsentFormScreen", () => {
59
39
  });
60
40
 
61
41
  it("substitutes variables in content and preserves unknown placeholders", () => {
62
- const {getByTestId} = renderWithTheme(
42
+ const {getByText} = renderWithTheme(
63
43
  <ConsentFormScreen
64
44
  form={{...baseForm, content: {en: "Hello {{name}}, {{missing}} stays"}}}
65
45
  locale="en"
@@ -67,7 +47,7 @@ describe("ConsentFormScreen", () => {
67
47
  variables={{name: "Ada"}}
68
48
  />
69
49
  );
70
- expect(getByTestId("markdown-view").props.children).toBe("Hello Ada, {{missing}} stays");
50
+ expect(getByText("Hello Ada, {{missing}} stays")).toBeTruthy();
71
51
  });
72
52
 
73
53
  it("invokes onAgree with signature and checkbox values", () => {
@@ -164,4 +144,45 @@ describe("ConsentFormScreen", () => {
164
144
  );
165
145
  expect(getByTestId("consent-form-scroll-hint")).toBeTruthy();
166
146
  });
147
+
148
+ it("shows footer scroll hint when scroll to bottom is required but not done", () => {
149
+ const form = {...baseForm, requireScrollToBottom: true};
150
+ const {getByTestId, queryByTestId} = renderWithTheme(
151
+ <ConsentFormScreen form={form} locale="en" onAgree={() => {}} />
152
+ );
153
+ expect(getByTestId("consent-footer-scroll-hint")).toBeTruthy();
154
+ expect(queryByTestId("consent-footer-signature-hint")).toBeNull();
155
+ });
156
+
157
+ it("hides footer scroll hint when scroll to bottom is not required", () => {
158
+ const {queryByTestId} = renderWithTheme(
159
+ <ConsentFormScreen form={baseForm} locale="en" onAgree={() => {}} />
160
+ );
161
+ expect(queryByTestId("consent-footer-scroll-hint")).toBeNull();
162
+ });
163
+
164
+ it("shows footer signature hint when signature is required but not provided", () => {
165
+ const form = {...baseForm, captureSignature: true};
166
+ const {getByTestId, queryByTestId} = renderWithTheme(
167
+ <ConsentFormScreen form={form} locale="en" onAgree={() => {}} />
168
+ );
169
+ expect(getByTestId("consent-footer-signature-hint")).toBeTruthy();
170
+ expect(queryByTestId("consent-footer-scroll-hint")).toBeNull();
171
+ });
172
+
173
+ it("hides footer signature hint when signature is not required", () => {
174
+ const {queryByTestId} = renderWithTheme(
175
+ <ConsentFormScreen form={baseForm} locale="en" onAgree={() => {}} />
176
+ );
177
+ expect(queryByTestId("consent-footer-signature-hint")).toBeNull();
178
+ });
179
+
180
+ it("shows both footer hints when scroll and signature are both required", () => {
181
+ const form = {...baseForm, captureSignature: true, requireScrollToBottom: true};
182
+ const {getByTestId} = renderWithTheme(
183
+ <ConsentFormScreen form={form} locale="en" onAgree={() => {}} />
184
+ );
185
+ expect(getByTestId("consent-footer-scroll-hint")).toBeTruthy();
186
+ expect(getByTestId("consent-footer-signature-hint")).toBeTruthy();
187
+ });
167
188
  });
@@ -140,6 +140,16 @@ export const ConsentFormScreen: React.FC<ConsentFormScreenProps> = ({
140
140
  />
141
141
  </Box>
142
142
  </Box>
143
+ {Boolean(form.requireScrollToBottom && !hasScrolledToBottom) && (
144
+ <Text align="center" color="error" size="sm" testID="consent-footer-scroll-hint">
145
+ Please scroll to the bottom to continue
146
+ </Text>
147
+ )}
148
+ {Boolean(form.captureSignature && !signatureValue) && (
149
+ <Text align="center" color="error" size="sm" testID="consent-footer-signature-hint">
150
+ Please provide your signature to continue
151
+ </Text>
152
+ )}
143
153
  </Box>
144
154
  );
145
155
 
package/src/Field.tsx CHANGED
@@ -50,7 +50,7 @@ export const Field: FC<FieldProps> = ({type, ...rest}) => {
50
50
  } else if (type && ["date", "time", "datetime"].includes(type)) {
51
51
  return (
52
52
  <DateTimeField
53
- {...(rest as DateTimeFieldProps as any)}
53
+ {...(rest as Omit<DateTimeFieldProps, "type">)}
54
54
  type={type as "date" | "time" | "datetime"}
55
55
  />
56
56
  );
@@ -4,23 +4,23 @@ import {act, fireEvent, waitFor} from "@testing-library/react-native";
4
4
  import {NumberField} from "./NumberField";
5
5
  import {renderWithTheme} from "./test-utils";
6
6
 
7
+ const noOp = (): void => {};
8
+
7
9
  describe("NumberField", () => {
8
10
  it("renders correctly with default props", () => {
9
- const {toJSON} = renderWithTheme(
10
- <NumberField label="Number" onChange={() => {}} type="number" />
11
- );
11
+ const {toJSON} = renderWithTheme(<NumberField label="Number" onChange={noOp} type="number" />);
12
12
  expect(toJSON()).toMatchSnapshot();
13
13
  });
14
14
 
15
15
  it("renders with initial value", () => {
16
16
  const {getByDisplayValue} = renderWithTheme(
17
- <NumberField label="Number" onChange={() => {}} type="number" value="42" />
17
+ <NumberField label="Number" onChange={noOp} type="number" value="42" />
18
18
  );
19
19
  expect(getByDisplayValue("42")).toBeTruthy();
20
20
  });
21
21
 
22
22
  it("calls onChange with valid integer", async () => {
23
- const handleChange = mock((_value: string) => {});
23
+ const handleChange = mock((_value: string): void => {});
24
24
  const {getByDisplayValue} = renderWithTheme(
25
25
  <NumberField label="Number" onChange={handleChange} type="number" value="" />
26
26
  );
@@ -36,7 +36,7 @@ describe("NumberField", () => {
36
36
  });
37
37
 
38
38
  it("does not call onChange with non-integer for number type", async () => {
39
- const handleChange = mock((_value: string) => {});
39
+ const handleChange = mock((_value: string): void => {});
40
40
  const {getByDisplayValue} = renderWithTheme(
41
41
  <NumberField label="Number" onChange={handleChange} type="number" value="" />
42
42
  );
@@ -51,7 +51,7 @@ describe("NumberField", () => {
51
51
  });
52
52
 
53
53
  it("calls onChange with valid decimal", async () => {
54
- const handleChange = mock((_value: string) => {});
54
+ const handleChange = mock((_value: string): void => {});
55
55
  const {getByDisplayValue} = renderWithTheme(
56
56
  <NumberField label="Decimal" onChange={handleChange} type="decimal" value="" />
57
57
  );
@@ -67,7 +67,7 @@ describe("NumberField", () => {
67
67
  });
68
68
 
69
69
  it("handles leading dot for decimal type", async () => {
70
- const handleChange = mock((_value: string) => {});
70
+ const handleChange = mock((_value: string): void => {});
71
71
  const {getByDisplayValue} = renderWithTheme(
72
72
  <NumberField label="Decimal" onChange={handleChange} type="decimal" value="" />
73
73
  );
@@ -84,40 +84,34 @@ describe("NumberField", () => {
84
84
 
85
85
  it("validates max value", () => {
86
86
  const {getByText} = renderWithTheme(
87
- <NumberField label="Number" max={100} onChange={() => {}} type="number" value="150" />
87
+ <NumberField label="Number" max={100} onChange={noOp} type="number" value="150" />
88
88
  );
89
89
  expect(getByText("Value must be less than or equal to 100")).toBeTruthy();
90
90
  });
91
91
 
92
92
  it("validates min value", () => {
93
93
  const {getByText} = renderWithTheme(
94
- <NumberField label="Number" min={10} onChange={() => {}} type="number" value="5" />
94
+ <NumberField label="Number" min={10} onChange={noOp} type="number" value="5" />
95
95
  );
96
96
  expect(getByText("Value must be greater than or equal to 10")).toBeTruthy();
97
97
  });
98
98
 
99
99
  it("shows custom errorText", () => {
100
100
  const {getByText} = renderWithTheme(
101
- <NumberField
102
- errorText="Custom error"
103
- label="Number"
104
- onChange={() => {}}
105
- type="number"
106
- value=""
107
- />
101
+ <NumberField errorText="Custom error" label="Number" onChange={noOp} type="number" value="" />
108
102
  );
109
103
  expect(getByText("Custom error")).toBeTruthy();
110
104
  });
111
105
 
112
106
  it("does not show error for valid number within range", () => {
113
107
  const {queryByText} = renderWithTheme(
114
- <NumberField label="Number" max={100} min={0} onChange={() => {}} type="number" value="50" />
108
+ <NumberField label="Number" max={100} min={0} onChange={noOp} type="number" value="50" />
115
109
  );
116
110
  expect(queryByText(/must be/)).toBeNull();
117
111
  });
118
112
 
119
113
  it("syncs value when prop changes", async () => {
120
- const handleChange = mock((_value: string) => {});
114
+ const handleChange = mock((_value: string): void => {});
121
115
  const {getByDisplayValue, unmount} = renderWithTheme(
122
116
  <NumberField label="Number" onChange={handleChange} type="number" value="10" />
123
117
  );
package/src/polyfill.d.ts CHANGED
@@ -6,6 +6,6 @@
6
6
  // }
7
7
 
8
8
  // interface Object {
9
- // values<T>(obj: any): T[];
9
+ // values<T>(obj: object): T[];
10
10
  // }
11
11
  // }