@budarin/use-route 1.3.2 → 1.3.4

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/CHANGELOG.md CHANGED
@@ -5,6 +5,24 @@
5
5
  Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.1.0/),
6
6
  версионирование — [Semantic Versioning](https://semver.org/lang/ru/).
7
7
 
8
+ ## [1.3.4] - 2025-02-01
9
+
10
+ ### Изменено
11
+
12
+ - **Оптимизация производительности:** все методы навигации (`navigate`, `back`, `forward`, `go`, `replace`, `updateState`, `canGoBack`, `canGoForward`) теперь создаются **один раз глобально** вместо создания в каждом компоненте. При 50 компонентах с `useRoute()` экономия ~400 `useCallback` вызовов. Методы кэшируются по `effectiveBase` и переиспользуются между компонентами.
13
+ - **Глобальное хранилище состояния:** `sharedSnapshot` теперь всегда валиден и не очищается при отписке последнего подписчика. Методы читают актуальный snapshot без дополнительных вычислений (O(1)).
14
+ - **Упрощение кода:** удалён fallback на старое API (`window.location`, `window.history.pushState/replaceState`) для браузеров без Navigation API. Хук строго требует Navigation API в браузере; без него возвращает дефолтное состояние и методы работают в режиме no-op. SSR поддержка через `initialLocation` сохранена.
15
+
16
+ ### Удалено
17
+
18
+ - **Fallback на window.location/history:** в браузере без Navigation API хук больше не использует `window.location.href` для получения pathname и `window.history` для навигации. Вместо этого возвращается `DEFAULT_SNAPSHOT` (pathname: '/', searchParams: empty), методы навигации — no-op.
19
+
20
+ ## [1.3.3] - 2025-02-01
21
+
22
+ ### Изменено
23
+
24
+ - **useRoute:** в зависимостях финального `useMemo` вместо перечисления полей `routerState` (location, pathname, searchParams, params, historyIndex, state, matched) используется один объект `routerState`. Поведение не меняется: ссылка на `routerState` обновляется только при изменении этих данных.
25
+
8
26
  ## [1.3.2] - 2025-01-31
9
27
 
10
28
  ### Добавлено
@@ -3,7 +3,7 @@ import {
3
3
  require_react
4
4
  } from "./chunk-3SNVYWQ3.js";
5
5
 
6
- // ../node_modules/.pnpm/@budarin+use-route@1.3.1/node_modules/@budarin/use-route/dist/types.js
6
+ // ../node_modules/.pnpm/@budarin+use-route@1.3.3/node_modules/@budarin/use-route/dist/types.js
7
7
  var routerConfig = {
8
8
  urlCacheLimit: 50
9
9
  };
@@ -17,7 +17,7 @@ function getLogger() {
17
17
  return routerConfig.logger ?? console;
18
18
  }
19
19
 
20
- // ../node_modules/.pnpm/@budarin+use-route@1.3.1/node_modules/@budarin/use-route/dist/index.js
20
+ // ../node_modules/.pnpm/@budarin+use-route@1.3.3/node_modules/@budarin/use-route/dist/index.js
21
21
  var import_react = __toESM(require_react());
22
22
  var isBrowser = typeof window !== "undefined";
23
23
  function isValidUrl(url) {
@@ -88,7 +88,8 @@ var DEFAULT_SNAPSHOT = {
88
88
  entriesKeys: [],
89
89
  urlStr: "/",
90
90
  pathname: "/",
91
- searchParams: new URLSearchParams()
91
+ searchParams: new URLSearchParams(),
92
+ state: void 0
92
93
  };
93
94
  function getNavigation() {
94
95
  return typeof window !== "undefined" && "navigation" in window ? window.navigation : void 0;
@@ -96,16 +97,19 @@ function getNavigation() {
96
97
  function computeNavigationSnapshot(nav) {
97
98
  if (!nav)
98
99
  return DEFAULT_SNAPSHOT;
99
- const urlStr = nav.currentEntry?.url ?? (isBrowser ? window.location.href : "/");
100
+ const entry = nav.currentEntry;
101
+ const urlStr = entry?.url ?? (isBrowser ? window.location.href : "/");
100
102
  const parsed = getCachedParsedUrl(urlStr);
103
+ const state = entry && "getState" in entry && typeof entry.getState === "function" ? entry.getState() : void 0;
101
104
  return {
102
- currentKey: nav.currentEntry?.key ?? "",
105
+ currentKey: entry?.key ?? "",
103
106
  canGoBackFlag: !!nav.canGoBack,
104
107
  canGoForwardFlag: !!nav.canGoForward,
105
108
  entriesKeys: nav.entries().map((e) => e.key) ?? [],
106
109
  urlStr,
107
110
  pathname: parsed.pathname,
108
- searchParams: parsed.searchParams
111
+ searchParams: parsed.searchParams,
112
+ state
109
113
  };
110
114
  }
111
115
  var sharedSnapshot = null;
@@ -175,7 +179,8 @@ function getNavigationSnapshot() {
175
179
  ...DEFAULT_SNAPSHOT,
176
180
  urlStr,
177
181
  pathname: parsed.pathname,
178
- searchParams: parsed.searchParams
182
+ searchParams: parsed.searchParams,
183
+ state: isBrowser ? window.history.state : void 0
179
184
  };
180
185
  return noNavSnapshot;
181
186
  }
@@ -251,6 +256,7 @@ function useRoute(patternOrOptions, optionsParam) {
251
256
  searchParams,
252
257
  params,
253
258
  historyIndex,
259
+ state: rawState.state,
254
260
  matched,
255
261
  _entriesKeys: rawState.entriesKeys
256
262
  };
@@ -260,6 +266,7 @@ function useRoute(patternOrOptions, optionsParam) {
260
266
  rawState.urlStr,
261
267
  rawState.pathname,
262
268
  rawState.searchParams,
269
+ rawState.state,
263
270
  pattern,
264
271
  effectiveBase
265
272
  ]);
@@ -364,12 +371,30 @@ function useRoute(patternOrOptions, optionsParam) {
364
371
  }
365
372
  }, [navigation, routerState._entriesKeys, routerState.historyIndex]);
