@oxyhq/bloom 0.30.9 → 0.31.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/lib/commonjs/alert-dialog/AlertDialog.js +37 -61
- package/lib/commonjs/alert-dialog/AlertDialog.js.map +1 -1
- package/lib/commonjs/button/Button.web.js +32 -2
- package/lib/commonjs/button/Button.web.js.map +1 -1
- package/lib/module/alert-dialog/AlertDialog.js +38 -62
- package/lib/module/alert-dialog/AlertDialog.js.map +1 -1
- package/lib/module/button/Button.web.js +32 -2
- package/lib/module/button/Button.web.js.map +1 -1
- package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts +8 -2
- package/lib/typescript/commonjs/alert-dialog/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/commonjs/button/Button.web.d.ts.map +1 -1
- package/lib/typescript/module/alert-dialog/AlertDialog.d.ts +8 -2
- package/lib/typescript/module/alert-dialog/AlertDialog.d.ts.map +1 -1
- package/lib/typescript/module/button/Button.web.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/AlertDialog.test.tsx +105 -15
- package/src/__tests__/Button.web.test.tsx +51 -0
- package/src/__tests__/confirm-store.test.ts +16 -0
- package/src/alert-dialog/AlertDialog.tsx +40 -72
- package/src/button/Button.web.tsx +39 -2
|
@@ -5,16 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createAlertDialog = createAlertDialog;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
-
var _reactNative = require("react-native");
|
|
9
|
-
var _button = require("../button");
|
|
10
|
-
var _useTheme = require("../theme/use-theme.js");
|
|
11
|
-
var _index = require("../typography/index.js");
|
|
12
|
-
var _tokens = require("../styles/tokens.js");
|
|
13
8
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
9
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
-
/** Centered alert-card max width (px). Matches the legacy AlertDialog card. */
|
|
16
|
-
const ALERT_DIALOG_MAX_WIDTH = 440;
|
|
17
|
-
|
|
18
10
|
/**
|
|
19
11
|
* Build the `AlertDialog` component bound to a platform `Dialog`.
|
|
20
12
|
*
|
|
@@ -24,10 +16,16 @@ const ALERT_DIALOG_MAX_WIDTH = 440;
|
|
|
24
16
|
* (`index.ts` / `index.web.ts`) inject the correct `Dialog` here. The body
|
|
25
17
|
* below is single-source, no duplication.
|
|
26
18
|
*
|
|
27
|
-
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that
|
|
28
|
-
*
|
|
19
|
+
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that maps
|
|
20
|
+
* the confirm/cancel props onto the Dialog's declarative `actions` row — the
|
|
21
|
+
* SAME battle-tested `ActionRow`/`ActionButton` primitive every other bloom
|
|
22
|
+
* confirm surface uses (e.g. Mention's `ConfirmPrompt`), so the button
|
|
23
|
+
* component, layout, and palette stay identical across apps. Reach for the
|
|
29
24
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
30
25
|
* from an event handler without owning visible state.
|
|
26
|
+
*
|
|
27
|
+
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
28
|
+
* parity with the shared confirm surface.
|
|
31
29
|
*/
|
|
32
30
|
function createAlertDialog(Dialog) {
|
|
33
31
|
const AlertDialogComponent = function AlertDialog({
|
|
@@ -45,73 +43,51 @@ function createAlertDialog(Dialog) {
|
|
|
45
43
|
cardStyle,
|
|
46
44
|
testID
|
|
47
45
|
}) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
// Confirm resolves + closes SYNCHRONOUSLY, in this order, and must NOT go
|
|
47
|
+
// through the Dialog's auto-close (`shouldCloseOnPress: false`). In
|
|
48
|
+
// controlled mode `close()` fires `onClose` FIRST, and the `confirm()` host
|
|
49
|
+
// wires `onClose` to resolve the promise as *cancelled* (`false`). Running
|
|
50
|
+
// `onConfirm` (resolve `true`, which removes the queue entry) before
|
|
51
|
+
// `onClose` (now a no-op for that entry) is what makes the confirm button
|
|
52
|
+
// resolve `true`.
|
|
53
53
|
const handleConfirm = (0, _react.useCallback)(() => {
|
|
54
54
|
onConfirm?.();
|
|
55
55
|
onClose();
|
|
56
56
|
}, [onConfirm, onClose]);
|
|
57
|
-
|
|
57
|
+
const actions = [{
|
|
58
|
+
label: confirmLabel,
|
|
59
|
+
onPress: handleConfirm,
|
|
60
|
+
color: destructive ? 'destructive' : 'default',
|
|
61
|
+
shouldCloseOnPress: false
|
|
62
|
+
}];
|
|
63
|
+
if (!hideCancel) {
|
|
64
|
+
// The `cancel` color auto-dismisses via the Dialog's `close()`, which in
|
|
65
|
+
// controlled mode fires `onClose` (the host resolves `false`). `onCancel`
|
|
66
|
+
// runs after the surface finishes closing.
|
|
67
|
+
actions.push({
|
|
68
|
+
label: cancelLabel,
|
|
69
|
+
onPress: onCancel,
|
|
70
|
+
color: 'cancel'
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Dialog, {
|
|
58
74
|
open: visible,
|
|
59
75
|
onClose: onClose,
|
|
60
76
|
placement: "center"
|
|
61
|
-
// Alert dialogs are blocking by default — the backdrop only
|
|
62
|
-
// when the caller opts in via `dismissible`.
|
|
77
|
+
// Alert dialogs are blocking by default — the backdrop / Escape only
|
|
78
|
+
// dismiss when the caller opts in via `dismissible`.
|
|
63
79
|
,
|
|
64
80
|
dismissOnBackdrop: dismissible,
|
|
65
|
-
maxWidth: ALERT_DIALOG_MAX_WIDTH,
|
|
66
81
|
title: title,
|
|
82
|
+
description: description,
|
|
83
|
+
actions: actions,
|
|
67
84
|
label: title,
|
|
68
85
|
style: cardStyle,
|
|
69
|
-
testID: testID
|
|
70
|
-
children: [description ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_index.Text, {
|
|
71
|
-
style: {
|
|
72
|
-
fontSize: _tokens.fontSize.md,
|
|
73
|
-
lineHeight: _tokens.fontSize.md * 1.4,
|
|
74
|
-
color: theme.colors.textSecondary,
|
|
75
|
-
paddingBottom: _tokens.space.lg
|
|
76
|
-
},
|
|
77
|
-
children: description
|
|
78
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
79
|
-
style: styles.actions,
|
|
80
|
-
children: [!hideCancel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
81
|
-
variant: "secondary",
|
|
82
|
-
size: "medium",
|
|
83
|
-
onPress: handleCancel,
|
|
84
|
-
style: styles.action,
|
|
85
|
-
accessibilityLabel: cancelLabel,
|
|
86
|
-
children: cancelLabel
|
|
87
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.Button, {
|
|
88
|
-
variant: "primary",
|
|
89
|
-
size: "medium",
|
|
90
|
-
onPress: handleConfirm,
|
|
91
|
-
style: _reactNative.StyleSheet.flatten([styles.action, destructive && {
|
|
92
|
-
backgroundColor: theme.colors.negative
|
|
93
|
-
}]),
|
|
94
|
-
textStyle: destructive ? {
|
|
95
|
-
color: theme.colors.negativeForeground
|
|
96
|
-
} : undefined,
|
|
97
|
-
accessibilityLabel: confirmLabel,
|
|
98
|
-
children: confirmLabel
|
|
99
|
-
})]
|
|
100
|
-
})]
|
|
86
|
+
testID: testID
|
|
101
87
|
});
|
|
102
88
|
};
|
|
103
89
|
const AlertDialog = /*#__PURE__*/(0, _react.memo)(AlertDialogComponent);
|
|
104
90
|
AlertDialog.displayName = 'AlertDialog';
|
|
105
91
|
return AlertDialog;
|
|
106
92
|
}
|
|
107
|
-
const styles = _reactNative.StyleSheet.create({
|
|
108
|
-
actions: {
|
|
109
|
-
flexDirection: 'row',
|
|
110
|
-
justifyContent: 'flex-end',
|
|
111
|
-
gap: _tokens.space.sm
|
|
112
|
-
},
|
|
113
|
-
action: {
|
|
114
|
-
minWidth: 96
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
93
|
//# sourceMappingURL=AlertDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createAlertDialog","Dialog","AlertDialogComponent","AlertDialog","visible","onClose","title","description","confirmLabel","cancelLabel","onConfirm","onCancel","destructive","hideCancel","dismissible","cardStyle","testID","handleConfirm","useCallback","actions","label","onPress","color","shouldCloseOnPress","push","jsx","open","placement","dismissOnBackdrop","style","memo","displayName"],"sourceRoot":"../../../src","sources":["alert-dialog/AlertDialog.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAiD,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAOjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkB,iBAAiBA,CAACC,MAAuB,EAAE;EACzD,MAAMC,oBAAoB,GAAG,SAASC,WAAWA,CAAC;IAChDC,OAAO;IACPC,OAAO;IACPC,KAAK;IACLC,WAAW;IACXC,YAAY,GAAG,SAAS;IACxBC,WAAW,GAAG,QAAQ;IACtBC,SAAS;IACTC,QAAQ;IACRC,WAAW,GAAG,KAAK;IACnBC,UAAU,GAAG,KAAK;IAClBC,WAAW,GAAG,KAAK;IACnBC,SAAS;IACTC;EACgB,CAAC,EAAE;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,aAAa,GAAG,IAAAC,kBAAW,EAAC,MAAM;MACtCR,SAAS,GAAG,CAAC;MACbL,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,CAACK,SAAS,EAAEL,OAAO,CAAC,CAAC;IAExB,MAAMc,OAAuB,GAAG,CAC9B;MACEC,KAAK,EAAEZ,YAAY;MACnBa,OAAO,EAAEJ,aAAa;MACtBK,KAAK,EAAEV,WAAW,GAAG,aAAa,GAAG,SAAS;MAC9CW,kBAAkB,EAAE;IACtB,CAAC,CACF;IACD,IAAI,CAACV,UAAU,EAAE;MACf;MACA;MACA;MACAM,OAAO,CAACK,IAAI,CAAC;QACXJ,KAAK,EAAEX,WAAW;QAClBY,OAAO,EAAEV,QAAQ;QACjBW,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;IAEA,oBACE,IAAA1C,WAAA,CAAA6C,GAAA,EAACxB,MAAM;MACLyB,IAAI,EAAEtB,OAAQ;MACdC,OAAO,EAAEA,OAAQ;MACjBsB,SAAS,EAAC;MACV;MACA;MAAA;MACAC,iBAAiB,EAAEd,WAAY;MAC/BR,KAAK,EAAEA,KAAM;MACbC,WAAW,EAAEA,WAAY;MACzBY,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAEd,KAAM;MACbuB,KAAK,EAAEd,SAAU;MACjBC,MAAM,EAAEA;IAAO,CAChB,CAAC;EAEN,CAAC;EAED,MAAMb,WAAW,gBAAG,IAAA2B,WAAI,EAAC5B,oBAAoB,CAAC;EAC9CC,WAAW,CAAC4B,WAAW,GAAG,aAAa;EACvC,OAAO5B,WAAW;AACpB","ignoreList":[]}
|
|
@@ -214,6 +214,32 @@ function resolveVariantStyle(variant, size, theme) {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
+
// ---------------------------------------------------------------------------
|
|
218
|
+
// Style normalization
|
|
219
|
+
//
|
|
220
|
+
// Callers idiomatically pass `style` as a React-Native `StyleProp` — most
|
|
221
|
+
// often an ARRAY (`style={[base, cond && override]}`, possibly nested and
|
|
222
|
+
// containing falsy holes from `cond && {...}`). The DOM `<button>` below needs
|
|
223
|
+
// a SINGLE plain object: spreading a raw array into an object literal produces
|
|
224
|
+
// numeric keys (`"0"`, `"1"`, …), which React then assigns onto the real
|
|
225
|
+
// `CSSStyleDeclaration`, throwing
|
|
226
|
+
// `Failed to set an indexed property [0] on 'CSSStyleDeclaration'`. Flatten the
|
|
227
|
+
// StyleProp into one object here, once, before it reaches either merge site.
|
|
228
|
+
// Later entries win, mirroring React-Native array-style precedence.
|
|
229
|
+
//
|
|
230
|
+
// `StyleNode` is a readonly-closed recursion type (RN's own `StyleProp` array
|
|
231
|
+
// member yields `readonly` sub-arrays that aren't assignable back to
|
|
232
|
+
// `StyleProp`, so it can't be recursed over directly). `ButtonProps['style']`
|
|
233
|
+
// is assignable to it, so call sites pass `style` with no cast.
|
|
234
|
+
// ---------------------------------------------------------------------------
|
|
235
|
+
|
|
236
|
+
function flattenStyle(style) {
|
|
237
|
+
if (Array.isArray(style)) {
|
|
238
|
+
return style.reduce((merged, entry) => Object.assign(merged, flattenStyle(entry)), {});
|
|
239
|
+
}
|
|
240
|
+
return style && typeof style === 'object' ? style : {};
|
|
241
|
+
}
|
|
242
|
+
|
|
217
243
|
// ---------------------------------------------------------------------------
|
|
218
244
|
// Component
|
|
219
245
|
// ---------------------------------------------------------------------------
|
|
@@ -296,6 +322,10 @@ const ButtonWebComponent = ({
|
|
|
296
322
|
const ariaLabel = ariaLabelProp ?? accessibilityLabel;
|
|
297
323
|
const composedClassName = ['bloom-btn'].concat(resolvedVariant === 'link' ? ['bloom-btn--link'] : []).concat(className ? [className] : []).join(' ');
|
|
298
324
|
const spinnerColor = loadingColor ?? variantStyle.textColor;
|
|
325
|
+
|
|
326
|
+
// Normalize the caller's `style` (single object, array, or falsy) into one
|
|
327
|
+
// flat plain object ONCE, so neither merge site below spreads a raw array.
|
|
328
|
+
const resolvedStyle = flattenStyle(style);
|
|
299
329
|
const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
300
330
|
children: [iconPosition === 'left' && icon, children != null && (typeof children === 'string' || typeof children === 'number' ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
301
331
|
children: children
|
|
@@ -339,7 +369,7 @@ const ButtonWebComponent = ({
|
|
|
339
369
|
className: [composedClassName, childProps.className].filter(Boolean).join(' '),
|
|
340
370
|
style: {
|
|
341
371
|
...containerStyle,
|
|
342
|
-
...
|
|
372
|
+
...resolvedStyle,
|
|
343
373
|
...childProps.style
|
|
344
374
|
},
|
|
345
375
|
onClick: event => {
|
|
@@ -367,7 +397,7 @@ const ButtonWebComponent = ({
|
|
|
367
397
|
className: composedClassName,
|
|
368
398
|
style: {
|
|
369
399
|
...containerStyle,
|
|
370
|
-
...
|
|
400
|
+
...resolvedStyle
|
|
371
401
|
},
|
|
372
402
|
onClick: handleClick,
|
|
373
403
|
disabled: disabled && !loading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_useTheme","_SpinnerIconWeb","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZE_CONFIG","small","paddingVertical","paddingHorizontal","fontSize","minHeight","medium","large","SIZE_ALIAS","sm","md","lg","icon","PILL_RADIUS","ICON_RADIUS","PRESS_SCALE","SCALE_VARIANTS","Set","STYLE_ID","BLOOM_BUTTON_CSS","useButtonCss","useEffect","document","getElementById","style","createElement","id","textContent","head","appendChild","resolveVariantStyle","variant","size","theme","c","colors","sizeConfig","container","backgroundColor","primary","borderRadius","textColor","primaryForeground","ringColor","negative","negativeForeground","borderWidth","borderStyle","borderColor","border","text","background","padding","width","height","ButtonWebComponent","onPress","onClick","children","disabled","sizeProp","iconPosition","loading","loadingColor","accessibilityLabel","ariaLabelProp","accessibilityHint","testID","className","type","asChild","name","value","title","autoFocus","tabIndex","fullWidth","useTheme","reactId","useId","resolvedId","resolvedVariant","isIcon","isInteractionBlocked","variantStyle","useMemo","containerStyle","base","fontWeight","color","undefined","paddingTop","paddingBottom","paddingLeft","paddingRight","handleClick","useCallback","event","preventDefault","ariaLabel","composedClassName","concat","join","spinnerColor","content","jsxs","Fragment","jsx","body","display","alignItems","justifyContent","gap","opacity","pointerEvents","position","inset","SpinnerIcon","Math","round","React","isValidElement","child","childProps","props","cloneElement","filter","Boolean","Button","exports","memo","displayName","PrimaryButton","SecondaryButton","IconButton","GhostButton","InverseButton","TextButton","OutlineButton","LinkButton","DestructiveButton"],"sourceRoot":"../../../src","sources":["button/Button.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_useTheme","_SpinnerIconWeb","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SIZE_CONFIG","small","paddingVertical","paddingHorizontal","fontSize","minHeight","medium","large","SIZE_ALIAS","sm","md","lg","icon","PILL_RADIUS","ICON_RADIUS","PRESS_SCALE","SCALE_VARIANTS","Set","STYLE_ID","BLOOM_BUTTON_CSS","useButtonCss","useEffect","document","getElementById","style","createElement","id","textContent","head","appendChild","resolveVariantStyle","variant","size","theme","c","colors","sizeConfig","container","backgroundColor","primary","borderRadius","textColor","primaryForeground","ringColor","negative","negativeForeground","borderWidth","borderStyle","borderColor","border","text","background","padding","width","height","flattenStyle","Array","isArray","reduce","merged","entry","assign","ButtonWebComponent","onPress","onClick","children","disabled","sizeProp","iconPosition","loading","loadingColor","accessibilityLabel","ariaLabelProp","accessibilityHint","testID","className","type","asChild","name","value","title","autoFocus","tabIndex","fullWidth","useTheme","reactId","useId","resolvedId","resolvedVariant","isIcon","isInteractionBlocked","variantStyle","useMemo","containerStyle","base","fontWeight","color","undefined","paddingTop","paddingBottom","paddingLeft","paddingRight","handleClick","useCallback","event","preventDefault","ariaLabel","composedClassName","concat","join","spinnerColor","resolvedStyle","content","jsxs","Fragment","jsx","body","display","alignItems","justifyContent","gap","opacity","pointerEvents","position","inset","SpinnerIcon","Math","round","React","isValidElement","child","childProps","props","cloneElement","filter","Boolean","Button","exports","memo","displayName","PrimaryButton","SecondaryButton","IconButton","GhostButton","InverseButton","TextButton","OutlineButton","LinkButton","DestructiveButton"],"sourceRoot":"../../../src","sources":["button/Button.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { memo, useCallback } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import { Button } from '../button';
|
|
6
|
-
import { useTheme } from "../theme/use-theme.js";
|
|
7
|
-
import { Text } from "../typography/index.js";
|
|
8
|
-
import { fontSize, space } from "../styles/tokens.js";
|
|
9
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
-
/** Centered alert-card max width (px). Matches the legacy AlertDialog card. */
|
|
11
|
-
const ALERT_DIALOG_MAX_WIDTH = 440;
|
|
12
|
-
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
5
|
/**
|
|
14
6
|
* Build the `AlertDialog` component bound to a platform `Dialog`.
|
|
15
7
|
*
|
|
@@ -19,10 +11,16 @@ const ALERT_DIALOG_MAX_WIDTH = 440;
|
|
|
19
11
|
* (`index.ts` / `index.web.ts`) inject the correct `Dialog` here. The body
|
|
20
12
|
* below is single-source, no duplication.
|
|
21
13
|
*
|
|
22
|
-
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that
|
|
23
|
-
*
|
|
14
|
+
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that maps
|
|
15
|
+
* the confirm/cancel props onto the Dialog's declarative `actions` row — the
|
|
16
|
+
* SAME battle-tested `ActionRow`/`ActionButton` primitive every other bloom
|
|
17
|
+
* confirm surface uses (e.g. Mention's `ConfirmPrompt`), so the button
|
|
18
|
+
* component, layout, and palette stay identical across apps. Reach for the
|
|
24
19
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
25
20
|
* from an event handler without owning visible state.
|
|
21
|
+
*
|
|
22
|
+
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
23
|
+
* parity with the shared confirm surface.
|
|
26
24
|
*/
|
|
27
25
|
export function createAlertDialog(Dialog) {
|
|
28
26
|
const AlertDialogComponent = function AlertDialog({
|
|
@@ -40,73 +38,51 @@ export function createAlertDialog(Dialog) {
|
|
|
40
38
|
cardStyle,
|
|
41
39
|
testID
|
|
42
40
|
}) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
// Confirm resolves + closes SYNCHRONOUSLY, in this order, and must NOT go
|
|
42
|
+
// through the Dialog's auto-close (`shouldCloseOnPress: false`). In
|
|
43
|
+
// controlled mode `close()` fires `onClose` FIRST, and the `confirm()` host
|
|
44
|
+
// wires `onClose` to resolve the promise as *cancelled* (`false`). Running
|
|
45
|
+
// `onConfirm` (resolve `true`, which removes the queue entry) before
|
|
46
|
+
// `onClose` (now a no-op for that entry) is what makes the confirm button
|
|
47
|
+
// resolve `true`.
|
|
48
48
|
const handleConfirm = useCallback(() => {
|
|
49
49
|
onConfirm?.();
|
|
50
50
|
onClose();
|
|
51
51
|
}, [onConfirm, onClose]);
|
|
52
|
-
|
|
52
|
+
const actions = [{
|
|
53
|
+
label: confirmLabel,
|
|
54
|
+
onPress: handleConfirm,
|
|
55
|
+
color: destructive ? 'destructive' : 'default',
|
|
56
|
+
shouldCloseOnPress: false
|
|
57
|
+
}];
|
|
58
|
+
if (!hideCancel) {
|
|
59
|
+
// The `cancel` color auto-dismisses via the Dialog's `close()`, which in
|
|
60
|
+
// controlled mode fires `onClose` (the host resolves `false`). `onCancel`
|
|
61
|
+
// runs after the surface finishes closing.
|
|
62
|
+
actions.push({
|
|
63
|
+
label: cancelLabel,
|
|
64
|
+
onPress: onCancel,
|
|
65
|
+
color: 'cancel'
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return /*#__PURE__*/_jsx(Dialog, {
|
|
53
69
|
open: visible,
|
|
54
70
|
onClose: onClose,
|
|
55
71
|
placement: "center"
|
|
56
|
-
// Alert dialogs are blocking by default — the backdrop only
|
|
57
|
-
// when the caller opts in via `dismissible`.
|
|
72
|
+
// Alert dialogs are blocking by default — the backdrop / Escape only
|
|
73
|
+
// dismiss when the caller opts in via `dismissible`.
|
|
58
74
|
,
|
|
59
75
|
dismissOnBackdrop: dismissible,
|
|
60
|
-
maxWidth: ALERT_DIALOG_MAX_WIDTH,
|
|
61
76
|
title: title,
|
|
77
|
+
description: description,
|
|
78
|
+
actions: actions,
|
|
62
79
|
label: title,
|
|
63
80
|
style: cardStyle,
|
|
64
|
-
testID: testID
|
|
65
|
-
children: [description ? /*#__PURE__*/_jsx(Text, {
|
|
66
|
-
style: {
|
|
67
|
-
fontSize: fontSize.md,
|
|
68
|
-
lineHeight: fontSize.md * 1.4,
|
|
69
|
-
color: theme.colors.textSecondary,
|
|
70
|
-
paddingBottom: space.lg
|
|
71
|
-
},
|
|
72
|
-
children: description
|
|
73
|
-
}) : null, /*#__PURE__*/_jsxs(View, {
|
|
74
|
-
style: styles.actions,
|
|
75
|
-
children: [!hideCancel ? /*#__PURE__*/_jsx(Button, {
|
|
76
|
-
variant: "secondary",
|
|
77
|
-
size: "medium",
|
|
78
|
-
onPress: handleCancel,
|
|
79
|
-
style: styles.action,
|
|
80
|
-
accessibilityLabel: cancelLabel,
|
|
81
|
-
children: cancelLabel
|
|
82
|
-
}) : null, /*#__PURE__*/_jsx(Button, {
|
|
83
|
-
variant: "primary",
|
|
84
|
-
size: "medium",
|
|
85
|
-
onPress: handleConfirm,
|
|
86
|
-
style: StyleSheet.flatten([styles.action, destructive && {
|
|
87
|
-
backgroundColor: theme.colors.negative
|
|
88
|
-
}]),
|
|
89
|
-
textStyle: destructive ? {
|
|
90
|
-
color: theme.colors.negativeForeground
|
|
91
|
-
} : undefined,
|
|
92
|
-
accessibilityLabel: confirmLabel,
|
|
93
|
-
children: confirmLabel
|
|
94
|
-
})]
|
|
95
|
-
})]
|
|
81
|
+
testID: testID
|
|
96
82
|
});
|
|
97
83
|
};
|
|
98
84
|
const AlertDialog = /*#__PURE__*/memo(AlertDialogComponent);
|
|
99
85
|
AlertDialog.displayName = 'AlertDialog';
|
|
100
86
|
return AlertDialog;
|
|
101
87
|
}
|
|
102
|
-
const styles = StyleSheet.create({
|
|
103
|
-
actions: {
|
|
104
|
-
flexDirection: 'row',
|
|
105
|
-
justifyContent: 'flex-end',
|
|
106
|
-
gap: space.sm
|
|
107
|
-
},
|
|
108
|
-
action: {
|
|
109
|
-
minWidth: 96
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
88
|
//# sourceMappingURL=AlertDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","jsx","_jsx","createAlertDialog","Dialog","AlertDialogComponent","AlertDialog","visible","onClose","title","description","confirmLabel","cancelLabel","onConfirm","onCancel","destructive","hideCancel","dismissible","cardStyle","testID","handleConfirm","actions","label","onPress","color","shouldCloseOnPress","push","open","placement","dismissOnBackdrop","style","displayName"],"sourceRoot":"../../../src","sources":["alert-dialog/AlertDialog.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,WAAW,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,MAAuB,EAAE;EACzD,MAAMC,oBAAoB,GAAG,SAASC,WAAWA,CAAC;IAChDC,OAAO;IACPC,OAAO;IACPC,KAAK;IACLC,WAAW;IACXC,YAAY,GAAG,SAAS;IACxBC,WAAW,GAAG,QAAQ;IACtBC,SAAS;IACTC,QAAQ;IACRC,WAAW,GAAG,KAAK;IACnBC,UAAU,GAAG,KAAK;IAClBC,WAAW,GAAG,KAAK;IACnBC,SAAS;IACTC;EACgB,CAAC,EAAE;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,aAAa,GAAGpB,WAAW,CAAC,MAAM;MACtCa,SAAS,GAAG,CAAC;MACbL,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,CAACK,SAAS,EAAEL,OAAO,CAAC,CAAC;IAExB,MAAMa,OAAuB,GAAG,CAC9B;MACEC,KAAK,EAAEX,YAAY;MACnBY,OAAO,EAAEH,aAAa;MACtBI,KAAK,EAAET,WAAW,GAAG,aAAa,GAAG,SAAS;MAC9CU,kBAAkB,EAAE;IACtB,CAAC,CACF;IACD,IAAI,CAACT,UAAU,EAAE;MACf;MACA;MACA;MACAK,OAAO,CAACK,IAAI,CAAC;QACXJ,KAAK,EAAEV,WAAW;QAClBW,OAAO,EAAET,QAAQ;QACjBU,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;IAEA,oBACEtB,IAAA,CAACE,MAAM;MACLuB,IAAI,EAAEpB,OAAQ;MACdC,OAAO,EAAEA,OAAQ;MACjBoB,SAAS,EAAC;MACV;MACA;MAAA;MACAC,iBAAiB,EAAEZ,WAAY;MAC/BR,KAAK,EAAEA,KAAM;MACbC,WAAW,EAAEA,WAAY;MACzBW,OAAO,EAAEA,OAAQ;MACjBC,KAAK,EAAEb,KAAM;MACbqB,KAAK,EAAEZ,SAAU;MACjBC,MAAM,EAAEA;IAAO,CAChB,CAAC;EAEN,CAAC;EAED,MAAMb,WAAW,gBAAGP,IAAI,CAACM,oBAAoB,CAAC;EAC9CC,WAAW,CAACyB,WAAW,GAAG,aAAa;EACvC,OAAOzB,WAAW;AACpB","ignoreList":[]}
|
|
@@ -209,6 +209,32 @@ function resolveVariantStyle(variant, size, theme) {
|
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
+
// ---------------------------------------------------------------------------
|
|
213
|
+
// Style normalization
|
|
214
|
+
//
|
|
215
|
+
// Callers idiomatically pass `style` as a React-Native `StyleProp` — most
|
|
216
|
+
// often an ARRAY (`style={[base, cond && override]}`, possibly nested and
|
|
217
|
+
// containing falsy holes from `cond && {...}`). The DOM `<button>` below needs
|
|
218
|
+
// a SINGLE plain object: spreading a raw array into an object literal produces
|
|
219
|
+
// numeric keys (`"0"`, `"1"`, …), which React then assigns onto the real
|
|
220
|
+
// `CSSStyleDeclaration`, throwing
|
|
221
|
+
// `Failed to set an indexed property [0] on 'CSSStyleDeclaration'`. Flatten the
|
|
222
|
+
// StyleProp into one object here, once, before it reaches either merge site.
|
|
223
|
+
// Later entries win, mirroring React-Native array-style precedence.
|
|
224
|
+
//
|
|
225
|
+
// `StyleNode` is a readonly-closed recursion type (RN's own `StyleProp` array
|
|
226
|
+
// member yields `readonly` sub-arrays that aren't assignable back to
|
|
227
|
+
// `StyleProp`, so it can't be recursed over directly). `ButtonProps['style']`
|
|
228
|
+
// is assignable to it, so call sites pass `style` with no cast.
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
|
|
231
|
+
function flattenStyle(style) {
|
|
232
|
+
if (Array.isArray(style)) {
|
|
233
|
+
return style.reduce((merged, entry) => Object.assign(merged, flattenStyle(entry)), {});
|
|
234
|
+
}
|
|
235
|
+
return style && typeof style === 'object' ? style : {};
|
|
236
|
+
}
|
|
237
|
+
|
|
212
238
|
// ---------------------------------------------------------------------------
|
|
213
239
|
// Component
|
|
214
240
|
// ---------------------------------------------------------------------------
|
|
@@ -291,6 +317,10 @@ const ButtonWebComponent = ({
|
|
|
291
317
|
const ariaLabel = ariaLabelProp ?? accessibilityLabel;
|
|
292
318
|
const composedClassName = ['bloom-btn'].concat(resolvedVariant === 'link' ? ['bloom-btn--link'] : []).concat(className ? [className] : []).join(' ');
|
|
293
319
|
const spinnerColor = loadingColor ?? variantStyle.textColor;
|
|
320
|
+
|
|
321
|
+
// Normalize the caller's `style` (single object, array, or falsy) into one
|
|
322
|
+
// flat plain object ONCE, so neither merge site below spreads a raw array.
|
|
323
|
+
const resolvedStyle = flattenStyle(style);
|
|
294
324
|
const content = /*#__PURE__*/_jsxs(_Fragment, {
|
|
295
325
|
children: [iconPosition === 'left' && icon, children != null && (typeof children === 'string' || typeof children === 'number' ? /*#__PURE__*/_jsx("span", {
|
|
296
326
|
children: children
|
|
@@ -334,7 +364,7 @@ const ButtonWebComponent = ({
|
|
|
334
364
|
className: [composedClassName, childProps.className].filter(Boolean).join(' '),
|
|
335
365
|
style: {
|
|
336
366
|
...containerStyle,
|
|
337
|
-
...
|
|
367
|
+
...resolvedStyle,
|
|
338
368
|
...childProps.style
|
|
339
369
|
},
|
|
340
370
|
onClick: event => {
|
|
@@ -362,7 +392,7 @@ const ButtonWebComponent = ({
|
|
|
362
392
|
className: composedClassName,
|
|
363
393
|
style: {
|
|
364
394
|
...containerStyle,
|
|
365
|
-
...
|
|
395
|
+
...resolvedStyle
|
|
366
396
|
},
|
|
367
397
|
onClick: handleClick,
|
|
368
398
|
disabled: disabled && !loading,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","SpinnerIcon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SIZE_CONFIG","small","paddingVertical","paddingHorizontal","fontSize","minHeight","medium","large","SIZE_ALIAS","sm","md","lg","icon","PILL_RADIUS","ICON_RADIUS","PRESS_SCALE","SCALE_VARIANTS","Set","STYLE_ID","BLOOM_BUTTON_CSS","useButtonCss","document","getElementById","style","createElement","id","textContent","head","appendChild","resolveVariantStyle","variant","size","theme","c","colors","sizeConfig","container","backgroundColor","primary","borderRadius","textColor","primaryForeground","ringColor","negative","negativeForeground","borderWidth","borderStyle","borderColor","border","text","background","padding","width","height","ButtonWebComponent","onPress","onClick","children","disabled","sizeProp","iconPosition","loading","loadingColor","accessibilityLabel","ariaLabelProp","accessibilityHint","testID","className","type","asChild","name","value","title","autoFocus","tabIndex","fullWidth","reactId","resolvedId","resolvedVariant","isIcon","isInteractionBlocked","variantStyle","containerStyle","base","fontWeight","color","undefined","has","paddingTop","paddingBottom","paddingLeft","paddingRight","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","spinnerColor","content","body","display","alignItems","justifyContent","gap","opacity","pointerEvents","position","inset","Math","round","isValidElement","child","childProps","props","cloneElement","filter","Boolean","Button","displayName","PrimaryButton","SecondaryButton","IconButton","GhostButton","InverseButton","TextButton","OutlineButton","LinkButton","DestructiveButton"],"sourceRoot":"../../../src","sources":["button/Button.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","useEffect","useId","useMemo","useTheme","SpinnerIcon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SIZE_CONFIG","small","paddingVertical","paddingHorizontal","fontSize","minHeight","medium","large","SIZE_ALIAS","sm","md","lg","icon","PILL_RADIUS","ICON_RADIUS","PRESS_SCALE","SCALE_VARIANTS","Set","STYLE_ID","BLOOM_BUTTON_CSS","useButtonCss","document","getElementById","style","createElement","id","textContent","head","appendChild","resolveVariantStyle","variant","size","theme","c","colors","sizeConfig","container","backgroundColor","primary","borderRadius","textColor","primaryForeground","ringColor","negative","negativeForeground","borderWidth","borderStyle","borderColor","border","text","background","padding","width","height","flattenStyle","Array","isArray","reduce","merged","entry","Object","assign","ButtonWebComponent","onPress","onClick","children","disabled","sizeProp","iconPosition","loading","loadingColor","accessibilityLabel","ariaLabelProp","accessibilityHint","testID","className","type","asChild","name","value","title","autoFocus","tabIndex","fullWidth","reactId","resolvedId","resolvedVariant","isIcon","isInteractionBlocked","variantStyle","containerStyle","base","fontWeight","color","undefined","has","paddingTop","paddingBottom","paddingLeft","paddingRight","handleClick","event","preventDefault","ariaLabel","composedClassName","concat","join","spinnerColor","resolvedStyle","content","body","display","alignItems","justifyContent","gap","opacity","pointerEvents","position","inset","Math","round","isValidElement","child","childProps","props","cloneElement","filter","Boolean","Button","displayName","PrimaryButton","SecondaryButton","IconButton","GhostButton","InverseButton","TextButton","OutlineButton","LinkButton","DestructiveButton"],"sourceRoot":"../../../src","sources":["button/Button.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,10 +11,16 @@ type DialogComponent = React.ComponentType<DialogProps>;
|
|
|
11
11
|
* (`index.ts` / `index.web.ts`) inject the correct `Dialog` here. The body
|
|
12
12
|
* below is single-source, no duplication.
|
|
13
13
|
*
|
|
14
|
-
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that
|
|
15
|
-
*
|
|
14
|
+
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that maps
|
|
15
|
+
* the confirm/cancel props onto the Dialog's declarative `actions` row — the
|
|
16
|
+
* SAME battle-tested `ActionRow`/`ActionButton` primitive every other bloom
|
|
17
|
+
* confirm surface uses (e.g. Mention's `ConfirmPrompt`), so the button
|
|
18
|
+
* component, layout, and palette stay identical across apps. Reach for the
|
|
16
19
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
17
20
|
* from an event handler without owning visible state.
|
|
21
|
+
*
|
|
22
|
+
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
23
|
+
* parity with the shared confirm surface.
|
|
18
24
|
*/
|
|
19
25
|
export declare function createAlertDialog(Dialog: DialogComponent): React.MemoExoticComponent<({ visible, onClose, title, description, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, hideCancel, dismissible, cardStyle, testID, }: AlertDialogProps) => import("react/jsx-runtime").JSX.Element>;
|
|
20
26
|
export type AlertDialogType = ReturnType<typeof createAlertDialog>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,kLAepD,gBAAgB,8CAqDpB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAC;AAEtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA4btE,eAAO,MAAM,MAAM,yCAA2B,CAAC;AAG/C,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,eAAe,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEtE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,WAAW,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAElE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,iBAAiB,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAExE,CAAC"}
|
|
@@ -11,10 +11,16 @@ type DialogComponent = React.ComponentType<DialogProps>;
|
|
|
11
11
|
* (`index.ts` / `index.web.ts`) inject the correct `Dialog` here. The body
|
|
12
12
|
* below is single-source, no duplication.
|
|
13
13
|
*
|
|
14
|
-
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that
|
|
15
|
-
*
|
|
14
|
+
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that maps
|
|
15
|
+
* the confirm/cancel props onto the Dialog's declarative `actions` row — the
|
|
16
|
+
* SAME battle-tested `ActionRow`/`ActionButton` primitive every other bloom
|
|
17
|
+
* confirm surface uses (e.g. Mention's `ConfirmPrompt`), so the button
|
|
18
|
+
* component, layout, and palette stay identical across apps. Reach for the
|
|
16
19
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
17
20
|
* from an event handler without owning visible state.
|
|
21
|
+
*
|
|
22
|
+
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
23
|
+
* parity with the shared confirm surface.
|
|
18
24
|
*/
|
|
19
25
|
export declare function createAlertDialog(Dialog: DialogComponent): React.MemoExoticComponent<({ visible, onClose, title, description, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, hideCancel, dismissible, cardStyle, testID, }: AlertDialogProps) => import("react/jsx-runtime").JSX.Element>;
|
|
20
26
|
export type AlertDialogType = ReturnType<typeof createAlertDialog>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertDialog.d.ts","sourceRoot":"","sources":["../../../../src/alert-dialog/AlertDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAgB,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,KAAK,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,kLAepD,gBAAgB,8CAqDpB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Button.web.d.ts","sourceRoot":"","sources":["../../../../src/button/Button.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,WAAW,EAA6B,MAAM,SAAS,CAAC;AAEtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AA4btE,eAAO,MAAM,MAAM,yCAA2B,CAAC;AAG/C,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,eAAe,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEtE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,WAAW,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAElE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,aAAa,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEpE,CAAC;AAGH,eAAO,MAAM,UAAU,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAEjE,CAAC;AAGH,eAAO,MAAM,iBAAiB,oCAAgB,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,6CAExE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import { act, fireEvent, render } from '@testing-library/react-native';
|
|
3
3
|
|
|
4
|
-
import { AlertDialog } from '../alert-dialog';
|
|
4
|
+
import { AlertDialog, AlertDialogHost, confirm } from '../alert-dialog';
|
|
5
|
+
import { getConfirmQueue, resolveConfirm } from '../alert-dialog/confirm-store';
|
|
5
6
|
import { BloomThemeProvider } from '../theme/BloomThemeProvider';
|
|
6
7
|
|
|
7
8
|
function renderWithTheme(ui: React.ReactElement) {
|
|
@@ -12,11 +13,23 @@ function renderWithTheme(ui: React.ReactElement) {
|
|
|
12
13
|
);
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
// `AlertDialog` is
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
16
|
+
// `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that maps
|
|
17
|
+
// its confirm/cancel props onto the Dialog's declarative `actions` row (the
|
|
18
|
+
// shared `ActionRow`/`ActionButton` primitive). These tests assert the
|
|
19
|
+
// public-API contract it owns — controlled visibility, the title/description
|
|
20
|
+
// copy, the confirm/cancel actions, and — most importantly — the exact
|
|
21
|
+
// `confirm()` promise-resolution contract every ecosystem call site relies on:
|
|
22
|
+
// the confirm button resolves `true`; the cancel button (or Escape / backdrop,
|
|
23
|
+
// which route through the Dialog's `onClose`) resolves `false`.
|
|
19
24
|
describe('AlertDialog (built on Dialog)', () => {
|
|
25
|
+
afterEach(() => {
|
|
26
|
+
// Drain any confirm() entries a test left pending so the module-scoped
|
|
27
|
+
// queue never bleeds across tests.
|
|
28
|
+
for (const entry of [...getConfirmQueue()]) {
|
|
29
|
+
resolveConfirm(entry.id, false);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
20
33
|
it('renders nothing when not visible', () => {
|
|
21
34
|
const { queryByText } = renderWithTheme(
|
|
22
35
|
<AlertDialog
|
|
@@ -48,8 +61,9 @@ describe('AlertDialog (built on Dialog)', () => {
|
|
|
48
61
|
});
|
|
49
62
|
|
|
50
63
|
it('runs onConfirm then onClose when the confirm button is pressed', () => {
|
|
51
|
-
const
|
|
52
|
-
const
|
|
64
|
+
const calls: string[] = [];
|
|
65
|
+
const onConfirm = jest.fn(() => calls.push('confirm'));
|
|
66
|
+
const onClose = jest.fn(() => calls.push('close'));
|
|
53
67
|
const { getByText } = renderWithTheme(
|
|
54
68
|
<AlertDialog
|
|
55
69
|
visible
|
|
@@ -64,10 +78,11 @@ describe('AlertDialog (built on Dialog)', () => {
|
|
|
64
78
|
});
|
|
65
79
|
expect(onConfirm).toHaveBeenCalledTimes(1);
|
|
66
80
|
expect(onClose).toHaveBeenCalledTimes(1);
|
|
81
|
+
// Order matters: onConfirm must resolve the promise BEFORE onClose runs.
|
|
82
|
+
expect(calls).toEqual(['confirm', 'close']);
|
|
67
83
|
});
|
|
68
84
|
|
|
69
|
-
it('
|
|
70
|
-
const onCancel = jest.fn();
|
|
85
|
+
it('requests close (resolves cancel) when the cancel button is pressed', () => {
|
|
71
86
|
const onClose = jest.fn();
|
|
72
87
|
const { getByText } = renderWithTheme(
|
|
73
88
|
<AlertDialog
|
|
@@ -75,16 +90,37 @@ describe('AlertDialog (built on Dialog)', () => {
|
|
|
75
90
|
onClose={onClose}
|
|
76
91
|
title="Confirm?"
|
|
77
92
|
cancelLabel="No"
|
|
78
|
-
onCancel={onCancel}
|
|
79
93
|
/>,
|
|
80
94
|
);
|
|
81
95
|
act(() => {
|
|
82
96
|
fireEvent.press(getByText('No'));
|
|
83
97
|
});
|
|
84
|
-
|
|
98
|
+
// The `cancel` action dismisses via the Dialog's `close()`, which in
|
|
99
|
+
// controlled mode fires `onClose` — the confirm() host's resolve-false.
|
|
85
100
|
expect(onClose).toHaveBeenCalledTimes(1);
|
|
86
101
|
});
|
|
87
102
|
|
|
103
|
+
it('invokes onCancel after the cancel button dismisses the dialog', () => {
|
|
104
|
+
const onCancel = jest.fn();
|
|
105
|
+
function Harness() {
|
|
106
|
+
const [open, setOpen] = useState(true);
|
|
107
|
+
return (
|
|
108
|
+
<AlertDialog
|
|
109
|
+
visible={open}
|
|
110
|
+
onClose={() => setOpen(false)}
|
|
111
|
+
title="Confirm?"
|
|
112
|
+
cancelLabel="No"
|
|
113
|
+
onCancel={onCancel}
|
|
114
|
+
/>
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
const { getByText } = renderWithTheme(<Harness />);
|
|
118
|
+
act(() => {
|
|
119
|
+
fireEvent.press(getByText('No'));
|
|
120
|
+
});
|
|
121
|
+
expect(onCancel).toHaveBeenCalledTimes(1);
|
|
122
|
+
});
|
|
123
|
+
|
|
88
124
|
it('hides the cancel button when hideCancel is set', () => {
|
|
89
125
|
const { queryByText, getByText } = renderWithTheme(
|
|
90
126
|
<AlertDialog
|
|
@@ -112,11 +148,65 @@ describe('AlertDialog (built on Dialog)', () => {
|
|
|
112
148
|
onConfirm={onConfirm}
|
|
113
149
|
/>,
|
|
114
150
|
);
|
|
115
|
-
const
|
|
116
|
-
expect(
|
|
151
|
+
const confirmButton = getByText('Sign out');
|
|
152
|
+
expect(confirmButton).toBeTruthy();
|
|
117
153
|
act(() => {
|
|
118
|
-
fireEvent.press(
|
|
154
|
+
fireEvent.press(confirmButton);
|
|
119
155
|
});
|
|
120
156
|
expect(onConfirm).toHaveBeenCalledTimes(1);
|
|
121
157
|
});
|
|
158
|
+
|
|
159
|
+
// The authoritative ecosystem contract: `confirm()` + `<AlertDialogHost />`.
|
|
160
|
+
// Every consuming call site does `const ok = await confirm({...})`, so these
|
|
161
|
+
// assert the exact promise resolution against the REAL rendered action row.
|
|
162
|
+
describe('confirm() + AlertDialogHost promise contract', () => {
|
|
163
|
+
it('resolves true when the confirm button is pressed', async () => {
|
|
164
|
+
const { getByText } = renderWithTheme(<AlertDialogHost />);
|
|
165
|
+
let result!: Promise<boolean>;
|
|
166
|
+
act(() => {
|
|
167
|
+
result = confirm({
|
|
168
|
+
title: 'Delete app?',
|
|
169
|
+
confirmLabel: 'Delete',
|
|
170
|
+
cancelLabel: 'Keep',
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
act(() => {
|
|
174
|
+
fireEvent.press(getByText('Delete'));
|
|
175
|
+
});
|
|
176
|
+
await expect(result).resolves.toBe(true);
|
|
177
|
+
expect(getConfirmQueue()).toHaveLength(0);
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it('resolves false when the cancel button is pressed', async () => {
|
|
181
|
+
const { getByText } = renderWithTheme(<AlertDialogHost />);
|
|
182
|
+
let result!: Promise<boolean>;
|
|
183
|
+
act(() => {
|
|
184
|
+
result = confirm({
|
|
185
|
+
title: 'Discard changes?',
|
|
186
|
+
confirmLabel: 'Discard',
|
|
187
|
+
cancelLabel: 'Keep editing',
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
act(() => {
|
|
191
|
+
fireEvent.press(getByText('Keep editing'));
|
|
192
|
+
});
|
|
193
|
+
await expect(result).resolves.toBe(false);
|
|
194
|
+
expect(getConfirmQueue()).toHaveLength(0);
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
it('resolves true even though confirm fires both onConfirm and onClose', async () => {
|
|
198
|
+
// The confirm button runs onConfirm (resolve true, drains the entry) then
|
|
199
|
+
// onClose (resolve false — a no-op once the entry is gone). The net must
|
|
200
|
+
// be `true`; this guards the double-resolution path explicitly.
|
|
201
|
+
const { getByText } = renderWithTheme(<AlertDialogHost />);
|
|
202
|
+
let result!: Promise<boolean>;
|
|
203
|
+
act(() => {
|
|
204
|
+
result = confirm({ title: 'Proceed?', confirmLabel: 'Proceed' });
|
|
205
|
+
});
|
|
206
|
+
act(() => {
|
|
207
|
+
fireEvent.press(getByText('Proceed'));
|
|
208
|
+
});
|
|
209
|
+
await expect(result).resolves.toBe(true);
|
|
210
|
+
});
|
|
211
|
+
});
|
|
122
212
|
});
|
|
@@ -198,4 +198,55 @@ describe('Button.web', () => {
|
|
|
198
198
|
expect(getByRole(c, 'button', { name: 'icon' }).tagName).toBe('BUTTON');
|
|
199
199
|
});
|
|
200
200
|
});
|
|
201
|
+
|
|
202
|
+
// Regression: passing `style` as a React-Native `StyleProp` ARRAY (the
|
|
203
|
+
// `style={[base, cond && override]}` idiom used across the ecosystem) used to
|
|
204
|
+
// spread the raw array into the DOM button's inline style, producing numeric
|
|
205
|
+
// keys and throwing at runtime:
|
|
206
|
+
// "Failed to set an indexed property [0] on 'CSSStyleDeclaration'".
|
|
207
|
+
describe('style prop flattening', () => {
|
|
208
|
+
it('renders without crashing when style is an array with a falsy hole', () => {
|
|
209
|
+
const showBg = false;
|
|
210
|
+
const c = mount(
|
|
211
|
+
<Button style={[{ marginTop: 10 }, showBg && { backgroundColor: 'rgb(9, 9, 9)' }]}>
|
|
212
|
+
Styled
|
|
213
|
+
</Button>,
|
|
214
|
+
);
|
|
215
|
+
const btn = getByRole(c, 'button', { name: 'Styled' });
|
|
216
|
+
expect(btn.tagName).toBe('BUTTON');
|
|
217
|
+
// The array is flattened onto the button; falsy entries are skipped.
|
|
218
|
+
expect(btn.style.marginTop).toBe('10px');
|
|
219
|
+
expect(btn.style.backgroundColor).not.toBe('rgb(9, 9, 9)');
|
|
220
|
+
// The crash signature: a leaked numeric ("0") style key.
|
|
221
|
+
expect(btn.getAttribute('style') ?? '').not.toMatch(/(^|;)\s*0\s*:/);
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
it('later array entries win, mirroring RN precedence, and override base', () => {
|
|
225
|
+
const c = mount(
|
|
226
|
+
<Button style={[{ marginTop: 1 }, { marginTop: 9, backgroundColor: 'rgb(1, 2, 3)' }]}>
|
|
227
|
+
Override
|
|
228
|
+
</Button>,
|
|
229
|
+
);
|
|
230
|
+
const btn = getByRole(c, 'button', { name: 'Override' });
|
|
231
|
+
expect(btn.style.marginTop).toBe('9px');
|
|
232
|
+
// Caller style is spread after the variant container style, so it wins.
|
|
233
|
+
expect(btn.style.backgroundColor).toBe('rgb(1, 2, 3)');
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
it('accepts a single style object', () => {
|
|
237
|
+
const c = mount(<Button style={{ marginTop: 5 }}>Solo</Button>);
|
|
238
|
+
expect(getByRole(c, 'button', { name: 'Solo' }).style.marginTop).toBe('5px');
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
it('flattens an array style onto the asChild child element too', () => {
|
|
242
|
+
const c = mount(
|
|
243
|
+
<Button asChild style={[{ marginTop: 7 }, false]}>
|
|
244
|
+
<a href="/go">Go</a>
|
|
245
|
+
</Button>,
|
|
246
|
+
);
|
|
247
|
+
const link = getByRole(c, 'link', { name: 'Go' });
|
|
248
|
+
expect(link.tagName).toBe('A');
|
|
249
|
+
expect(link.style.marginTop).toBe('7px');
|
|
250
|
+
});
|
|
251
|
+
});
|
|
201
252
|
});
|
|
@@ -42,6 +42,22 @@ describe('confirm-store', () => {
|
|
|
42
42
|
await expect(promise).resolves.toBe(false);
|
|
43
43
|
});
|
|
44
44
|
|
|
45
|
+
it('resolves once — a second resolve for the same id is a no-op', async () => {
|
|
46
|
+
// The AlertDialog confirm path calls onConfirm (resolve true) THEN onClose
|
|
47
|
+
// (resolve false) for the SAME entry. The first resolve drains the entry,
|
|
48
|
+
// so the second is ignored and the promise keeps its `true` value. This is
|
|
49
|
+
// the guard the whole confirm() button contract relies on.
|
|
50
|
+
const promise = confirm({ title: 'Proceed?' });
|
|
51
|
+
const id = getConfirmQueue()[0]?.id;
|
|
52
|
+
expect(id).toBeTruthy();
|
|
53
|
+
if (id) {
|
|
54
|
+
resolveConfirm(id, true);
|
|
55
|
+
resolveConfirm(id, false);
|
|
56
|
+
}
|
|
57
|
+
await expect(promise).resolves.toBe(true);
|
|
58
|
+
expect(getConfirmQueue()).toHaveLength(0);
|
|
59
|
+
});
|
|
60
|
+
|
|
45
61
|
it('drains queued entries to a late subscriber', () => {
|
|
46
62
|
void confirm({ title: 'Queued before subscribe' });
|
|
47
63
|
let delivered: number | null = null;
|
|
@@ -1,18 +1,10 @@
|
|
|
1
1
|
import React, { memo, useCallback } from 'react';
|
|
2
|
-
import { StyleSheet, View } from 'react-native';
|
|
3
2
|
|
|
4
|
-
import {
|
|
5
|
-
import type { DialogProps } from '../dialog';
|
|
6
|
-
import { useTheme } from '../theme/use-theme';
|
|
7
|
-
import { Text } from '../typography';
|
|
8
|
-
import { fontSize, space } from '../styles/tokens';
|
|
3
|
+
import type { DialogAction, DialogProps } from '../dialog';
|
|
9
4
|
import type { AlertDialogProps } from './types';
|
|
10
5
|
|
|
11
6
|
type DialogComponent = React.ComponentType<DialogProps>;
|
|
12
7
|
|
|
13
|
-
/** Centered alert-card max width (px). Matches the legacy AlertDialog card. */
|
|
14
|
-
const ALERT_DIALOG_MAX_WIDTH = 440;
|
|
15
|
-
|
|
16
8
|
/**
|
|
17
9
|
* Build the `AlertDialog` component bound to a platform `Dialog`.
|
|
18
10
|
*
|
|
@@ -22,10 +14,16 @@ const ALERT_DIALOG_MAX_WIDTH = 440;
|
|
|
22
14
|
* (`index.ts` / `index.web.ts`) inject the correct `Dialog` here. The body
|
|
23
15
|
* below is single-source, no duplication.
|
|
24
16
|
*
|
|
25
|
-
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that
|
|
26
|
-
*
|
|
17
|
+
* `AlertDialog` is a thin wrapper over `<Dialog placement="center">` that maps
|
|
18
|
+
* the confirm/cancel props onto the Dialog's declarative `actions` row — the
|
|
19
|
+
* SAME battle-tested `ActionRow`/`ActionButton` primitive every other bloom
|
|
20
|
+
* confirm surface uses (e.g. Mention's `ConfirmPrompt`), so the button
|
|
21
|
+
* component, layout, and palette stay identical across apps. Reach for the
|
|
27
22
|
* imperative `confirm()` helper + `<AlertDialogHost />` to trigger a confirm
|
|
28
23
|
* from an event handler without owning visible state.
|
|
24
|
+
*
|
|
25
|
+
* The centered card uses the Dialog default `maxWidth` (480px) for full visual
|
|
26
|
+
* parity with the shared confirm surface.
|
|
29
27
|
*/
|
|
30
28
|
export function createAlertDialog(Dialog: DialogComponent) {
|
|
31
29
|
const AlertDialogComponent = function AlertDialog({
|
|
@@ -43,71 +41,52 @@ export function createAlertDialog(Dialog: DialogComponent) {
|
|
|
43
41
|
cardStyle,
|
|
44
42
|
testID,
|
|
45
43
|
}: AlertDialogProps) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
44
|
+
// Confirm resolves + closes SYNCHRONOUSLY, in this order, and must NOT go
|
|
45
|
+
// through the Dialog's auto-close (`shouldCloseOnPress: false`). In
|
|
46
|
+
// controlled mode `close()` fires `onClose` FIRST, and the `confirm()` host
|
|
47
|
+
// wires `onClose` to resolve the promise as *cancelled* (`false`). Running
|
|
48
|
+
// `onConfirm` (resolve `true`, which removes the queue entry) before
|
|
49
|
+
// `onClose` (now a no-op for that entry) is what makes the confirm button
|
|
50
|
+
// resolve `true`.
|
|
53
51
|
const handleConfirm = useCallback(() => {
|
|
54
52
|
onConfirm?.();
|
|
55
53
|
onClose();
|
|
56
54
|
}, [onConfirm, onClose]);
|
|
57
55
|
|
|
56
|
+
const actions: DialogAction[] = [
|
|
57
|
+
{
|
|
58
|
+
label: confirmLabel,
|
|
59
|
+
onPress: handleConfirm,
|
|
60
|
+
color: destructive ? 'destructive' : 'default',
|
|
61
|
+
shouldCloseOnPress: false,
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
if (!hideCancel) {
|
|
65
|
+
// The `cancel` color auto-dismisses via the Dialog's `close()`, which in
|
|
66
|
+
// controlled mode fires `onClose` (the host resolves `false`). `onCancel`
|
|
67
|
+
// runs after the surface finishes closing.
|
|
68
|
+
actions.push({
|
|
69
|
+
label: cancelLabel,
|
|
70
|
+
onPress: onCancel,
|
|
71
|
+
color: 'cancel',
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
58
75
|
return (
|
|
59
76
|
<Dialog
|
|
60
77
|
open={visible}
|
|
61
78
|
onClose={onClose}
|
|
62
79
|
placement="center"
|
|
63
|
-
// Alert dialogs are blocking by default — the backdrop only
|
|
64
|
-
// when the caller opts in via `dismissible`.
|
|
80
|
+
// Alert dialogs are blocking by default — the backdrop / Escape only
|
|
81
|
+
// dismiss when the caller opts in via `dismissible`.
|
|
65
82
|
dismissOnBackdrop={dismissible}
|
|
66
|
-
maxWidth={ALERT_DIALOG_MAX_WIDTH}
|
|
67
83
|
title={title}
|
|
84
|
+
description={description}
|
|
85
|
+
actions={actions}
|
|
68
86
|
label={title}
|
|
69
87
|
style={cardStyle}
|
|
70
88
|
testID={testID}
|
|
71
|
-
|
|
72
|
-
{description ? (
|
|
73
|
-
<Text
|
|
74
|
-
style={{
|
|
75
|
-
fontSize: fontSize.md,
|
|
76
|
-
lineHeight: fontSize.md * 1.4,
|
|
77
|
-
color: theme.colors.textSecondary,
|
|
78
|
-
paddingBottom: space.lg,
|
|
79
|
-
}}
|
|
80
|
-
>
|
|
81
|
-
{description}
|
|
82
|
-
</Text>
|
|
83
|
-
) : null}
|
|
84
|
-
<View style={styles.actions}>
|
|
85
|
-
{!hideCancel ? (
|
|
86
|
-
<Button
|
|
87
|
-
variant="secondary"
|
|
88
|
-
size="medium"
|
|
89
|
-
onPress={handleCancel}
|
|
90
|
-
style={styles.action}
|
|
91
|
-
accessibilityLabel={cancelLabel}
|
|
92
|
-
>
|
|
93
|
-
{cancelLabel}
|
|
94
|
-
</Button>
|
|
95
|
-
) : null}
|
|
96
|
-
<Button
|
|
97
|
-
variant="primary"
|
|
98
|
-
size="medium"
|
|
99
|
-
onPress={handleConfirm}
|
|
100
|
-
style={StyleSheet.flatten([
|
|
101
|
-
styles.action,
|
|
102
|
-
destructive && { backgroundColor: theme.colors.negative },
|
|
103
|
-
])}
|
|
104
|
-
textStyle={destructive ? { color: theme.colors.negativeForeground } : undefined}
|
|
105
|
-
accessibilityLabel={confirmLabel}
|
|
106
|
-
>
|
|
107
|
-
{confirmLabel}
|
|
108
|
-
</Button>
|
|
109
|
-
</View>
|
|
110
|
-
</Dialog>
|
|
89
|
+
/>
|
|
111
90
|
);
|
|
112
91
|
};
|
|
113
92
|
|
|
@@ -117,14 +96,3 @@ export function createAlertDialog(Dialog: DialogComponent) {
|
|
|
117
96
|
}
|
|
118
97
|
|
|
119
98
|
export type AlertDialogType = ReturnType<typeof createAlertDialog>;
|
|
120
|
-
|
|
121
|
-
const styles = StyleSheet.create({
|
|
122
|
-
actions: {
|
|
123
|
-
flexDirection: 'row',
|
|
124
|
-
justifyContent: 'flex-end',
|
|
125
|
-
gap: space.sm,
|
|
126
|
-
},
|
|
127
|
-
action: {
|
|
128
|
-
minWidth: 96,
|
|
129
|
-
},
|
|
130
|
-
});
|
|
@@ -9,6 +9,8 @@ import React, {
|
|
|
9
9
|
type ReactElement,
|
|
10
10
|
} from 'react';
|
|
11
11
|
|
|
12
|
+
import type { ViewStyle } from 'react-native';
|
|
13
|
+
|
|
12
14
|
import { useTheme } from '../theme/use-theme';
|
|
13
15
|
import type { Theme } from '../theme/types';
|
|
14
16
|
import { SpinnerIcon } from '../loading/SpinnerIcon.web';
|
|
@@ -216,6 +218,37 @@ function resolveVariantStyle(
|
|
|
216
218
|
}
|
|
217
219
|
}
|
|
218
220
|
|
|
221
|
+
// ---------------------------------------------------------------------------
|
|
222
|
+
// Style normalization
|
|
223
|
+
//
|
|
224
|
+
// Callers idiomatically pass `style` as a React-Native `StyleProp` — most
|
|
225
|
+
// often an ARRAY (`style={[base, cond && override]}`, possibly nested and
|
|
226
|
+
// containing falsy holes from `cond && {...}`). The DOM `<button>` below needs
|
|
227
|
+
// a SINGLE plain object: spreading a raw array into an object literal produces
|
|
228
|
+
// numeric keys (`"0"`, `"1"`, …), which React then assigns onto the real
|
|
229
|
+
// `CSSStyleDeclaration`, throwing
|
|
230
|
+
// `Failed to set an indexed property [0] on 'CSSStyleDeclaration'`. Flatten the
|
|
231
|
+
// StyleProp into one object here, once, before it reaches either merge site.
|
|
232
|
+
// Later entries win, mirroring React-Native array-style precedence.
|
|
233
|
+
//
|
|
234
|
+
// `StyleNode` is a readonly-closed recursion type (RN's own `StyleProp` array
|
|
235
|
+
// member yields `readonly` sub-arrays that aren't assignable back to
|
|
236
|
+
// `StyleProp`, so it can't be recursed over directly). `ButtonProps['style']`
|
|
237
|
+
// is assignable to it, so call sites pass `style` with no cast.
|
|
238
|
+
// ---------------------------------------------------------------------------
|
|
239
|
+
|
|
240
|
+
type StyleNode = ViewStyle | false | null | undefined | '' | ReadonlyArray<StyleNode>;
|
|
241
|
+
|
|
242
|
+
function flattenStyle(style: StyleNode): CSSProperties {
|
|
243
|
+
if (Array.isArray(style)) {
|
|
244
|
+
return style.reduce<CSSProperties>(
|
|
245
|
+
(merged, entry) => Object.assign(merged, flattenStyle(entry)),
|
|
246
|
+
{},
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
return style && typeof style === 'object' ? (style as CSSProperties) : {};
|
|
250
|
+
}
|
|
251
|
+
|
|
219
252
|
// ---------------------------------------------------------------------------
|
|
220
253
|
// Component
|
|
221
254
|
// ---------------------------------------------------------------------------
|
|
@@ -317,6 +350,10 @@ const ButtonWebComponent: React.FC<ButtonProps> = ({
|
|
|
317
350
|
|
|
318
351
|
const spinnerColor = loadingColor ?? variantStyle.textColor;
|
|
319
352
|
|
|
353
|
+
// Normalize the caller's `style` (single object, array, or falsy) into one
|
|
354
|
+
// flat plain object ONCE, so neither merge site below spreads a raw array.
|
|
355
|
+
const resolvedStyle = flattenStyle(style);
|
|
356
|
+
|
|
320
357
|
const content = (
|
|
321
358
|
<>
|
|
322
359
|
{iconPosition === 'left' && icon}
|
|
@@ -381,7 +418,7 @@ const ButtonWebComponent: React.FC<ButtonProps> = ({
|
|
|
381
418
|
const childProps = child.props;
|
|
382
419
|
return React.cloneElement(child, {
|
|
383
420
|
className: [composedClassName, childProps.className].filter(Boolean).join(' '),
|
|
384
|
-
style: { ...containerStyle, ...
|
|
421
|
+
style: { ...containerStyle, ...resolvedStyle, ...childProps.style },
|
|
385
422
|
onClick: (event: MouseEvent<HTMLElement>) => {
|
|
386
423
|
if (isInteractionBlocked) {
|
|
387
424
|
event.preventDefault();
|
|
@@ -407,7 +444,7 @@ const ButtonWebComponent: React.FC<ButtonProps> = ({
|
|
|
407
444
|
name={name}
|
|
408
445
|
value={value}
|
|
409
446
|
className={composedClassName}
|
|
410
|
-
style={{ ...containerStyle, ...
|
|
447
|
+
style={{ ...containerStyle, ...resolvedStyle }}
|
|
411
448
|
onClick={handleClick}
|
|
412
449
|
disabled={disabled && !loading}
|
|
413
450
|
aria-disabled={isInteractionBlocked || undefined}
|