@buoy-gg/route-events 7.0.21 → 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
- const FREE_TIER_EVENT_LIMIT = 3;
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
- // Limit visible events for free tier
342
- const visibleEvents = (0, _react.useMemo)(() => {
343
- if (isPro) return filteredEvents;
344
- return filteredEvents.slice(0, FREE_TIER_EVENT_LIMIT);
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
- const FREE_TIER_EVENT_LIMIT = 3;
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
- // Limit visible events for free tier
340
- const visibleEvents = useMemo(() => {
341
- if (isPro) return filteredEvents;
342
- return filteredEvents.slice(0, FREE_TIER_EVENT_LIMIT);
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":"AAsDA,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,sCAqpB/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,KAAK,GAAE,IAAI,CAAC,6BAA6B,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAM,+BAKlF"}
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.21",
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/shared-ui": "^7.0.21",
30
- "@buoy-gg/floating-tools-core": "^7.0.21"
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.21",
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.21"
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"