366
373
  const replace = (0, import_react.useCallback)((to, options2) => navigate(to, { ...options2, history: "replace" }), [navigate]);
374
+ const updateState = (0, import_react.useCallback)((state) => {
375
+ try {
376
+ if (navigation) {
377
+ navigation.updateCurrentEntry({ state });
378
+ sharedSnapshot = computeNavigationSnapshot(navigation);
379
+ storeCallbacks.forEach((cb) => cb());
380
+ } else if (isBrowser) {
381
+ window.history.replaceState(state, "", window.location.href);
382
+ if (noNavSnapshot !== null) {
383
+ noNavSnapshot = { ...noNavSnapshot, state };
384
+ }
385
+ storeCallbacks.forEach((cb) => cb());
386
+ }
387
+ } catch (error) {
388
+ getLogger().error("[useRoute] updateState error:", error);
389
+ }
390
+ }, [navigation]);
367
391
  return (0, import_react.useMemo)(() => ({
368
392
  navigate,
369
393
  back,
370
394
  forward,
371
395
  go,
372
396
  replace,
397
+ updateState,
373
398
  canGoBack,
374
399
  canGoForward,
375
400
  location: routerState.location,
@@ -377,22 +402,9 @@ function useRoute(patternOrOptions, optionsParam) {
377
402
  searchParams: routerState.searchParams,
378
403
  params: routerState.params,
379
404
  historyIndex: routerState.historyIndex,
405
+ state: routerState.state,
380
406
  matched: routerState.matched
381
- }), [
382
- navigate,
383
- back,
384
- forward,
385
- go,
386
- replace,
387
- canGoBack,
388
- canGoForward,
389
- routerState.location,
390
- routerState.pathname,
391
- routerState.searchParams,
392
- routerState.params,
393
- routerState.historyIndex,
394
- routerState.matched
395
- ]);
407
+ }), [navigate, back, forward, go, replace, updateState, canGoBack, canGoForward, routerState]);
396
408
  }
397
409
  export {
398
410
  clearRouterCaches,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../node_modules/.pnpm/@budarin+use-route@1.3.1/node_modules/@budarin/use-route/src/types.ts", "../../../../node_modules/.pnpm/@budarin+use-route@1.3.1/node_modules/@budarin/use-route/src/index.ts"],
3
+ "sources": ["../../../../node_modules/.pnpm/@budarin+use-route@1.3.3/node_modules/@budarin/use-route/src/types.ts", "../../../../node_modules/.pnpm/@budarin+use-route@1.3.3/node_modules/@budarin/use-route/src/index.ts"],
4
4
  "sourcesContent": [null, null],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["options"]
7
7
  }
@@ -1,43 +1,43 @@
1
1
  {
2
- "hash": "989f1f3c",
2
+ "hash": "cb1e6a6b",
3
3
  "configHash": "5d40f1b5",
4
- "lockfileHash": "7ecf082d",
5
- "browserHash": "ae1c45cc",
4
+ "lockfileHash": "1b741544",
5
+ "browserHash": "8b21f158",
6
6
  "optimized": {
7
7
  "react": {
8
8
  "src": "../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js",
9
9
  "file": "react.js",
10
- "fileHash": "60b6761c",
10
+ "fileHash": "ab23ae70",
11
11
  "needsInterop": true
12
12
  },
13
13
  "react-dom": {
14
14
  "src": "../../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/index.js",
15
15
  "file": "react-dom.js",
16
- "fileHash": "9f472ff4",
16
+ "fileHash": "8b1b812d",
17
17
  "needsInterop": true
18
18
  },
19
19
  "react/jsx-dev-runtime": {
20
20
  "src": "../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js",
21
21
  "file": "react_jsx-dev-runtime.js",
22
- "fileHash": "1054fff0",
22
+ "fileHash": "ecc018d4",
23
23
  "needsInterop": true
24
24
  },
25
25
  "react/jsx-runtime": {
26
26
  "src": "../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js",
27
27
  "file": "react_jsx-runtime.js",
28
- "fileHash": "cdeb44aa",
28
+ "fileHash": "30888066",
29
29
  "needsInterop": true
30
30
  },
31
31
  "@budarin/use-route": {
32
- "src": "../../../../node_modules/.pnpm/@budarin+use-route@1.3.1/node_modules/@budarin/use-route/dist/index.js",
32
+ "src": "../../../../node_modules/.pnpm/@budarin+use-route@1.3.3/node_modules/@budarin/use-route/dist/index.js",
33
33
  "file": "@budarin_use-route.js",
34
- "fileHash": "49fe7abc",
34
+ "fileHash": "9af4966b",
35
35
  "needsInterop": false
36
36
  },
37
37
  "react-dom/client": {
38
38
  "src": "../../../../node_modules/.pnpm/react-dom@19.2.4_react@19.2.4/node_modules/react-dom/client.js",
39
39
  "file": "react-dom_client.js",
40
- "fileHash": "ebe75f9f",
40
+ "fileHash": "2e2e7deb",
41
41
  "needsInterop": true
42
42
  }
43
43
  },
package/demo/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@budarin/use-route": "^1.3.1",
7
+ "@budarin/use-route": "^1.3.3",
8
8
  "react": "^19.0.0",
9
9
  "react-dom": "^19.0.0"
10
10
  },
