@buoy-gg/redux 7.0.3 → 7.0.5
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/index.js +6 -0
- package/lib/commonjs/redux/components/ReduxModal.js +112 -67
- package/lib/module/index.js +3 -1
- package/lib/module/redux/components/ReduxModal.js +111 -67
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/redux/components/ReduxModal.d.ts +15 -1
- package/lib/typescript/redux/components/ReduxModal.d.ts.map +1 -1
- package/package.json +4 -4
package/lib/commonjs/index.js
CHANGED
|
@@ -57,6 +57,12 @@ Object.defineProperty(exports, "ReduxModal", {
|
|
|
57
57
|
return _ReduxModal.ReduxModal;
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
|
+
Object.defineProperty(exports, "ReduxToolView", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _ReduxModal.ReduxToolView;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
60
66
|
Object.defineProperty(exports, "buoyReduxMiddleware", {
|
|
61
67
|
enumerable: true,
|
|
62
68
|
get: function () {
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.FREE_TIER_ACTION_LIMIT = void 0;
|
|
7
7
|
exports.ReduxModal = ReduxModal;
|
|
8
|
+
exports.ReduxToolView = ReduxToolView;
|
|
8
9
|
var _react = require("react");
|
|
9
10
|
var _reactNative = require("react-native");
|
|
10
11
|
var _sharedUi = require("@buoy-gg/shared-ui");
|
|
@@ -46,7 +47,8 @@ function ReduxModal({
|
|
|
46
47
|
onClose,
|
|
47
48
|
onBack,
|
|
48
49
|
onMinimize,
|
|
49
|
-
enableSharedModalDimensions = false
|
|
50
|
+
enableSharedModalDimensions = false,
|
|
51
|
+
inline = false
|
|
50
52
|
}) {
|
|
51
53
|
const isPro = (0, _license.useIsPro)();
|
|
52
54
|
const [showProModal, setShowProModal] = (0, _react.useState)(false);
|
|
@@ -285,6 +287,86 @@ function ReduxModal({
|
|
|
285
287
|
// The action list owns its scrolling so FlatList virtualization works
|
|
286
288
|
// (see ZustandModal — same pattern, same tool-bench evidence).
|
|
287
289
|
const listOwnsScroll = selectedAction == null;
|
|
290
|
+
const body = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
291
|
+
style: styles.container,
|
|
292
|
+
children: selectedAction && selectedActionIndex !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReduxActionDetailContent.ReduxActionDetailContent, {
|
|
293
|
+
action: selectedAction,
|
|
294
|
+
actions: visibleActions,
|
|
295
|
+
selectedIndex: selectedActionIndex,
|
|
296
|
+
onIndexChange: handleIndexChange,
|
|
297
|
+
disableInternalFooter: true
|
|
298
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
299
|
+
children: [instrumentError && !isInstrumented && !_reduxActionStore.reduxActionStore.isCaptureSuppressed() && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
300
|
+
style: styles.errorBanner,
|
|
301
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.AlertTriangle, {
|
|
302
|
+
size: 14,
|
|
303
|
+
color: _sharedUi.macOSColors.semantic.error
|
|
304
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
305
|
+
style: styles.errorText,
|
|
306
|
+
children: isReactReduxAvailable ? "Not inside a Redux Provider. Wrap your app with <Provider store={store}>." : "react-redux not installed. Run: npm install react-redux"
|
|
307
|
+
})]
|
|
308
|
+
}), !isEnabled && isInstrumented && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
309
|
+
style: styles.disabledBanner,
|
|
310
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Power, {
|
|
311
|
+
size: 14,
|
|
312
|
+
color: _sharedUi.macOSColors.semantic.warning
|
|
313
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
314
|
+
style: styles.disabledText,
|
|
315
|
+
children: "Action capture is disabled"
|
|
316
|
+
})]
|
|
317
|
+
}), hasLockedActions && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
318
|
+
style: styles.lockedBanner,
|
|
319
|
+
onPress: handleUpgradePress,
|
|
320
|
+
activeOpacity: 0.8,
|
|
321
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Lock, {
|
|
322
|
+
size: 14,
|
|
323
|
+
color: _sharedUi.buoyColors.primary
|
|
324
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
325
|
+
style: styles.lockedText,
|
|
326
|
+
children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
|
|
327
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
328
|
+
style: styles.upgradeBadge,
|
|
329
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
330
|
+
style: styles.upgradeBadgeText,
|
|
331
|
+
children: "UPGRADE"
|
|
332
|
+
})
|
|
333
|
+
})]
|
|
334
|
+
}), visibleActions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
|
|
335
|
+
ref: flatListRef,
|
|
336
|
+
data: visibleActions,
|
|
337
|
+
renderItem: renderItem,
|
|
338
|
+
keyExtractor: keyExtractor,
|
|
339
|
+
contentContainerStyle: styles.listContent,
|
|
340
|
+
showsVerticalScrollIndicator: true,
|
|
341
|
+
removeClippedSubviews: true,
|
|
342
|
+
initialNumToRender: 12,
|
|
343
|
+
maxToRenderPerBatch: 8,
|
|
344
|
+
windowSize: 5,
|
|
345
|
+
updateCellsBatchingPeriod: 50
|
|
346
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyState, {
|
|
347
|
+
isEnabled: isEnabled
|
|
348
|
+
})]
|
|
349
|
+
})
|
|
350
|
+
});
|
|
351
|
+
const upgradeModal = /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ProUpgradeModal, {
|
|
352
|
+
visible: showProModal,
|
|
353
|
+
onClose: () => setShowProModal(false),
|
|
354
|
+
featureName: "Full Action History"
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
// The ONLY difference between the phone and the desktop dashboard is which
|
|
358
|
+
// shell the header, body and footer go in. Everything above this is shared.
|
|
359
|
+
if (inline) {
|
|
360
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.TickProvider, {
|
|
361
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
362
|
+
style: styles.inlineRoot,
|
|
363
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
364
|
+
style: styles.inlineHeader,
|
|
365
|
+
children: renderHeaderContent()
|
|
366
|
+
}), body, footerNode]
|
|
367
|
+
}), upgradeModal]
|
|
368
|
+
});
|
|
369
|
+
}
|
|
288
370
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.TickProvider, {
|
|
289
371
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
|
|
290
372
|
visible: visible,
|
|
@@ -303,75 +385,38 @@ function ReduxModal({
|
|
|
303
385
|
styles: {},
|
|
304
386
|
footer: footerNode,
|
|
305
387
|
footerHeight: footerHeight,
|
|
306
|
-
children:
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
})]
|
|
324
|
-
}), !isEnabled && isInstrumented && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
325
|
-
style: styles.disabledBanner,
|
|
326
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Power, {
|
|
327
|
-
size: 14,
|
|
328
|
-
color: _sharedUi.macOSColors.semantic.warning
|
|
329
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
330
|
-
style: styles.disabledText,
|
|
331
|
-
children: "Action capture is disabled"
|
|
332
|
-
})]
|
|
333
|
-
}), hasLockedActions && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
334
|
-
style: styles.lockedBanner,
|
|
335
|
-
onPress: handleUpgradePress,
|
|
336
|
-
activeOpacity: 0.8,
|
|
337
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Lock, {
|
|
338
|
-
size: 14,
|
|
339
|
-
color: _sharedUi.buoyColors.primary
|
|
340
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
341
|
-
style: styles.lockedText,
|
|
342
|
-
children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
|
|
343
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
344
|
-
style: styles.upgradeBadge,
|
|
345
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
346
|
-
style: styles.upgradeBadgeText,
|
|
347
|
-
children: "UPGRADE"
|
|
348
|
-
})
|
|
349
|
-
})]
|
|
350
|
-
}), visibleActions.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.FlatList, {
|
|
351
|
-
ref: flatListRef,
|
|
352
|
-
data: visibleActions,
|
|
353
|
-
renderItem: renderItem,
|
|
354
|
-
keyExtractor: keyExtractor,
|
|
355
|
-
contentContainerStyle: styles.listContent,
|
|
356
|
-
showsVerticalScrollIndicator: true,
|
|
357
|
-
removeClippedSubviews: true,
|
|
358
|
-
initialNumToRender: 12,
|
|
359
|
-
maxToRenderPerBatch: 8,
|
|
360
|
-
windowSize: 5,
|
|
361
|
-
updateCellsBatchingPeriod: 50
|
|
362
|
-
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(EmptyState, {
|
|
363
|
-
isEnabled: isEnabled
|
|
364
|
-
})]
|
|
365
|
-
})
|
|
366
|
-
})
|
|
367
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ProUpgradeModal, {
|
|
368
|
-
visible: showProModal,
|
|
369
|
-
onClose: () => setShowProModal(false),
|
|
370
|
-
featureName: "Full Action History"
|
|
371
|
-
})]
|
|
388
|
+
children: body
|
|
389
|
+
}), upgradeModal]
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* The same Redux tool as `ReduxModal`, rendered INLINE for hosts that place
|
|
395
|
+
* tools in a panel rather than a modal. Exists so there is exactly one
|
|
396
|
+
* implementation — the desktop dashboard used to ship its own copy of this
|
|
397
|
+
* component's header, action list and detail router.
|
|
398
|
+
*/
|
|
399
|
+
function ReduxToolView(props = {}) {
|
|
400
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ReduxModal, {
|
|
401
|
+
...props,
|
|
402
|
+
inline: true,
|
|
403
|
+
visible: true,
|
|
404
|
+
onClose: () => {}
|
|
372
405
|
});
|
|
373
406
|
}
|
|
374
407
|
const styles = _reactNative.StyleSheet.create({
|
|
408
|
+
inlineRoot: {
|
|
409
|
+
flex: 1,
|
|
410
|
+
minHeight: 0,
|
|
411
|
+
backgroundColor: _sharedUi.macOSColors.background.base
|
|
412
|
+
},
|
|
413
|
+
inlineHeader: {
|
|
414
|
+
paddingHorizontal: 12,
|
|
415
|
+
paddingVertical: 8,
|
|
416
|
+
borderBottomWidth: 1,
|
|
417
|
+
borderBottomColor: _sharedUi.macOSColors.border.default,
|
|
418
|
+
backgroundColor: _sharedUi.macOSColors.background.card
|
|
419
|
+
},
|
|
375
420
|
container: {
|
|
376
421
|
flex: 1,
|
|
377
422
|
backgroundColor: _sharedUi.macOSColors.background.base
|
package/lib/module/index.js
CHANGED
|
@@ -75,7 +75,9 @@ export { useAutoInstrumentRedux, useReduxAvailability } from "./redux/hooks/useA
|
|
|
75
75
|
// =============================================================================
|
|
76
76
|
// COMPONENTS (For custom UI implementations)
|
|
77
77
|
// =============================================================================
|
|
78
|
-
|
|
78
|
+
// `ReduxToolView` is the same tool rendered inline (header bar + body + footer)
|
|
79
|
+
// instead of inside a JsModal — for hosts that show tools in a panel.
|
|
80
|
+
export { ReduxModal, ReduxToolView, FREE_TIER_ACTION_LIMIT } from "./redux/components/ReduxModal";
|
|
79
81
|
export { ReduxActionItem } from "./redux/components/ReduxActionItem";
|
|
80
82
|
export { ReduxActionDetailView } from "./redux/components/ReduxActionDetailView";
|
|
81
83
|
export { ReduxActionDetailContent, ReduxActionDetailFooter } from "./redux/components/ReduxActionDetailContent";
|
|
@@ -41,7 +41,8 @@ export function ReduxModal({
|
|
|
41
41
|
onClose,
|
|
42
42
|
onBack,
|
|
43
43
|
onMinimize,
|
|
44
|
-
enableSharedModalDimensions = false
|
|
44
|
+
enableSharedModalDimensions = false,
|
|
45
|
+
inline = false
|
|
45
46
|
}) {
|
|
46
47
|
const isPro = useIsPro();
|
|
47
48
|
const [showProModal, setShowProModal] = useState(false);
|
|
@@ -280,6 +281,86 @@ export function ReduxModal({
|
|
|
280
281
|
// The action list owns its scrolling so FlatList virtualization works
|
|
281
282
|
// (see ZustandModal — same pattern, same tool-bench evidence).
|
|
282
283
|
const listOwnsScroll = selectedAction == null;
|
|
284
|
+
const body = /*#__PURE__*/_jsx(View, {
|
|
285
|
+
style: styles.container,
|
|
286
|
+
children: selectedAction && selectedActionIndex !== null ? /*#__PURE__*/_jsx(ReduxActionDetailContent, {
|
|
287
|
+
action: selectedAction,
|
|
288
|
+
actions: visibleActions,
|
|
289
|
+
selectedIndex: selectedActionIndex,
|
|
290
|
+
onIndexChange: handleIndexChange,
|
|
291
|
+
disableInternalFooter: true
|
|
292
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
293
|
+
children: [instrumentError && !isInstrumented && !reduxActionStore.isCaptureSuppressed() && /*#__PURE__*/_jsxs(View, {
|
|
294
|
+
style: styles.errorBanner,
|
|
295
|
+
children: [/*#__PURE__*/_jsx(AlertTriangle, {
|
|
296
|
+
size: 14,
|
|
297
|
+
color: macOSColors.semantic.error
|
|
298
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
299
|
+
style: styles.errorText,
|
|
300
|
+
children: isReactReduxAvailable ? "Not inside a Redux Provider. Wrap your app with <Provider store={store}>." : "react-redux not installed. Run: npm install react-redux"
|
|
301
|
+
})]
|
|
302
|
+
}), !isEnabled && isInstrumented && /*#__PURE__*/_jsxs(View, {
|
|
303
|
+
style: styles.disabledBanner,
|
|
304
|
+
children: [/*#__PURE__*/_jsx(Power, {
|
|
305
|
+
size: 14,
|
|
306
|
+
color: macOSColors.semantic.warning
|
|
307
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
308
|
+
style: styles.disabledText,
|
|
309
|
+
children: "Action capture is disabled"
|
|
310
|
+
})]
|
|
311
|
+
}), hasLockedActions && /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
312
|
+
style: styles.lockedBanner,
|
|
313
|
+
onPress: handleUpgradePress,
|
|
314
|
+
activeOpacity: 0.8,
|
|
315
|
+
children: [/*#__PURE__*/_jsx(Lock, {
|
|
316
|
+
size: 14,
|
|
317
|
+
color: buoyColors.primary
|
|
318
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
319
|
+
style: styles.lockedText,
|
|
320
|
+
children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
|
|
321
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
322
|
+
style: styles.upgradeBadge,
|
|
323
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
324
|
+
style: styles.upgradeBadgeText,
|
|
325
|
+
children: "UPGRADE"
|
|
326
|
+
})
|
|
327
|
+
})]
|
|
328
|
+
}), visibleActions.length > 0 ? /*#__PURE__*/_jsx(FlatList, {
|
|
329
|
+
ref: flatListRef,
|
|
330
|
+
data: visibleActions,
|
|
331
|
+
renderItem: renderItem,
|
|
332
|
+
keyExtractor: keyExtractor,
|
|
333
|
+
contentContainerStyle: styles.listContent,
|
|
334
|
+
showsVerticalScrollIndicator: true,
|
|
335
|
+
removeClippedSubviews: true,
|
|
336
|
+
initialNumToRender: 12,
|
|
337
|
+
maxToRenderPerBatch: 8,
|
|
338
|
+
windowSize: 5,
|
|
339
|
+
updateCellsBatchingPeriod: 50
|
|
340
|
+
}) : /*#__PURE__*/_jsx(EmptyState, {
|
|
341
|
+
isEnabled: isEnabled
|
|
342
|
+
})]
|
|
343
|
+
})
|
|
344
|
+
});
|
|
345
|
+
const upgradeModal = /*#__PURE__*/_jsx(ProUpgradeModal, {
|
|
346
|
+
visible: showProModal,
|
|
347
|
+
onClose: () => setShowProModal(false),
|
|
348
|
+
featureName: "Full Action History"
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
// The ONLY difference between the phone and the desktop dashboard is which
|
|
352
|
+
// shell the header, body and footer go in. Everything above this is shared.
|
|
353
|
+
if (inline) {
|
|
354
|
+
return /*#__PURE__*/_jsxs(TickProvider, {
|
|
355
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
356
|
+
style: styles.inlineRoot,
|
|
357
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
358
|
+
style: styles.inlineHeader,
|
|
359
|
+
children: renderHeaderContent()
|
|
360
|
+
}), body, footerNode]
|
|
361
|
+
}), upgradeModal]
|
|
362
|
+
});
|
|
363
|
+
}
|
|
283
364
|
return /*#__PURE__*/_jsxs(TickProvider, {
|
|
284
365
|
children: [/*#__PURE__*/_jsx(JsModal, {
|
|
285
366
|
visible: visible,
|
|
@@ -298,75 +379,38 @@ export function ReduxModal({
|
|
|
298
379
|
styles: {},
|
|
299
380
|
footer: footerNode,
|
|
300
381
|
footerHeight: footerHeight,
|
|
301
|
-
children:
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
})]
|
|
319
|
-
}), !isEnabled && isInstrumented && /*#__PURE__*/_jsxs(View, {
|
|
320
|
-
style: styles.disabledBanner,
|
|
321
|
-
children: [/*#__PURE__*/_jsx(Power, {
|
|
322
|
-
size: 14,
|
|
323
|
-
color: macOSColors.semantic.warning
|
|
324
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
325
|
-
style: styles.disabledText,
|
|
326
|
-
children: "Action capture is disabled"
|
|
327
|
-
})]
|
|
328
|
-
}), hasLockedActions && /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
329
|
-
style: styles.lockedBanner,
|
|
330
|
-
onPress: handleUpgradePress,
|
|
331
|
-
activeOpacity: 0.8,
|
|
332
|
-
children: [/*#__PURE__*/_jsx(Lock, {
|
|
333
|
-
size: 14,
|
|
334
|
-
color: buoyColors.primary
|
|
335
|
-
}), /*#__PURE__*/_jsxs(Text, {
|
|
336
|
-
style: styles.lockedText,
|
|
337
|
-
children: [lockedActionCount, " older ", lockedActionCount === 1 ? "action" : "actions", " locked"]
|
|
338
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
339
|
-
style: styles.upgradeBadge,
|
|
340
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
341
|
-
style: styles.upgradeBadgeText,
|
|
342
|
-
children: "UPGRADE"
|
|
343
|
-
})
|
|
344
|
-
})]
|
|
345
|
-
}), visibleActions.length > 0 ? /*#__PURE__*/_jsx(FlatList, {
|
|
346
|
-
ref: flatListRef,
|
|
347
|
-
data: visibleActions,
|
|
348
|
-
renderItem: renderItem,
|
|
349
|
-
keyExtractor: keyExtractor,
|
|
350
|
-
contentContainerStyle: styles.listContent,
|
|
351
|
-
showsVerticalScrollIndicator: true,
|
|
352
|
-
removeClippedSubviews: true,
|
|
353
|
-
initialNumToRender: 12,
|
|
354
|
-
maxToRenderPerBatch: 8,
|
|
355
|
-
windowSize: 5,
|
|
356
|
-
updateCellsBatchingPeriod: 50
|
|
357
|
-
}) : /*#__PURE__*/_jsx(EmptyState, {
|
|
358
|
-
isEnabled: isEnabled
|
|
359
|
-
})]
|
|
360
|
-
})
|
|
361
|
-
})
|
|
362
|
-
}), /*#__PURE__*/_jsx(ProUpgradeModal, {
|
|
363
|
-
visible: showProModal,
|
|
364
|
-
onClose: () => setShowProModal(false),
|
|
365
|
-
featureName: "Full Action History"
|
|
366
|
-
})]
|
|
382
|
+
children: body
|
|
383
|
+
}), upgradeModal]
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/**
|
|
388
|
+
* The same Redux tool as `ReduxModal`, rendered INLINE for hosts that place
|
|
389
|
+
* tools in a panel rather than a modal. Exists so there is exactly one
|
|
390
|
+
* implementation — the desktop dashboard used to ship its own copy of this
|
|
391
|
+
* component's header, action list and detail router.
|
|
392
|
+
*/
|
|
393
|
+
export function ReduxToolView(props = {}) {
|
|
394
|
+
return /*#__PURE__*/_jsx(ReduxModal, {
|
|
395
|
+
...props,
|
|
396
|
+
inline: true,
|
|
397
|
+
visible: true,
|
|
398
|
+
onClose: () => {}
|
|
367
399
|
});
|
|
368
400
|
}
|
|
369
401
|
const styles = StyleSheet.create({
|
|
402
|
+
inlineRoot: {
|
|
403
|
+
flex: 1,
|
|
404
|
+
minHeight: 0,
|
|
405
|
+
backgroundColor: macOSColors.background.base
|
|
406
|
+
},
|
|
407
|
+
inlineHeader: {
|
|
408
|
+
paddingHorizontal: 12,
|
|
409
|
+
paddingVertical: 8,
|
|
410
|
+
borderBottomWidth: 1,
|
|
411
|
+
borderBottomColor: macOSColors.border.default,
|
|
412
|
+
backgroundColor: macOSColors.background.card
|
|
413
|
+
},
|
|
370
414
|
container: {
|
|
371
415
|
flex: 1,
|
|
372
416
|
backgroundColor: macOSColors.background.base
|
|
@@ -49,7 +49,7 @@ export { useReduxActions } from "./redux/hooks/useReduxActions";
|
|
|
49
49
|
export type { UseReduxActionsResult } from "./redux/hooks/useReduxActions";
|
|
50
50
|
export { useAutoInstrumentRedux, useReduxAvailability, } from "./redux/hooks/useAutoInstrumentRedux";
|
|
51
51
|
export type { UseAutoInstrumentReduxOptions, UseAutoInstrumentReduxResult, } from "./redux/hooks/useAutoInstrumentRedux";
|
|
52
|
-
export { ReduxModal, FREE_TIER_ACTION_LIMIT } from "./redux/components/ReduxModal";
|
|
52
|
+
export { ReduxModal, ReduxToolView, FREE_TIER_ACTION_LIMIT, } from "./redux/components/ReduxModal";
|
|
53
53
|
export { ReduxActionItem } from "./redux/components/ReduxActionItem";
|
|
54
54
|
export { ReduxActionDetailView } from "./redux/components/ReduxActionDetailView";
|
|
55
55
|
export { ReduxActionDetailContent, ReduxActionDetailFooter, } from "./redux/components/ReduxActionDetailContent";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAK5D,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,GACf,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAK1E,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EACV,6BAA6B,EAC7B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAO9C,OAAO,EACL,UAAU,EACV,aAAa,EACb,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAKzD,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAKvB,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -7,12 +7,26 @@
|
|
|
7
7
|
/** Free tier limit for action history */
|
|
8
8
|
export declare const FREE_TIER_ACTION_LIMIT = 25;
|
|
9
9
|
interface ReduxModalProps {
|
|
10
|
+
/**
|
|
11
|
+
* Render as a header-bar + body (+ footer) stack instead of inside `JsModal`,
|
|
12
|
+
* for hosts that place tools in a panel rather than a modal (Buoy Desktop).
|
|
13
|
+
* Only the shell differs — header, screens and state are shared. See
|
|
14
|
+
* `ReduxToolView` at the bottom of this file.
|
|
15
|
+
*/
|
|
16
|
+
inline?: boolean;
|
|
10
17
|
visible: boolean;
|
|
11
18
|
onClose: () => void;
|
|
12
19
|
onBack?: () => void;
|
|
13
20
|
onMinimize?: (modalState: unknown) => void;
|
|
14
21
|
enableSharedModalDimensions?: boolean;
|
|
15
22
|
}
|
|
16
|
-
export declare function ReduxModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, }: ReduxModalProps): import("react").JSX.Element | null;
|
|
23
|
+
export declare function ReduxModal({ visible, onClose, onBack, onMinimize, enableSharedModalDimensions, inline, }: ReduxModalProps): import("react").JSX.Element | null;
|
|
24
|
+
/**
|
|
25
|
+
* The same Redux tool as `ReduxModal`, rendered INLINE for hosts that place
|
|
26
|
+
* tools in a panel rather than a modal. Exists so there is exactly one
|
|
27
|
+
* implementation — the desktop dashboard used to ship its own copy of this
|
|
28
|
+
* component's header, action list and detail router.
|
|
29
|
+
*/
|
|
30
|
+
export declare function ReduxToolView(props?: Omit<ReduxModalProps, "visible" | "onClose" | "inline">): import("react").JSX.Element;
|
|
17
31
|
export {};
|
|
18
32
|
//# sourceMappingURL=ReduxModal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReduxModal.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAgBD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,
|
|
1
|
+
{"version":3,"file":"ReduxModal.d.ts","sourceRoot":"","sources":["../../../../src/redux/components/ReduxModal.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,yCAAyC;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,UAAU,eAAe;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC;AAgBD,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,MAAc,GACf,EAAE,eAAe,sCAwZjB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,GAAE,IAAI,CAAC,eAAe,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAGpE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/redux",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.5",
|
|
4
4
|
"description": "Redux DevTools inside your React Native app — action log, state diffs & time travel with zero store changes. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/shared-ui": "7.0.
|
|
30
|
-
"@buoy-gg/
|
|
31
|
-
"@buoy-gg/
|
|
29
|
+
"@buoy-gg/shared-ui": "7.0.5",
|
|
30
|
+
"@buoy-gg/license": "7.0.5",
|
|
31
|
+
"@buoy-gg/floating-tools-core": "7.0.5"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"@reduxjs/toolkit": ">=1.9.0",
|