@terreno/ui 0.15.0 → 0.15.1
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/Common.d.ts +1 -0
- package/dist/Common.js.map +1 -1
- package/dist/ConsentFormScreen.js +4 -2
- package/dist/ConsentFormScreen.js.map +1 -1
- package/dist/DismissButton.js +3 -2
- package/dist/DismissButton.js.map +1 -1
- package/dist/Signature.d.ts +2 -1
- package/dist/Signature.js +37 -9
- package/dist/Signature.js.map +1 -1
- package/dist/Signature.native.d.ts +1 -0
- package/dist/Signature.native.js +6 -5
- package/dist/Signature.native.js.map +1 -1
- package/dist/SignatureField.d.ts +1 -1
- package/dist/SignatureField.js +2 -2
- package/dist/SignatureField.js.map +1 -1
- package/dist/SignatureSizing.d.ts +3 -0
- package/dist/SignatureSizing.js +9 -0
- package/dist/SignatureSizing.js.map +1 -0
- package/dist/Toast.d.ts +4 -4
- package/dist/Toast.js.map +1 -1
- package/package.json +1 -1
- package/src/Common.ts +1 -0
- package/src/ConsentFormScreen.test.tsx +15 -0
- package/src/ConsentFormScreen.tsx +21 -4
- package/src/DismissButton.tsx +4 -3
- package/src/IconButton.tsx +2 -2
- package/src/Signature.native.test.tsx +9 -0
- package/src/Signature.native.tsx +7 -5
- package/src/Signature.test.tsx +336 -4
- package/src/Signature.tsx +55 -12
- package/src/SignatureField.tsx +2 -0
- package/src/SignatureSizing.ts +10 -0
- package/src/Toast.tsx +5 -3
- package/src/__snapshots__/DismissButton.test.tsx.snap +9 -3
- package/src/__snapshots__/Field.test.tsx.snap +3 -1
- package/src/__snapshots__/Signature.test.tsx.snap +3 -1
- package/src/__snapshots__/SignatureField.test.tsx.snap +3 -1
package/dist/Common.d.ts
CHANGED
package/dist/Common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"AA6XA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAqB,EAAE,EAAE;IAClD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,WAAW,CAAC,OAAyB,CAAC,CAAC;AAChD,CAAC,CAAC;AAqBF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE;IAClD,OAAO;QACL,KAAK,EAAE,EAAE;QACT,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,CAAC;KACN,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAsTF,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,GAAG;IACZ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,EAAE;IAChD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":"AA6XA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAqB,EAAE,EAAE;IAClD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,WAAW,CAAC,OAAyB,CAAC,CAAC;AAChD,CAAC,CAAC;AAqBF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAe,EAAE,EAAE;IAClD,OAAO;QACL,KAAK,EAAE,EAAE;QACT,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,CAAC;KACN,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;AAClB,CAAC,CAAC;AAsTF,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,CAAC;IACV,IAAI,EAAE,EAAE;IACR,EAAE,EAAE,EAAE;IACN,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,GAAG;IACZ,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,EAAE;IAChD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AA4pEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACV,CAAC"}
|
|
@@ -31,7 +31,9 @@ export const ConsentFormScreen = ({ form, isSubmitting = false, locale, onAgree,
|
|
|
31
31
|
});
|
|
32
32
|
const signatureProvided = !form.captureSignature || Boolean(signatureValue);
|
|
33
33
|
const hasRequiredCheckboxes = form.checkboxes.some((checkbox) => checkbox.required);
|
|
34
|
+
const hasDeclineButton = Boolean(form.allowDecline && onDecline);
|
|
34
35
|
const canAgree = hasScrolledToBottom && allRequiredCheckboxesChecked && signatureProvided;
|
|
36
|
+
const actionColumnStyle = { flexBasis: 0, minWidth: 0 };
|
|
35
37
|
// Auto-satisfy scroll requirement when content fits within the viewport
|
|
36
38
|
const handleContentSizeChange = (_w, h) => {
|
|
37
39
|
setContentHeight(h);
|
|
@@ -86,12 +88,12 @@ export const ConsentFormScreen = ({ form, isSubmitting = false, locale, onAgree,
|
|
|
86
88
|
onAgree({ checkboxValues, signature: signatureValue });
|
|
87
89
|
};
|
|
88
90
|
const confirmingCheckbox = confirmModalCheckboxIndex !== null ? form.checkboxes[confirmModalCheckboxIndex] : null;
|
|
89
|
-
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: [
|
|
91
|
+
const footer = (_jsxs(Box, { alignSelf: "center", maxWidth: 800, testID: "consent-form-footer", width: "100%", children: [_jsxs(Box, { direction: hasDeclineButton ? "row" : "column", gap: 4, paddingY: 2, testID: "consent-form-action-row", width: "100%", children: [hasDeclineButton && (_jsx(Box, { dangerouslySetInlineStyle: { __style: actionColumnStyle }, flex: "grow", testID: "consent-form-action-column", children: _jsx(Button, { fullWidth: true, onClick: onDecline, testID: "consent-form-decline-button", text: form.declineButtonText, variant: "muted" }) })), _jsx(Box, { dangerouslySetInlineStyle: { __style: hasDeclineButton ? actionColumnStyle : {} }, flex: "grow", testID: hasDeclineButton ? "consent-form-action-column" : undefined, 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(hasRequiredCheckboxes && !allRequiredCheckboxesChecked) && (_jsx(Text, { align: "center", color: "error", size: "sm", testID: "consent-footer-checkboxes-hint", children: "Please check all required items marked with *" })), Boolean(form.captureSignature && !signatureValue) && (_jsx(Text, { align: "center", color: "error", size: "sm", testID: "consent-footer-signature-hint", children: "Please provide your signature to continue" }))] }));
|
|
90
92
|
return (_jsxs(Page, { color: "base", footer: footer, maxWidth: "100%", safeArea: true, 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 && (_jsxs(Box, { direction: "column", gap: 2, testID: "consent-form-checkboxes", children: [hasRequiredCheckboxes && (_jsx(Text, { color: "secondaryDark", size: "sm", testID: "consent-form-required-legend", children: "* indicates a required item" })), form.checkboxes.map((checkbox, index) => {
|
|
91
93
|
var _a;
|
|
92
94
|
const key = index.toString();
|
|
93
95
|
const isChecked = (_a = checkboxValues[key]) !== null && _a !== void 0 ? _a : false;
|
|
94
96
|
return (_jsx(Pressable, { onPress: () => handleCheckboxPress(index), testID: `consent-form-checkbox-${index}`, children: _jsxs(Box, { alignItems: "center", direction: "row", gap: 2, children: [_jsx(CheckBox, { selected: isChecked, size: "md" }), _jsx(Box, { flex: "grow", children: _jsxs(Text, { size: "md", children: [checkbox.label, checkbox.required && " *"] }) })] }) }, key));
|
|
95
|
-
})] })), Boolean(form.captureSignature) && (_jsx(View, { onTouchEnd: Platform.OS === "ios" ? () => setScrollEnabled(true) : undefined, onTouchStart: Platform.OS === "ios" ? () => setScrollEnabled(false) : undefined, testID: "consent-form-signature", children: _jsx(SignatureField, { onChange: (value) => setSignatureValue(value), onEnd: () => setScrollEnabled(true), onStart: () => setScrollEnabled(false), title: "Signature", value: signatureValue }) })), Boolean(form.requireScrollToBottom && !hasScrolledToBottom) && (_jsx(Box, { paddingY: 2, testID: "consent-form-scroll-hint", children: _jsx(Text, { color: "secondaryDark", size: "sm", children: "Please scroll to the bottom to continue." }) }))] }) }), confirmingCheckbox && (_jsx(Modal, { onDismiss: handleConfirmModalDismiss, primaryButtonOnClick: handleConfirmModalConfirm, primaryButtonText: "Confirm", secondaryButtonOnClick: handleConfirmModalDismiss, secondaryButtonText: "Cancel", text: confirmingCheckbox.confirmationPrompt, title: "Please confirm", visible: confirmModalVisible }))] }));
|
|
97
|
+
})] })), Boolean(form.captureSignature) && (_jsx(View, { onTouchEnd: Platform.OS === "ios" ? () => setScrollEnabled(true) : undefined, onTouchStart: Platform.OS === "ios" ? () => setScrollEnabled(false) : undefined, testID: "consent-form-signature", children: _jsx(SignatureField, { fullWidth: true, onChange: (value) => setSignatureValue(value), onEnd: () => setScrollEnabled(true), onStart: () => setScrollEnabled(false), title: "Signature", value: signatureValue }) })), Boolean(form.requireScrollToBottom && !hasScrolledToBottom) && (_jsx(Box, { paddingY: 2, testID: "consent-form-scroll-hint", children: _jsx(Text, { color: "secondaryDark", size: "sm", children: "Please scroll to the bottom to continue." }) }))] }) }), confirmingCheckbox && (_jsx(Modal, { onDismiss: handleConfirmModalDismiss, primaryButtonOnClick: handleConfirmModalConfirm, primaryButtonText: "Confirm", secondaryButtonOnClick: handleConfirmModalDismiss, secondaryButtonText: "Cancel", text: confirmingCheckbox.confirmationPrompt, title: "Please confirm", visible: confirmModalVisible }))] }));
|
|
96
98
|
};
|
|
97
99
|
//# sourceMappingURL=ConsentFormScreen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConsentFormScreen.js","sourceRoot":"","sources":["../src/ConsentFormScreen.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAC,QAAQ,EAAC,MAAM,OAAO,CAAC;AACtC,OAAO,EAIL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAY5B,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,IAAI,EACJ,YAAY,GAAG,KAAK,EACpB,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,GACV,EAAE,EAAE;;IACH,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAA0B,EAAE,CAAC,CAAC;IAClF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC5F,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACpF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChG,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mCAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,mCAAI,EAAE,CAAC;IAClF,MAAM,OAAO,GAAG,SAAS;QACvB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,WAAC,OAAA,MAAA,SAAS,CAAC,GAAG,CAAC,mCAAI,KAAK,CAAA,EAAA,CAAC;QAC/E,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,4BAA4B,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5E,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsentFormScreen.js","sourceRoot":"","sources":["../src/ConsentFormScreen.tsx"],"names":[],"mappings":"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"}
|
package/dist/DismissButton.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Pressable
|
|
2
|
+
import { Pressable } from "react-native";
|
|
3
|
+
import { Box } from "./Box";
|
|
3
4
|
import { Icon } from "./Icon";
|
|
4
5
|
export const DismissButton = ({ accessibilityLabel, accessibilityHint, onClick, color = "primary", }) => {
|
|
5
6
|
return (_jsx(Pressable, { accessibilityHint: accessibilityHint, "aria-label": accessibilityLabel, "aria-role": "button", onPress: onClick, style: {
|
|
@@ -7,6 +8,6 @@ export const DismissButton = ({ accessibilityLabel, accessibilityHint, onClick,
|
|
|
7
8
|
height: 24.5,
|
|
8
9
|
justifyContent: "center",
|
|
9
10
|
width: 24.5,
|
|
10
|
-
}, children: _jsx(
|
|
11
|
+
}, children: _jsx(Box, { children: _jsx(Icon, { color: color, iconName: "x", type: "solid" }) }) }));
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=DismissButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DismissButton.js","sourceRoot":"","sources":["../src/DismissButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"DismissButton.js","sourceRoot":"","sources":["../src/DismissButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,KAAK,GAAG,SAAS,GACE,EAA6B,EAAE;IAClD,OAAO,CACL,KAAC,SAAS,IACR,iBAAiB,EAAE,iBAAiB,gBACxB,kBAAkB,eACpB,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;YACL,UAAU,EAAE,QAAQ;YACpB,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,QAAQ;YACxB,KAAK,EAAE,IAAI;SACZ,YAED,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,GAAG,GAC5C,GACI,CACb,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/Signature.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface SignatureProps {
|
|
|
3
3
|
onChange: (signature: string) => void;
|
|
4
4
|
onStart?: () => void;
|
|
5
5
|
onEnd?: () => void;
|
|
6
|
+
fullWidth?: boolean;
|
|
6
7
|
value?: string;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
@@ -12,4 +13,4 @@ export interface SignatureProps {
|
|
|
12
13
|
* data URL via onChange. Clearing pushes "" so "signature required" gating in
|
|
13
14
|
* parents resets immediately, since clearing the canvas emits no draw event.
|
|
14
15
|
*/
|
|
15
|
-
export declare const Signature: ({ onChange, onStart, onEnd }: SignatureProps) => ReactElement;
|
|
16
|
+
export declare const Signature: ({ fullWidth, onChange, onStart, onEnd, }: SignatureProps) => ReactElement;
|
package/dist/Signature.js
CHANGED
|
@@ -12,7 +12,7 @@ const STROKE_WIDTH_PX = 2.5;
|
|
|
12
12
|
* data URL via onChange. Clearing pushes "" so "signature required" gating in
|
|
13
13
|
* parents resets immediately, since clearing the canvas emits no draw event.
|
|
14
14
|
*/
|
|
15
|
-
export const Signature = ({ onChange, onStart, onEnd }) => {
|
|
15
|
+
export const Signature = ({ fullWidth = false, onChange, onStart, onEnd, }) => {
|
|
16
16
|
const { theme } = useTheme();
|
|
17
17
|
const canvasRef = useRef(null);
|
|
18
18
|
const isDrawingRef = useRef(false);
|
|
@@ -24,6 +24,26 @@ export const Signature = ({ onChange, onStart, onEnd }) => {
|
|
|
24
24
|
}
|
|
25
25
|
return canvas.getContext("2d");
|
|
26
26
|
}, []);
|
|
27
|
+
const getCanvasPoint = useCallback((event) => {
|
|
28
|
+
var _a, _b, _c, _d, _e;
|
|
29
|
+
const canvas = canvasRef.current;
|
|
30
|
+
if (!canvas) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const rect = (_a = canvas.getBoundingClientRect) === null || _a === void 0 ? void 0 : _a.call(canvas);
|
|
34
|
+
const displayWidth = (_c = (_b = rect === null || rect === void 0 ? void 0 : rect.width) !== null && _b !== void 0 ? _b : canvas.clientWidth) !== null && _c !== void 0 ? _c : canvas.width;
|
|
35
|
+
const displayHeight = (_e = (_d = rect === null || rect === void 0 ? void 0 : rect.height) !== null && _d !== void 0 ? _d : canvas.clientHeight) !== null && _e !== void 0 ? _e : canvas.height;
|
|
36
|
+
if (displayWidth <= 0 || displayHeight <= 0) {
|
|
37
|
+
return {
|
|
38
|
+
x: event.nativeEvent.offsetX,
|
|
39
|
+
y: event.nativeEvent.offsetY,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
x: (event.nativeEvent.offsetX / displayWidth) * canvas.width,
|
|
44
|
+
y: (event.nativeEvent.offsetY / displayHeight) * canvas.height,
|
|
45
|
+
};
|
|
46
|
+
}, []);
|
|
27
47
|
/**
|
|
28
48
|
* Paints the opaque background and configures stroke styling. Re-runs when
|
|
29
49
|
* the theme changes so the pad matches the active light/dark colors.
|
|
@@ -48,27 +68,29 @@ export const Signature = ({ onChange, onStart, onEnd }) => {
|
|
|
48
68
|
const handlePointerDown = useCallback((event) => {
|
|
49
69
|
var _a, _b;
|
|
50
70
|
const ctx = getContext();
|
|
51
|
-
|
|
71
|
+
const point = getCanvasPoint(event);
|
|
72
|
+
if (!ctx || !point) {
|
|
52
73
|
return;
|
|
53
74
|
}
|
|
54
75
|
(_b = (_a = canvasRef.current) === null || _a === void 0 ? void 0 : _a.setPointerCapture) === null || _b === void 0 ? void 0 : _b.call(_a, event.pointerId);
|
|
55
76
|
isDrawingRef.current = true;
|
|
56
77
|
ctx.beginPath();
|
|
57
|
-
ctx.moveTo(
|
|
78
|
+
ctx.moveTo(point.x, point.y);
|
|
58
79
|
onStart === null || onStart === void 0 ? void 0 : onStart();
|
|
59
|
-
}, [getContext, onStart]);
|
|
80
|
+
}, [getCanvasPoint, getContext, onStart]);
|
|
60
81
|
const handlePointerMove = useCallback((event) => {
|
|
61
82
|
if (!isDrawingRef.current) {
|
|
62
83
|
return;
|
|
63
84
|
}
|
|
64
85
|
const ctx = getContext();
|
|
65
|
-
|
|
86
|
+
const point = getCanvasPoint(event);
|
|
87
|
+
if (!ctx || !point) {
|
|
66
88
|
return;
|
|
67
89
|
}
|
|
68
|
-
ctx.lineTo(
|
|
90
|
+
ctx.lineTo(point.x, point.y);
|
|
69
91
|
ctx.stroke();
|
|
70
92
|
hasDrawnRef.current = true;
|
|
71
|
-
}, [getContext]);
|
|
93
|
+
}, [getCanvasPoint, getContext]);
|
|
72
94
|
const handlePointerUp = useCallback((event) => {
|
|
73
95
|
var _a, _b;
|
|
74
96
|
if (!isDrawingRef.current) {
|
|
@@ -93,8 +115,14 @@ export const Signature = ({ onChange, onStart, onEnd }) => {
|
|
|
93
115
|
return (_jsxs(View, { children: [_jsx(View, { style: {
|
|
94
116
|
borderColor: theme.border.dark,
|
|
95
117
|
borderWidth: 1,
|
|
96
|
-
maxWidth: SIGNATURE_WIDTH_PX,
|
|
118
|
+
maxWidth: fullWidth ? undefined : SIGNATURE_WIDTH_PX,
|
|
97
119
|
width: "100%",
|
|
98
|
-
}, children: _jsx("canvas", { height: SIGNATURE_HEIGHT_PX, onPointerDown: handlePointerDown, onPointerLeave: handlePointerUp, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, ref: canvasRef, style: {
|
|
120
|
+
}, children: _jsx("canvas", { height: SIGNATURE_HEIGHT_PX, onPointerDown: handlePointerDown, onPointerLeave: handlePointerUp, onPointerMove: handlePointerMove, onPointerUp: handlePointerUp, ref: canvasRef, style: {
|
|
121
|
+
display: "block",
|
|
122
|
+
height: SIGNATURE_HEIGHT_PX,
|
|
123
|
+
maxWidth: "100%",
|
|
124
|
+
touchAction: "none",
|
|
125
|
+
width: "100%",
|
|
126
|
+
}, width: SIGNATURE_WIDTH_PX }) }), _jsx(View, { children: _jsx(Text, { onPress: handleClear, style: { color: theme.text.link, textDecorationLine: "underline" }, children: "Clear" }) })] }));
|
|
99
127
|
};
|
|
100
128
|
//# sourceMappingURL=Signature.js.map
|
package/dist/Signature.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../src/Signature.tsx"],"names":[],"mappings":";AAAA,OAAO,EAGL,WAAW,EACX,SAAS,EACT,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Signature.js","sourceRoot":"","sources":["../src/Signature.tsx"],"names":[],"mappings":"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"}
|
package/dist/Signature.native.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Canvas, ImageFormat, Path, Skia, useCanvasRef } from "@shopify/react-native-skia";
|
|
3
3
|
import { useCallback, useMemo, useRef, useState } from "react";
|
|
4
|
-
import { Text, View } from "react-native";
|
|
4
|
+
import { Platform, Text, View } from "react-native";
|
|
5
5
|
import { Gesture, GestureDetector } from "react-native-gesture-handler";
|
|
6
|
+
import { getSignaturePadHeight } from "./SignatureSizing";
|
|
6
7
|
import { useTheme } from "./Theme";
|
|
7
|
-
const SIGNATURE_PAD_HEIGHT_PX = 180;
|
|
8
8
|
const STROKE_WIDTH_PX = 2.5;
|
|
9
9
|
// Snapshot after the released stroke has painted to the Skia canvas.
|
|
10
10
|
const SNAPSHOT_DELAY_MS = 60;
|
|
@@ -23,9 +23,10 @@ const SNAPSHOT_DELAY_MS = 60;
|
|
|
23
23
|
* Reports the signature to the parent as a base64 PNG data URL via onChange,
|
|
24
24
|
* and pushes "" on clear so "signature required" gating resets immediately.
|
|
25
25
|
*/
|
|
26
|
-
export const Signature = ({ onChange, onStart, onEnd }) => {
|
|
26
|
+
export const Signature = ({ fullWidth = false, onChange, onStart, onEnd }) => {
|
|
27
27
|
const { theme } = useTheme();
|
|
28
28
|
const canvasRef = useCanvasRef();
|
|
29
|
+
const signaturePadHeight = getSignaturePadHeight(Platform.OS);
|
|
29
30
|
const snapshotTimerRef = useRef(null);
|
|
30
31
|
// Completed strokes as SVG path strings; the active stroke is tracked separately.
|
|
31
32
|
const [completedStrokes, setCompletedStrokes] = useState([]);
|
|
@@ -114,11 +115,11 @@ export const Signature = ({ onChange, onStart, onEnd }) => {
|
|
|
114
115
|
// clearing must reset parent gating, mirroring the web Signature variant.
|
|
115
116
|
onChange("");
|
|
116
117
|
}, [clearSnapshotTimer, onChange]);
|
|
117
|
-
return (_jsxs(View, { style: { minWidth: 220 }, children: [_jsx(GestureDetector, { gesture: panGesture, children: _jsx(View, { style: {
|
|
118
|
+
return (_jsxs(View, { style: { minWidth: 220, width: fullWidth ? "100%" : undefined }, children: [_jsx(GestureDetector, { gesture: panGesture, children: _jsx(View, { style: {
|
|
118
119
|
backgroundColor: theme.surface.base,
|
|
119
120
|
borderColor: theme.border.dark,
|
|
120
121
|
borderWidth: 1,
|
|
121
|
-
height:
|
|
122
|
+
height: signaturePadHeight,
|
|
122
123
|
overflow: "hidden",
|
|
123
124
|
}, children: _jsx(Canvas, { ref: canvasRef, style: { flex: 1 }, children: skiaPaths.map((path, index) => (_jsx(Path, { color: theme.text.secondaryDark, path: path, strokeCap: "round", strokeJoin: "round", strokeWidth: STROKE_WIDTH_PX, style: "stroke" }, index))) }) }) }), _jsx(View, { style: { flexDirection: "row" }, children: _jsx(Text, { onPress: handleClear, style: { color: theme.text.link, textDecorationLine: "underline" }, children: "Clear" }) })] }));
|
|
124
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signature.native.js","sourceRoot":"","sources":["../src/Signature.native.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACzF,OAAO,EAAU,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACtE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Signature.native.js","sourceRoot":"","sources":["../src/Signature.native.tsx"],"names":[],"mappings":"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"}
|
package/dist/SignatureField.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ReactElement } from "react";
|
|
2
2
|
import type { SignatureFieldProps } from "./Common";
|
|
3
|
-
export declare const SignatureField: ({ disabled, title, value, onChange, onStart, onEnd, disabledText, errorText, }: SignatureFieldProps) => ReactElement;
|
|
3
|
+
export declare const SignatureField: ({ disabled, title, value, onChange, onStart, onEnd, disabledText, errorText, fullWidth, }: SignatureFieldProps) => ReactElement;
|
package/dist/SignatureField.js
CHANGED
|
@@ -8,7 +8,7 @@ import { useTheme } from "./Theme";
|
|
|
8
8
|
// NOTE: When using this inside a ScrollView, you must set the scrollEnabled prop to false on the
|
|
9
9
|
// ScrollView onStart and to true onEnd or it will try to scroll the whole view around this
|
|
10
10
|
// component.
|
|
11
|
-
export const SignatureField = ({ disabled = false, title = "Signature", value, onChange, onStart, onEnd, disabledText, errorText, }) => {
|
|
11
|
+
export const SignatureField = ({ disabled = false, title = "Signature", value, onChange, onStart, onEnd, disabledText, errorText, fullWidth = false, }) => {
|
|
12
12
|
const { theme } = useTheme();
|
|
13
13
|
if (disabled) {
|
|
14
14
|
if (value) {
|
|
@@ -25,7 +25,7 @@ export const SignatureField = ({ disabled = false, title = "Signature", value, o
|
|
|
25
25
|
} }), _jsx(Text, { size: "sm", children: disabledText })] }));
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
return (_jsxs(View, { children: [_jsx(Heading, { size: "sm", children: title }), Boolean(errorText) && (_jsxs(View, { style: { flexDirection: "row" }, children: [_jsx(Icon, { color: "error", iconName: "triangle-exclamation" }), _jsx(View, { style: { marginLeft: 4 }, children: _jsx(Text, { color: "error", children: errorText }) })] })), _jsx(View, { style: { marginVertical: 8 }, children: _jsx(Signature, { onChange: onChange, onEnd: () => {
|
|
28
|
+
return (_jsxs(View, { children: [_jsx(Heading, { size: "sm", children: title }), Boolean(errorText) && (_jsxs(View, { style: { flexDirection: "row" }, children: [_jsx(Icon, { color: "error", iconName: "triangle-exclamation" }), _jsx(View, { style: { marginLeft: 4 }, children: _jsx(Text, { color: "error", children: errorText }) })] })), _jsx(View, { style: { marginVertical: 8 }, children: _jsx(Signature, { fullWidth: fullWidth, onChange: onChange, onEnd: () => {
|
|
29
29
|
onEnd === null || onEnd === void 0 ? void 0 : onEnd();
|
|
30
30
|
}, onStart: () => {
|
|
31
31
|
onStart === null || onStart === void 0 ? void 0 : onStart();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureField.js","sourceRoot":"","sources":["../src/SignatureField.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,iGAAiG;AACjG,2FAA2F;AAC3F,aAAa;AACb,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,WAAW,EACnB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,YAAY,EACZ,SAAS,
|
|
1
|
+
{"version":3,"file":"SignatureField.js","sourceRoot":"","sources":["../src/SignatureField.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEjC,iGAAiG;AACjG,2FAA2F;AAC3F,aAAa;AACb,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,WAAW,EACnB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,YAAY,EACZ,SAAS,EACT,SAAS,GAAG,KAAK,GACG,EAAgB,EAAE;IACtC,MAAM,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAE,CAAC;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CACL,MAAC,IAAI,eACH,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,YAAE,KAAK,GAAW,EACpC,KAAC,IAAI,IAAC,KAAK,EAAE,EAAC,cAAc,EAAE,CAAC,EAAC,YAAG,cAAc,CAAC,KAAK,CAAC,GAAQ,EAChE,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,YAAE,YAAY,GAAQ,IAChC,CACR,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,6EAA6E;YAC7E,0DAA0D;YAC1D,OAAO,CACL,MAAC,IAAI,eACH,KAAC,IAAI,IACH,KAAK,EAAE;4BACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;4BAC3C,MAAM,EAAE,EAAE;4BACV,cAAc,EAAE,CAAC;4BACjB,KAAK,EAAE,GAAG;yBACX,GACD,EACF,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,YAAE,YAAY,GAAQ,IAChC,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,CACL,MAAC,IAAI,eACH,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,YAAE,KAAK,GAAW,EACnC,OAAO,CAAC,SAAS,CAAC,IAAI,CACrB,MAAC,IAAI,IAAC,KAAK,EAAE,EAAC,aAAa,EAAE,KAAK,EAAC,aACjC,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,sBAAsB,GAAG,EACtD,KAAC,IAAI,IAAC,KAAK,EAAE,EAAC,UAAU,EAAE,CAAC,EAAC,YAC1B,KAAC,IAAI,IAAC,KAAK,EAAC,OAAO,YAAE,SAAS,GAAQ,GACjC,IACF,CACR,EACD,KAAC,IAAI,IAAC,KAAK,EAAE,EAAC,cAAc,EAAE,CAAC,EAAC,YAC9B,KAAC,SAAS,IACR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,GAAG,EAAE;wBACV,KAAK,aAAL,KAAK,uBAAL,KAAK,EAAI,CAAC;oBACZ,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;oBACd,CAAC,GACD,GACG,IACF,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAgB,EAAE;IACrD,OAAO,CACL,KAAC,KAAK,IACJ,gCAAgC,EAAE,KAAK,EACvC,UAAU,EAAC,SAAS,EACpB,MAAM,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,EACpB,KAAK,EAAE;YACL,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,CAAC;YACd,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,GAAG;SACX,GACD,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const SIGNATURE_PAD_HEIGHT_PX = 180;
|
|
2
|
+
export const IOS_SIGNATURE_PAD_HEIGHT_PX = 120;
|
|
3
|
+
export const getSignaturePadHeight = (platformOS) => {
|
|
4
|
+
if (platformOS === "ios") {
|
|
5
|
+
return IOS_SIGNATURE_PAD_HEIGHT_PX;
|
|
6
|
+
}
|
|
7
|
+
return SIGNATURE_PAD_HEIGHT_PX;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=SignatureSizing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SignatureSizing.js","sourceRoot":"","sources":["../src/SignatureSizing.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,UAAkB,EAAU,EAAE;IAClE,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC"}
|
package/dist/Toast.d.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
2
|
import type { ToastProps } from "./Common";
|
|
3
|
-
|
|
3
|
+
interface UseToastVariantOptions {
|
|
4
4
|
persistent?: ToastProps["persistent"];
|
|
5
5
|
secondary?: ToastProps["secondary"];
|
|
6
6
|
size?: ToastProps["size"];
|
|
7
7
|
onDismiss?: ToastProps["onDismiss"];
|
|
8
8
|
subtitle?: ToastProps["subtitle"];
|
|
9
|
-
}
|
|
10
|
-
|
|
9
|
+
}
|
|
10
|
+
interface UseToastOptions extends UseToastVariantOptions {
|
|
11
11
|
variant?: ToastProps["variant"];
|
|
12
|
-
}
|
|
12
|
+
}
|
|
13
13
|
export declare const useToast: () => {
|
|
14
14
|
hide: (id: string) => void;
|
|
15
15
|
success: (title: string, options?: UseToastVariantOptions) => string;
|
package/dist/Toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.tsx"],"names":[],"mappings":";AACA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAGvD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,SAAS,CAAC;AACjC,OAAO,EAAC,qBAAqB,EAAC,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAEtD,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../src/Toast.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/Common.ts
CHANGED
|
@@ -118,6 +118,21 @@ describe("ConsentFormScreen", () => {
|
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
+
it("keeps decline and agree buttons in equal-width columns when both are shown", () => {
|
|
122
|
+
const {getAllByTestId, getByTestId} = renderWithTheme(
|
|
123
|
+
<ConsentFormScreen form={baseForm} locale="en" onAgree={() => {}} onDecline={() => {}} />
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
const actionRow = getByTestId("consent-form-action-row");
|
|
127
|
+
const actionColumns = getAllByTestId("consent-form-action-column");
|
|
128
|
+
|
|
129
|
+
expect(actionRow.props.style).toMatchObject({flexDirection: "row"});
|
|
130
|
+
expect(actionColumns.length).toBe(2);
|
|
131
|
+
for (const column of actionColumns) {
|
|
132
|
+
expect(column.props.style).toMatchObject({flexBasis: 0, minWidth: 0});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
|
|
121
136
|
it("fires scroll handlers without crashing", () => {
|
|
122
137
|
const form = {...baseForm, requireScrollToBottom: true};
|
|
123
138
|
const {getByTestId} = renderWithTheme(
|
|
@@ -59,8 +59,10 @@ export const ConsentFormScreen: React.FC<ConsentFormScreenProps> = ({
|
|
|
59
59
|
|
|
60
60
|
const signatureProvided = !form.captureSignature || Boolean(signatureValue);
|
|
61
61
|
const hasRequiredCheckboxes = form.checkboxes.some((checkbox) => checkbox.required);
|
|
62
|
+
const hasDeclineButton = Boolean(form.allowDecline && onDecline);
|
|
62
63
|
|
|
63
64
|
const canAgree = hasScrolledToBottom && allRequiredCheckboxesChecked && signatureProvided;
|
|
65
|
+
const actionColumnStyle = {flexBasis: 0, minWidth: 0};
|
|
64
66
|
|
|
65
67
|
// Auto-satisfy scroll requirement when content fits within the viewport
|
|
66
68
|
const handleContentSizeChange = (_w: number, h: number) => {
|
|
@@ -126,9 +128,19 @@ export const ConsentFormScreen: React.FC<ConsentFormScreenProps> = ({
|
|
|
126
128
|
|
|
127
129
|
const footer = (
|
|
128
130
|
<Box alignSelf="center" maxWidth={800} testID="consent-form-footer" width="100%">
|
|
129
|
-
<Box
|
|
130
|
-
{
|
|
131
|
-
|
|
131
|
+
<Box
|
|
132
|
+
direction={hasDeclineButton ? "row" : "column"}
|
|
133
|
+
gap={4}
|
|
134
|
+
paddingY={2}
|
|
135
|
+
testID="consent-form-action-row"
|
|
136
|
+
width="100%"
|
|
137
|
+
>
|
|
138
|
+
{hasDeclineButton && (
|
|
139
|
+
<Box
|
|
140
|
+
dangerouslySetInlineStyle={{__style: actionColumnStyle}}
|
|
141
|
+
flex="grow"
|
|
142
|
+
testID="consent-form-action-column"
|
|
143
|
+
>
|
|
132
144
|
<Button
|
|
133
145
|
fullWidth
|
|
134
146
|
onClick={onDecline!}
|
|
@@ -138,7 +150,11 @@ export const ConsentFormScreen: React.FC<ConsentFormScreenProps> = ({
|
|
|
138
150
|
/>
|
|
139
151
|
</Box>
|
|
140
152
|
)}
|
|
141
|
-
<Box
|
|
153
|
+
<Box
|
|
154
|
+
dangerouslySetInlineStyle={{__style: hasDeclineButton ? actionColumnStyle : {}}}
|
|
155
|
+
flex="grow"
|
|
156
|
+
testID={hasDeclineButton ? "consent-form-action-column" : undefined}
|
|
157
|
+
>
|
|
142
158
|
<Button
|
|
143
159
|
disabled={!canAgree}
|
|
144
160
|
fullWidth
|
|
@@ -220,6 +236,7 @@ export const ConsentFormScreen: React.FC<ConsentFormScreenProps> = ({
|
|
|
220
236
|
testID="consent-form-signature"
|
|
221
237
|
>
|
|
222
238
|
<SignatureField
|
|
239
|
+
fullWidth
|
|
223
240
|
onChange={(value) => setSignatureValue(value)}
|
|
224
241
|
onEnd={() => setScrollEnabled(true)}
|
|
225
242
|
onStart={() => setScrollEnabled(false)}
|
package/src/DismissButton.tsx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type React from "react";
|
|
2
|
-
import {Pressable
|
|
2
|
+
import {Pressable} from "react-native";
|
|
3
3
|
|
|
4
|
+
import {Box} from "./Box";
|
|
4
5
|
import type {DismissButtonProps} from "./Common";
|
|
5
6
|
import {Icon} from "./Icon";
|
|
6
7
|
|
|
@@ -23,9 +24,9 @@ export const DismissButton = ({
|
|
|
23
24
|
width: 24.5,
|
|
24
25
|
}}
|
|
25
26
|
>
|
|
26
|
-
<
|
|
27
|
+
<Box>
|
|
27
28
|
<Icon color={color} iconName="x" type="solid" />
|
|
28
|
-
</
|
|
29
|
+
</Box>
|
|
29
30
|
</Pressable>
|
|
30
31
|
);
|
|
31
32
|
};
|
package/src/IconButton.tsx
CHANGED
|
@@ -12,14 +12,14 @@ import {Tooltip} from "./Tooltip";
|
|
|
12
12
|
import {Unifier} from "./Unifier";
|
|
13
13
|
import {isNative} from "./Utilities";
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
interface ConfirmationModalProps {
|
|
16
16
|
visible: boolean;
|
|
17
17
|
title: string;
|
|
18
18
|
subtitle?: string;
|
|
19
19
|
text: string;
|
|
20
20
|
onConfirm: () => void;
|
|
21
21
|
onCancel: () => void;
|
|
22
|
-
}
|
|
22
|
+
}
|
|
23
23
|
|
|
24
24
|
const ConfirmationModal: FC<ConfirmationModalProps> = ({
|
|
25
25
|
visible,
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {describe, expect, it} from "bun:test";
|
|
2
|
+
|
|
3
|
+
import {getSignaturePadHeight} from "./SignatureSizing";
|
|
4
|
+
|
|
5
|
+
describe("Signature native sizing", () => {
|
|
6
|
+
it("uses a smaller signature pad on iOS", () => {
|
|
7
|
+
expect(getSignaturePadHeight("ios")).toBeLessThan(getSignaturePadHeight("android"));
|
|
8
|
+
});
|
|
9
|
+
});
|