package/demo/src/App.tsx CHANGED
@@ -6,6 +6,7 @@ import { UserProfile } from './pages/UserProfile';
6
6
  import { Posts } from './pages/Posts';
7
7
  import { History } from './pages/History';
8
8
  import { PushReplace } from './pages/PushReplace';
9
+ import { State } from './pages/State';
9
10
  import { CustomMatcher } from './pages/CustomMatcher';
10
11
  import { BaseDemo } from './pages/BaseDemo';
11
12
 
@@ -69,6 +70,13 @@ function Nav() {
69
70
  >
70
71
  Push/Replace
71
72
  </Link>
73
+ <Link
74
+ to={(section || '') + '/state'}
75
+ className={pathname.startsWith((section || '') + '/state') ? 'active' : ''}
76
+ title="State: установка при навигации, чтение, updateState"
77
+ >
78
+ State
79
+ </Link>
72
80
  <Link
73
81
  to={(section || '') + '/products/books/1'}
74
82
  className={pathname.startsWith((section || '') + '/products') ? 'active' : ''}
@@ -116,6 +124,9 @@ function Router() {
116
124
  if (pathname.startsWith('/push-replace')) {
117
125
  return <PushReplace />;
118
126
  }
127
+ if (pathname.startsWith('/state')) {
128
+ return <State />;
129
+ }
119
130
  if (pathname.startsWith('/products/')) {
120
131
  return <CustomMatcher />;
121
132
  }
@@ -30,6 +30,9 @@ export function Home() {
30
30
  <button type="button" onClick={() => navigate('/push-replace')}>
31
31
  Push и Replace — как добавлять или заменять запись в истории
32
32
  </button>
33
+ <button type="button" onClick={() => navigate('/state')}>
34
+ State — установка при навигации, чтение, updateState (черновик формы)
35
+ </button>
33
36
  <Link to="/products/books/1">Товары — свой разбор пути (PathMatcher)</Link>
34
37
  <Link to="/base-demo">Раздел (section)</Link>
35
38
  </div>
@@ -0,0 +1,119 @@
1
+ import { useRoute } from '@budarin/use-route';
2
+ import { Link } from '../components/Link';
3
+ import { useState, useEffect } from 'react';
4
+
5
+ export function State() {
6
+ const { pathname, state, navigate, updateState } = useRoute();
7
+ const [draftInput, setDraftInput] = useState('');
8
+
9
+ // Восстанавливаем черновик из state при монтировании (например, после «Назад»)
10
+ useEffect(() => {
11
+ if (state != null && typeof state === 'object' && 'draft' in state) {
12
+ const value = (state as { draft?: string }).draft;
13
+ if (typeof value === 'string') setDraftInput(value);
14
+ }
15
+ }, [state]);
16
+
17
+ const handleSaveDraft = () => {
18
+ updateState({
19
+ ...(state != null && typeof state === 'object' ? (state as object) : {}),
20
+ draft: draftInput,
21
+ });
22
+ };
23
+
24
+ const isDetail = pathname === '/state/detail';
25
+
26
+ if (isDetail) {
27
+ return (
28
+ <div className="demo-content">
29
+ <h1>State: страница «Детали»</h1>
30
+ <p className="demo-lead">
31
+ Вы перешли сюда с установленным <strong>state</strong> (через{' '}
32
+ <code>
33
+ navigate(&apos;/state/detail&apos;, &#123; state: &#123; ... &#125; &#125;)
34
+ </code>
35
+ ). Ниже — то, что лежит в записи истории для этой страницы.
36
+ </p>
37
+ <p>
38
+ <strong>state</strong> текущей записи:{' '}
39
+ <code
40
+ style={{ background: '#f0f0f0', padding: '0.2em 0.4em', borderRadius: 4 }}
41
+ >
42
+ {state != null ? JSON.stringify(state) : '—'}
43
+ </code>
44
+ </p>
45
+ <p>
46
+ <Link to="/state">← Вернуться к примеру State</Link>
47
+ </p>
48
+ </div>
49
+ );
50
+ }
51
+
52
+ return (
53
+ <div className="demo-content">
54
+ <h1>State: установка, чтение и обновление</h1>
55
+ <p className="demo-lead">
56
+ <strong>state</strong> — произвольные данные записи истории. Его можно задать при
57
+ переходе (<code>navigate(to, &#123; state &#125;)</code>), прочитать в хуке (
58
+ <code>state</code>) и обновить на текущей странице без навигации (
59
+ <code>updateState(state)</code>). Ниже: переход с state, отображение текущего state
60
+ и черновик формы через updateState.
61
+ </p>
62
+ <p>
63
+ Текущий путь: <code>{pathname}</code>
64
+ </p>
65
+ <p>
66
+ <strong>state</strong> текущей записи:{' '}
67
+ <code style={{ background: '#f0f0f0', padding: '0.2em 0.4em', borderRadius: 4 }}>
68
+ {state != null ? JSON.stringify(state) : '—'}
69
+ </code>
70
+ </p>
71
+
72
+ <h2>Установка state при навигации</h2>
73
+ <p>
74
+ При переходе на «Детали» передаём в state объект — на той странице он будет доступен
75
+ как <code>state</code>.
76
+ </p>
77
+ <div className="demo-buttons">
78
+ <button
79
+ type="button"
80
+ onClick={() =>
81
+ navigate('/state/detail', {
82
+ state: { from: 'state-page', timestamp: Date.now() },
83
+ })
84
+ }
85
+ >
86
+ Перейти на «Детали» с state
87
+ </button>
88
+ </div>
89
+
90
+ <h2>Обновление state на текущей странице (updateState)</h2>
91
+ <p>
92
+ Черновик формы: введите текст и нажмите «Сохранить черновик». State текущей записи
93
+ обновится без навигации. Уйдите на другую страницу и нажмите «Назад» — черновик
94
+ восстановится из state.
95
+ </p>
96
+ <div style={{ display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: '0.5rem' }}>
97
+ <input
98
+ type="text"
99
+ value={draftInput}
100
+ onChange={(e) => setDraftInput(e.target.value)}
101
+ placeholder="Текст черновика"
102
+ style={{
103
+ padding: '0.4em 0.6em',
104
+ border: '1px solid #ccc',
105
+ borderRadius: 4,
106
+ minWidth: 200,
107
+ }}
108
+ />
109
+ <button type="button" onClick={handleSaveDraft}>
110
+ Сохранить черновик
111
+ </button>
112
+ </div>
113
+
114
+ <p>
115
+ <Link to="/">На главную</Link>
116
+ </p>
117
+ </div>
118
+ );
119
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKR,WAAW,EAGX,cAAc,EACd,eAAe,EAGlB,MAAM,SAAS,CAAC;AA0PjB,OAAO,EACH,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,GACnB,MAAM,SAAS,CAAC;AAEjB,0EAA0E;AAC1E,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC;AACnE,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,EACnD,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,eAAe,GAC1B,cAAc,CAAC,CAAC,CAAC,CAAC;AACrB,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKR,WAAW,EAGX,cAAc,EACd,eAAe,EAGlB,MAAM,SAAS,CAAC;AAgQjB,OAAO,EACH,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,WAAW,GACnB,MAAM,SAAS,CAAC;AAEjB,0EAA0E;AAC1E,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAwND,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC;AACnE,mCAAmC;AACnC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,EACnD,OAAO,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,eAAe,GAC1B,cAAc,CAAC,CAAC,CAAC,CAAC;AACrB,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getRouterConfig, getLogger } from './types';
2
- import { useSyncExternalStore, useCallback, useMemo } from 'react';
2
+ import { useSyncExternalStore, useMemo } from 'react';
3
3
  // Утилита для проверки браузерного окружения
4
4
  const isBrowser = typeof window !== 'undefined';
5
5
  // Валидация URL: разрешаем только http://, https:// и относительные пути
@@ -92,8 +92,21 @@ function getNavigation() {
92
92
  : undefined;
93
93
  }
94
94
  function computeNavigationSnapshot(nav) {
95
- if (!nav)
95
+ if (!nav) {
96
+ // SSR fallback: используем initialLocation из конфига
97
+ if (!isBrowser) {
98
+ const urlStr = getRouterConfig().initialLocation ?? '/';
99
+ const parsed = getCachedParsedUrl(urlStr);
100
+ return {
101
+ ...DEFAULT_SNAPSHOT,
102
+ urlStr,
103
+ pathname: parsed.pathname,
104
+ searchParams: parsed.searchParams,
105
+ };
106
+ }
107
+ // В браузере без Navigation API возвращаем дефолтный snapshot
96
108
  return DEFAULT_SNAPSHOT;
109
+ }
97
110
  const entry = nav.currentEntry;
98
111
  const urlStr = entry?.url ?? (isBrowser ? window.location.href : '/');
99
112
  const parsed = getCachedParsedUrl(urlStr);
@@ -111,7 +124,8 @@ function computeNavigationSnapshot(nav) {
111
124
  state,
112
125
  };
113
126
  }
114
- let sharedSnapshot = null;
127
+ // Инициализируем снимок сразу (всегда валидный, не null)
128
+ let sharedSnapshot = computeNavigationSnapshot(getNavigation());
115
129
  const storeCallbacks = new Set();
116
130
  let unsubscribeNavigation = null;
117
131
  function subscribeToNavigation(callback) {
@@ -119,6 +133,8 @@ function subscribeToNavigation(callback) {
119
133
  if (storeCallbacks.size === 1) {
120
134
  const nav = getNavigation();
121
135
  if (nav) {
136
+ // Обновляем snapshot при первой подписке
137
+ sharedSnapshot = computeNavigationSnapshot(nav);
122
138
  const interceptListener = (event) => {
123
139
  const navEvent = event;
124
140
  if (!navEvent.canIntercept || !isBrowser)
@@ -154,36 +170,21 @@ function subscribeToNavigation(callback) {
154
170
  unsubscribeNavigation();
155
171
  unsubscribeNavigation = null;
156
172
  }
157
- sharedSnapshot = null;
158
- noNavSnapshot = null;
159
- noNavSnapshotUrl = null;
173
+ // ✅ Не очищаем sharedSnapshot - он остаётся валидным для глобальных методов
174
+ // Обновляем snapshot при следующем чтении, если нет подписчиков
160
175
  }
161
176
  };
162
177
  }
163
- let noNavSnapshot = null;
164
- let noNavSnapshotUrl = null;
165
178
  function getNavigationSnapshot() {
166
- if (sharedSnapshot !== null)
167
- return sharedSnapshot;
168
179
  const nav = getNavigation();
169
- if (nav) {
170
- sharedSnapshot = computeNavigationSnapshot(nav);
171
- return sharedSnapshot;
180
+ // Если нет подписчиков и есть Navigation API, проверяем актуальность
181
+ if (storeCallbacks.size === 0 && nav) {
182
+ const currentUrl = nav.currentEntry?.url ?? (isBrowser ? window.location.href : '/');
183
+ if (currentUrl !== sharedSnapshot.urlStr) {
184
+ sharedSnapshot = computeNavigationSnapshot(nav);
185
+ }
172
186
  }
173
- // Нет Navigation API (тесты, старый браузер, SSR) — URL из window.location или из конфига (initialLocation для SSR)
174
- const urlStr = isBrowser ? window.location.href : (getRouterConfig().initialLocation ?? '/');
175
- if (noNavSnapshot !== null && noNavSnapshotUrl === urlStr)
176
- return noNavSnapshot;
177
- const parsed = getCachedParsedUrl(urlStr);
178
- noNavSnapshotUrl = urlStr;
179
- noNavSnapshot = {
180
- ...DEFAULT_SNAPSHOT,
181
- urlStr,
182
- pathname: parsed.pathname,
183
- searchParams: parsed.searchParams,
184
- state: isBrowser ? window.history.state : undefined,
185
- };
186
- return noNavSnapshot;
187
+ return sharedSnapshot;
187
188
  }
188
189
  // Один keyToIndexMap на снимок (один на все хуки при общем rawState)
189
190
  let lastEntriesKeysRef = null;
@@ -223,8 +224,192 @@ export function clearRouterCaches() {
223
224
  URL_CACHE.clear();
224
225
  lastEntriesKeysRef = null;
225
226
  lastKeyToIndexMap = null;
226
- noNavSnapshot = null;
227
- noNavSnapshotUrl = null;
227
+ // Пересоздаём snapshot после очистки
228
+ sharedSnapshot = computeNavigationSnapshot(getNavigation());
229
+ }
230
+ // ============================================================================
231
+ // ГЛОБАЛЬНЫЕ МЕТОДЫ НАВИГАЦИИ (создаются один раз, переиспользуются всеми хуками)
232
+ // ============================================================================
233
+ // Простые глобальные методы без зависимостей
234
+ /** Глобальный метод back() - создаётся один раз */
235
+ function globalBack() {
236
+ try {
237
+ const nav = getNavigation();
238
+ if (nav)
239
+ nav.back();
240
+ }
241
+ catch (error) {
242
+ getLogger().error('[useRoute] Back navigation error:', error);
243
+ }
244
+ }
245
+ /** Глобальный метод forward() - создаётся один раз */
246
+ function globalForward() {
247
+ try {
248
+ const nav = getNavigation();
249
+ if (nav)
250
+ nav.forward();
251
+ }
252
+ catch (error) {
253
+ getLogger().error('[useRoute] Forward navigation error:', error);
254
+ }
255
+ }
256
+ /** Глобальный метод updateState() - создаётся один раз */
257
+ function globalUpdateState(state) {
258
+ try {
259
+ const nav = getNavigation();
260
+ if (nav) {
261
+ nav.updateCurrentEntry({ state });
262
+ sharedSnapshot = computeNavigationSnapshot(nav);
263
+ storeCallbacks.forEach((cb) => cb());
264
+ }
265
+ else {
266
+ // Без Navigation API - no-op с предупреждением
267
+ getLogger().warn('[useRoute] updateState requires Navigation API');
268
+ }
269
+ }
270
+ catch (error) {
271
+ getLogger().error('[useRoute] updateState error:', error);
272
+ }
273
+ }
274
+ // Кэшированные методы navigate и replace по effectiveBase
275
+ const navigateCache = new Map();
276
+ /** Создаёт navigate для конкретного effectiveBase и кэширует */
277
+ function getNavigateForBase(effectiveBase) {
278
+ const cacheKey = effectiveBase ?? '__root__';
279
+ let cachedNavigate = navigateCache.get(cacheKey);
280
+ if (!cachedNavigate) {
281
+ cachedNavigate = async (to, navOptions = {}) => {
282
+ let targetUrl = typeof to === 'string' ? to : to.toString();
283
+ let baseForCall;
284
+ if (navOptions.base !== undefined) {
285
+ baseForCall =
286
+ navOptions.base === '' || navOptions.base === '/' ? undefined : navOptions.base;
287
+ }
288
+ else if (navOptions.section !== undefined) {
289
+ baseForCall = combineBases(getRouterConfig().base, navOptions.section);
290
+ }
291
+ else {
292
+ baseForCall = effectiveBase;
293
+ }
294
+ if (baseForCall &&
295
+ baseForCall !== '/' &&
296
+ typeof to === 'string' &&
297
+ to.startsWith('/') &&
298
+ !to.startsWith('//') &&
299
+ !to.includes(':')) {
300
+ targetUrl = baseForCall + (to === '/' ? '' : to);
301
+ }
302
+ if (!isValidUrl(targetUrl)) {
303
+ getLogger().warn('[useRoute] Invalid URL rejected:', targetUrl);
304
+ return;
305
+ }
306
+ const nav = getNavigation();
307
+ if (!nav) {
308
+ return;
309
+ }
310
+ const defaultHistory = getRouterConfig().defaultHistory ?? 'auto';
311
+ const navigationOpts = {
312
+ state: navOptions.state,
313
+ history: navOptions.history ?? defaultHistory,
314
+ };
315
+ try {
316
+ await nav.navigate(targetUrl, navigationOpts);
317
+ }
318
+ catch (error) {
319
+ getLogger().error('[useRoute] Navigation error:', error);
320
+ }
321
+ };
322
+ navigateCache.set(cacheKey, cachedNavigate);
323
+ }
324
+ return cachedNavigate;
325
+ }
326
+ /** Создаёт replace для конкретного navigate и кэширует */
327
+ const replaceCache = new Map();
328
+ function getReplaceForBase(effectiveBase) {
329
+ const cacheKey = effectiveBase ?? '__root__';
330
+ let cachedReplace = replaceCache.get(cacheKey);
331
+ if (!cachedReplace) {
332
+ const navigateFn = getNavigateForBase(effectiveBase);
333
+ cachedReplace = (to, options) => navigateFn(to, { ...options, history: 'replace' });
334
+ replaceCache.set(cacheKey, cachedReplace);
335
+ }
336
+ return cachedReplace;
337
+ }
338
+ // Глобальные методы с чтением актуального snapshot
339
+ /** Глобальный метод go() - читает актуальный snapshot */
340
+ function globalGo(delta) {
341
+ // Валидация входных данных
342
+ if (delta === Infinity || delta === -Infinity) {
343
+ getLogger().warn('[useRoute] Delta value too large:', delta);
344
+ return;
345
+ }
346
+ if (!Number.isFinite(delta) || delta === 0)
347
+ return;
348
+ if (delta > Number.MAX_SAFE_INTEGER || delta < -Number.MAX_SAFE_INTEGER) {
349
+ getLogger().warn('[useRoute] Delta value too large:', delta);
350
+ return;
351
+ }
352
+ const nav = getNavigation();
353
+ if (!nav)
354
+ return;
355
+ try {
356
+ const snapshot = getNavigationSnapshot();
357
+ if (snapshot.entriesKeys.length === 0)
358
+ return;
359
+ const keyToIndexMap = getKeyToIndexMap(snapshot.entriesKeys);
360
+ const idx = keyToIndexMap.get(snapshot.currentKey) ?? -1;
361
+ if (idx === -1)
362
+ return;
363
+ const targetIdx = idx + delta;
364
+ if (targetIdx < 0 || targetIdx >= snapshot.entriesKeys.length) {
365
+ return;
366
+ }
367
+ const targetKey = snapshot.entriesKeys[targetIdx];
368
+ if (targetKey === undefined)
369
+ return;
370
+ nav.traverseTo(targetKey);
371
+ }
372
+ catch (error) {
373
+ getLogger().error('[useRoute] Go navigation error:', error);
374
+ }
375
+ }
376
+ /** Глобальный метод canGoBack() - читает актуальный snapshot */
377
+ function globalCanGoBack(steps = 1) {
378
+ // Валидация входных данных
379
+ if (!Number.isFinite(steps) || steps < 0 || steps > Number.MAX_SAFE_INTEGER) {
380
+ return false;
381
+ }
382
+ const nav = getNavigation();
383
+ if (!nav)
384
+ return false;
385
+ const snapshot = getNavigationSnapshot();
386
+ if (snapshot.entriesKeys.length === 0) {
387
+ return false;
388
+ }
389
+ const keyToIndexMap = getKeyToIndexMap(snapshot.entriesKeys);
390
+ const idx = keyToIndexMap.get(snapshot.currentKey) ?? -1;
391
+ if (idx === -1)
392
+ return false;
393
+ return idx - steps >= 0;
394
+ }
395
+ /** Глобальный метод canGoForward() - читает актуальный snapshot */
396
+ function globalCanGoForward(steps = 1) {
397
+ // Валидация входных данных
398
+ if (!Number.isFinite(steps) || steps < 0 || steps > Number.MAX_SAFE_INTEGER) {
399
+ return false;
400
+ }
401
+ const nav = getNavigation();
402
+ if (!nav)
403
+ return false;
404
+ const snapshot = getNavigationSnapshot();
405
+ if (snapshot.entriesKeys.length === 0) {
406
+ return false;
407
+ }
408
+ const keyToIndexMap = getKeyToIndexMap(snapshot.entriesKeys);
409
+ const idx = keyToIndexMap.get(snapshot.currentKey) ?? -1;
410
+ if (idx === -1)
411
+ return false;
412
+ return idx + steps < snapshot.entriesKeys.length;
228
413
  }
229
414
  /**
230
415
  * Хук состояния маршрута и навигации (Navigation API + URLPattern).
@@ -245,11 +430,10 @@ export function useRoute(patternOrOptions, optionsParam) {
245
430
  pattern = patternOrOptions;
246
431
  options = optionsParam;
247
432
  }
248
- const navigation = getNavigation();
249
433
  const rawState = useSyncExternalStore(subscribeToNavigation, getNavigationSnapshot, () => DEFAULT_SNAPSHOT);
250
434
  const keyToIndexMap = getKeyToIndexMap(rawState.entriesKeys);
251
435
  const effectiveBase = combineBases(getRouterConfig().base, options?.section);
252
- // 2. Производное состояние роутера. pathname/searchParams берём из snapshot (разбор URL один раз в store).
436
+ // Производное состояние роутера. pathname/searchParams берём из snapshot (разбор URL один раз в store).
253
437
  const routerState = useMemo(() => {
254
438
  const { urlStr, pathname: rawPathname, searchParams } = rawState;
255
439
  const pathname = pathnameWithoutBase(rawPathname, effectiveBase);
@@ -277,7 +461,6 @@ export function useRoute(patternOrOptions, optionsParam) {
277
461
  historyIndex,
278
462
  state: rawState.state,
279
463
  matched,
280
- _entriesKeys: rawState.entriesKeys,
281
464
  };
282
465
  }, [
283
466
  rawState.currentKey,
@@ -289,143 +472,17 @@ export function useRoute(patternOrOptions, optionsParam) {
289
472
  pattern,
290
473
  effectiveBase,
291
474
  ]);
292
- // 3. Навигационные операции. Только Navigation API без Navigation состояние не обновляется.
293
- const navigate = useCallback(async (to, navOptions = {}) => {
294
- let targetUrl = typeof to === 'string' ? to : to.toString();
295
- let baseForCall;
296
- if (navOptions.base !== undefined) {
297
- baseForCall =
298
- navOptions.base === '' || navOptions.base === '/' ? undefined : navOptions.base;
299
- }
300
- else if (navOptions.section !== undefined) {
301
- baseForCall = combineBases(getRouterConfig().base, navOptions.section);
302
- }
303
- else {
304
- baseForCall = effectiveBase;
305
- }
306
- if (baseForCall &&
307
- baseForCall !== '/' &&
308
- typeof to === 'string' &&
309
- to.startsWith('/') &&
310
- !to.startsWith('//') &&
311
- !to.includes(':')) {
312
- targetUrl = baseForCall + (to === '/' ? '' : to);
313
- }
314
- if (!isValidUrl(targetUrl)) {
315
- getLogger().warn('[useRoute] Invalid URL rejected:', targetUrl);
316
- return;
317
- }
318
- if (!navigation) {
319
- return;
320
- }
321
- const defaultHistory = getRouterConfig().defaultHistory ?? 'auto';
322
- const navigationOpts = {
323
- state: navOptions.state,
324
- history: navOptions.history ?? defaultHistory,
325
- };
326
- try {
327
- await navigation.navigate(targetUrl, navigationOpts);
328
- }
329
- catch (error) {
330
- getLogger().error('[useRoute] Navigation error:', error);
331
- }
332
- }, [navigation, effectiveBase]);
333
- const back = useCallback(() => {
334
- try {
335
- if (navigation)
336
- navigation.back();
337
- }
338
- catch (error) {
339
- getLogger().error('[useRoute] Back navigation error:', error);
340
- }
341
- }, [navigation]);
342
- const forward = useCallback(() => {
343
- try {
344
- if (navigation)
345
- navigation.forward();
346
- }
347
- catch (error) {
348
- getLogger().error('[useRoute] Forward navigation error:', error);
349
- }
350
- }, [navigation]);
351
- const canGoBack = useCallback((steps = 1) => {
352
- // Валидация входных данных
353
- if (!Number.isFinite(steps) || steps < 0 || steps > Number.MAX_SAFE_INTEGER) {
354
- return false;
355
- }
356
- if (!navigation || routerState._entriesKeys.length === 0) {
357
- return false;
358
- }
359
- const idx = routerState.historyIndex;
360
- if (idx === -1)
361
- return false;
362
- return idx - steps >= 0;
363
- }, [navigation, routerState._entriesKeys.length, routerState.historyIndex]);
364
- const canGoForward = useCallback((steps = 1) => {
365
- // Валидация входных данных
366
- if (!Number.isFinite(steps) || steps < 0 || steps > Number.MAX_SAFE_INTEGER) {
367
- return false;
368
- }
369
- if (!navigation || routerState._entriesKeys.length === 0) {
370
- return false;
371
- }
372
- const idx = routerState.historyIndex;
373
- if (idx === -1)
374
- return false;
375
- return idx + steps < routerState._entriesKeys.length;
376
- }, [navigation, routerState._entriesKeys.length, routerState.historyIndex]);
377
- const go = useCallback((delta) => {
378
- // Валидация входных данных
379
- if (delta === Infinity || delta === -Infinity) {
380
- getLogger().warn('[useRoute] Delta value too large:', delta);
381
- return;
382
- }
383
- if (!Number.isFinite(delta) || delta === 0)
384
- return;
385
- if (delta > Number.MAX_SAFE_INTEGER || delta < -Number.MAX_SAFE_INTEGER) {
386
- getLogger().warn('[useRoute] Delta value too large:', delta);
387
- return;
388
- }
389
- try {
390
- if (navigation && routerState._entriesKeys.length > 0) {
391
- const idx = routerState.historyIndex;
392
- if (idx === -1)
393
- return;
394
- const targetIdx = idx + delta;
395
- if (targetIdx < 0 || targetIdx >= routerState._entriesKeys.length) {
396
- return;
397
- }
398
- const targetKey = routerState._entriesKeys[targetIdx];
399
- if (targetKey === undefined)
400
- return;
401
- navigation.traverseTo(targetKey);
402
- }
403
- }
404
- catch (error) {
405
- getLogger().error('[useRoute] Go navigation error:', error);
406
- }
407
- }, [navigation, routerState._entriesKeys, routerState.historyIndex]);
408
- const replace = useCallback((to, options) => navigate(to, { ...options, history: 'replace' }), [navigate]);
409
- const updateState = useCallback((state) => {
410
- try {
411
- if (navigation) {
412
- navigation.updateCurrentEntry({ state });
413
- sharedSnapshot = computeNavigationSnapshot(navigation);
414
- storeCallbacks.forEach((cb) => cb());
415
- }
416
- else if (isBrowser) {
417
- window.history.replaceState(state, '', window.location.href);
418
- if (noNavSnapshot !== null) {
419
- noNavSnapshot = { ...noNavSnapshot, state };
420
- }
421
- storeCallbacks.forEach((cb) => cb());
422
- }
423
- }
424
- catch (error) {
425
- getLogger().error('[useRoute] updateState error:', error);
426
- }
427
- }, [navigation]);
428
- return useMemo(() => ({
475
+ // Используем глобальные/кэшированные методы - стабильные ссылки, без useCallback
476
+ const navigate = getNavigateForBase(effectiveBase);
477
+ const replace = getReplaceForBase(effectiveBase);
478
+ const back = globalBack;
479
+ const forward = globalForward;
480
+ const go = globalGo;
481
+ const updateState = globalUpdateState;
482
+ const canGoBack = globalCanGoBack;
483
+ const canGoForward = globalCanGoForward;
484
+ // Возвращаем объект без useMemo - все методы стабильны, routerState мемоизирован выше
485
+ return {
429
486
  navigate,
430
487
  back,
431
488
  forward,
@@ -441,22 +498,6 @@ export function useRoute(patternOrOptions, optionsParam) {
441
498
  historyIndex: routerState.historyIndex,
442
499
  state: routerState.state,
443
500
  matched: routerState.matched,
444
- }), [
445
- navigate,
446
- back,
447
- forward,
448
- go,
449
- replace,
450
- updateState,
451
- canGoBack,
452
- canGoForward,
453
- routerState.location,
454
- routerState.pathname,
455
- routerState.searchParams,
456
- routerState.params,
457
- routerState.historyIndex,
458
- routerState.state,
459
- routerState.matched,
460
- ]);
501
+ };
461
502
  }
462
503
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budarin/use-route",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,7 +30,6 @@
30
30
  "build": "tsc",
31
31
  "type-check": "tsc -build --noEmit",
32
32
  "lint": "prettier --check .",
33
- "format": "prettier --write .",
34
33
  "test": "vitest",
35
34
  "test:ui": "vitest --ui",
36
35
  "test:run": "vitest run",