@buoy-gg/route-events 7.0.22 → 7.0.23
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.
|
@@ -23,8 +23,9 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
23
23
|
// dispatch paths below never execute).
|
|
24
24
|
const CommonActions = (0, _safeReactNavigation.getCommonActions)();
|
|
25
25
|
const NavigationContainerRefContext = (0, _safeReactNavigation.getNavigationContainerRefContext)();
|
|
26
|
+
|
|
26
27
|
// Free tier limit for route events
|
|
27
|
-
|
|
28
|
+
|
|
28
29
|
/**
|
|
29
30
|
* Find the path from root navigation state to a screen by name.
|
|
30
31
|
* Returns array of route names from root to the target, or null if not found.
|
|
@@ -93,6 +94,7 @@ function RouteEventsModalWithTabs({
|
|
|
93
94
|
|
|
94
95
|
// Check Pro status internally
|
|
95
96
|
const isPro = (0, _license.useIsPro)();
|
|
97
|
+
const eventLimit = (0, _sharedUi.useLimit)("routeEvents.entries");
|
|
96
98
|
|
|
97
99
|
// Auto-close upgrade modal when user becomes Pro
|
|
98
100
|
(0, _react.useEffect)(() => {
|
|
@@ -338,17 +340,10 @@ function RouteEventsModalWithTabs({
|
|
|
338
340
|
});
|
|
339
341
|
}, [events, ignoredPatterns, searchQuery]);
|
|
340
342
|
|
|
341
|
-
//
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
}, [filteredEvents, isPro]);
|
|
346
|
-
|
|
347
|
-
// Calculate locked event count
|
|
348
|
-
const lockedEventCount = (0, _react.useMemo)(() => {
|
|
349
|
-
if (isPro) return 0;
|
|
350
|
-
return Math.max(0, filteredEvents.length - FREE_TIER_EVENT_LIMIT);
|
|
351
|
-
}, [filteredEvents.length, isPro]);
|
|
343
|
+
// Pro is Infinity here, so slice() returns everything and the locked count
|
|
344
|
+
// floors at 0 — no tier branching needed at the call site.
|
|
345
|
+
const visibleEvents = (0, _react.useMemo)(() => filteredEvents.slice(0, eventLimit), [filteredEvents, eventLimit]);
|
|
346
|
+
const lockedEventCount = (0, _react.useMemo)(() => Math.max(0, filteredEvents.length - eventLimit), [filteredEvents.length, eventLimit]);
|
|
352
347
|
|
|
353
348
|
// Calculate visit counts for each route (for duplicate detection)
|
|
354
349
|
const visitCounts = (0, _react.useMemo)(() => {
|
|
@@ -10,11 +10,11 @@ import { getCommonActions, getNavigationContainerRefContext } from "../utils/saf
|
|
|
10
10
|
const CommonActions = getCommonActions();
|
|
11
11
|
const NavigationContainerRefContext = getNavigationContainerRefContext();
|
|
12
12
|
import { useSafeRouter, isExpoRouterAvailable } from "@buoy-gg/shared-ui";
|
|
13
|
-
import { JsModal, ModalHeader, TabSelector, formatRelativeTime, devToolsStorageKeys, Navigation, Trash2, Filter, SearchBar, persistentStorage, ToolbarCopyButton, Lock, ProUpgradeModal, PowerToggleButton, buoyColors, TickProvider } from "@buoy-gg/shared-ui";
|
|
13
|
+
import { JsModal, ModalHeader, TabSelector, formatRelativeTime, devToolsStorageKeys, Navigation, Trash2, Filter, SearchBar, persistentStorage, ToolbarCopyButton, Lock, ProUpgradeModal, PowerToggleButton, buoyColors, TickProvider, useLimit } from "@buoy-gg/shared-ui";
|
|
14
14
|
import { useIsPro } from "@buoy-gg/license";
|
|
15
15
|
|
|
16
16
|
// Free tier limit for route events
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
import { useRouteEvents } from "../hooks/useRouteEvents";
|
|
19
19
|
import { RouteEventDetail } from "./RouteEventDetail";
|
|
20
20
|
import { RouteFilterViewV2 } from "./RouteFilterViewV2";
|
|
@@ -91,6 +91,7 @@ export function RouteEventsModalWithTabs({
|
|
|
91
91
|
|
|
92
92
|
// Check Pro status internally
|
|
93
93
|
const isPro = useIsPro();
|
|
94
|
+
const eventLimit = useLimit("routeEvents.entries");
|
|
94
95
|
|
|
95
96
|
// Auto-close upgrade modal when user becomes Pro
|
|
96
97
|
useEffect(() => {
|
|
@@ -336,17 +337,10 @@ export function RouteEventsModalWithTabs({
|
|
|
336
337
|
});
|
|
337
338
|
}, [events, ignoredPatterns, searchQuery]);
|
|
338
339
|
|
|
339
|
-
//
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
}, [filteredEvents, isPro]);
|
|
344
|
-
|
|
345
|
-
// Calculate locked event count
|
|
346
|
-
const lockedEventCount = useMemo(() => {
|
|
347
|
-
if (isPro) return 0;
|
|
348
|
-
return Math.max(0, filteredEvents.length - FREE_TIER_EVENT_LIMIT);
|
|
349
|
-
}, [filteredEvents.length, isPro]);
|
|
340
|
+
// Pro is Infinity here, so slice() returns everything and the locked count
|
|
341
|
+
// floors at 0 — no tier branching needed at the call site.
|
|
342
|
+
const visibleEvents = useMemo(() => filteredEvents.slice(0, eventLimit), [filteredEvents, eventLimit]);
|
|
343
|
+
const lockedEventCount = useMemo(() => Math.max(0, filteredEvents.length - eventLimit), [filteredEvents.length, eventLimit]);
|
|
350
344
|
|
|
351
345
|
// Calculate visit counts for each route (for duplicate detection)
|
|
352
346
|
const visitCounts = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteEventsModalWithTabs.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventsModalWithTabs.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RouteEventsModalWithTabs.d.ts","sourceRoot":"","sources":["../../../src/components/RouteEventsModalWithTabs.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;YACrB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC;YAChC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;SAC/B,CAAC;QACF,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC3B;;;;WAIG;QACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;QAC7C,2EAA2E;QAC3E,aAAa,CAAC,EAAE,CACd,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KACzB,IAAI,CAAC;KACX,CAAC;CACH;AA8CD,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,OAAO,EACP,MAAM,EACN,UAAU,EACV,2BAAmC,EACnC,MAAc,EACd,MAAM,GACP,EAAE,6BAA6B,sCAspB/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,GAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAKlF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/route-events",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.23",
|
|
4
4
|
"description": "Navigation devtool for React Native — live stack, full sitemap, jump to any screen. Expo Router & React Navigation. Part of Buoy devtools.",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
],
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
30
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
29
|
+
"@buoy-gg/floating-tools-core": "^7.0.23",
|
|
30
|
+
"@buoy-gg/shared-ui": "^7.0.23"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@buoy-gg/license": "7.0.
|
|
33
|
+
"@buoy-gg/license": "7.0.23",
|
|
34
34
|
"@react-native-async-storage/async-storage": "^2.0.0 || ^3.1.0",
|
|
35
35
|
"@react-navigation/native": "*",
|
|
36
36
|
"expo-router": "*",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@types/react-native": "^0.73.0",
|
|
53
53
|
"expo-router": "~5.0.7",
|
|
54
54
|
"typescript": "~5.8.3",
|
|
55
|
-
"@buoy-gg/license": "^7.0.
|
|
55
|
+
"@buoy-gg/license": "^7.0.23"
|
|
56
56
|
},
|
|
57
57
|
"react-native-builder-bob": {
|
|
58
58
|
"source": "src",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"bugs": {
|
|
87
87
|
"url": "https://github.com/LovesWorking/react-native-buoy/issues"
|
|
88
88
|
},
|
|
89
|
-
"homepage": "https://buoy.gg/tools/routes",
|
|
89
|
+
"homepage": "https://buoy.gg/buoy/latest/docs/tools/routes",
|
|
90
90
|
"publishConfig": {
|
|
91
91
|
"access": "public",
|
|
92
92
|
"tag": "latest"
|