@servicetitan/hash-browser-router 30.3.0 → 31.0.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.
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createBrowserHistory, } from 'history';
2
+ import { createBrowserHistory } from 'history';
3
3
  import { useRef, useEffect } from 'react';
4
4
  import { Router } from 'react-router-dom';
5
5
  import { useDependencies } from '@servicetitan/react-ioc';
@@ -8,24 +8,35 @@ import { SingletonProvider } from './singleton-provider';
8
8
  function useHistory(options) {
9
9
  const history = useRef(createHashBrowserHistory(options)).current;
10
10
  const [historyManager] = useDependencies(HistoryManager);
11
- useEffect(() => {
11
+ useEffect(()=>{
12
12
  historyManager.register(history);
13
- return () => {
13
+ return ()=>{
14
14
  historyManager.unregister(history);
15
15
  };
16
- }, [history, historyManager]);
16
+ }, [
17
+ history,
18
+ historyManager
19
+ ]);
17
20
  return history;
18
21
  }
19
- const HashBrowserRouterUnwrapped = props => {
22
+ const HashBrowserRouterUnwrapped = (props)=>{
20
23
  const history = useHistory(props);
21
24
  const { children } = props;
22
- return _jsx(Router, { history: history, children: children });
25
+ return /*#__PURE__*/ _jsx(Router, {
26
+ history: history,
27
+ children: children
28
+ });
23
29
  };
24
- export const HashBrowserRouter = props => (_jsx(SingletonProvider, { provide: HistoryManager, children: _jsx(HashBrowserRouterUnwrapped, { ...props }) }));
30
+ export const HashBrowserRouter = (props)=>/*#__PURE__*/ _jsx(SingletonProvider, {
31
+ provide: HistoryManager,
32
+ children: /*#__PURE__*/ _jsx(HashBrowserRouterUnwrapped, {
33
+ ...props
34
+ })
35
+ });
25
36
  function createHashBrowserHistory({ basename = '', ...props }) {
26
- function convertLocationToHashRouterView(l) {
37
+ function convertLocationToHashRouterView(l1) {
27
38
  let search = '';
28
- let pathname = l.hash ? l.hash.substring(1) : '/';
39
+ let pathname = l1.hash ? l1.hash.substring(1) : '/';
29
40
  if (basename) {
30
41
  pathname = stripBasename(pathname, basename);
31
42
  }
@@ -35,86 +46,79 @@ function createHashBrowserHistory({ basename = '', ...props }) {
35
46
  pathname = pathname.substring(0, index);
36
47
  }
37
48
  return {
38
- ...l,
49
+ ...l1,
39
50
  search,
40
51
  pathname,
41
- hash: '',
52
+ hash: ''
42
53
  };
43
54
  }
44
55
  const parent = createBrowserHistory(props);
45
56
  const history = {
46
- createHref: location => '/#' + basename + parent.createHref(location),
47
- push: (path, state) => {
57
+ createHref: (location)=>'/#' + basename + parent.createHref(location),
58
+ push: (path, state)=>{
48
59
  if (typeof path === 'string') {
49
60
  if (path.startsWith('/#')) {
50
61
  parent.push(path, state);
51
- }
52
- else {
62
+ } else {
53
63
  parent.push('/#' + basename + path, state);
54
64
  }
55
- }
56
- else {
65
+ } else {
57
66
  if (path.hash) {
58
67
  parent.push(path);
59
- }
60
- else {
68
+ } else {
61
69
  parent.push({
62
70
  ...path,
63
71
  pathname: '/',
64
- hash: path.pathname !== undefined ? basename + path.pathname : undefined,
72
+ hash: path.pathname !== undefined ? basename + path.pathname : undefined
65
73
  });
66
74
  }
67
75
  }
68
76
  triggerSammyLocationChange();
69
77
  },
70
- replace: (path, state) => {
78
+ replace: (path, state)=>{
71
79
  if (typeof path === 'string') {
72
80
  if (path.startsWith('/#')) {
73
81
  parent.replace(path, state);
74
- }
75
- else {
82
+ } else {
76
83
  parent.replace('/#' + basename + path, state);
77
84
  }
78
- }
79
- else {
85
+ } else {
80
86
  if (path.hash) {
81
87
  parent.replace(path);
82
- }
83
- else {
88
+ } else {
84
89
  parent.replace({
85
90
  ...path,
86
91
  pathname: '/',
87
- hash: path.pathname !== undefined ? basename + path.pathname : undefined,
92
+ hash: path.pathname !== undefined ? basename + path.pathname : undefined
88
93
  });
89
94
  }
90
95
  }
91
96
  triggerSammyLocationChange();
92
97
  },
93
- block: prompt => {
98
+ block: (prompt)=>{
94
99
  if (typeof prompt === 'function') {
95
- return parent.block((origLocation, action) => {
100
+ return parent.block((origLocation, action)=>{
96
101
  return prompt(convertLocationToHashRouterView(origLocation), action);
97
102
  });
98
103
  }
99
104
  return parent.block(prompt);
100
105
  },
101
- listen: listener => {
102
- return parent.listen((origLocation, action) => {
106
+ listen: (listener)=>{
107
+ return parent.listen((origLocation, action)=>{
103
108
  listener(convertLocationToHashRouterView(origLocation), action);
104
109
  });
105
110
  },
106
- get location() {
111
+ get location () {
107
112
  return convertLocationToHashRouterView(parent.location);
108
113
  },
109
- set location(l) {
114
+ set location (l){
110
115
  parent.location = l;
111
- },
116
+ }
112
117
  };
113
118
  return Object.setPrototypeOf(history, parent);
114
119
  }
115
120
  function hasBasename(path, prefix) {
116
- return (path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 &&
117
- '/?#'.indexOf(path.charAt(prefix.length)) !== -1);
121
+ return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;
118
122
  }
119
123
  function stripBasename(path, prefix) {
120
124
  return hasBasename(path, prefix) ? path.substring(prefix.length) : path;
@@ -124,9 +128,9 @@ function triggerSammyLocationChange() {
124
128
  * We have to skip ahead `componentWillUnmount` to avoid «race condition»
125
129
  * e.g. in the SettingsLayout component "window.app.swap" could be fired after
126
130
  * the new Sammy route load and it would hide that page.
127
- */
128
- setTimeout(() => {
131
+ */ setTimeout(()=>{
129
132
  window.dispatchEvent(new HashChangeEvent('hashchange'));
130
133
  });
131
134
  }
135
+
132
136
  //# sourceMappingURL=hash-browser-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash-browser-router.js","sourceRoot":"","sources":["../src/hash-browser-router.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/hash-browser-router.tsx"],"sourcesContent":["import {\n BrowserHistoryBuildOptions,\n History,\n Location,\n LocationState,\n createBrowserHistory,\n} from 'history';\nimport { useRef, FC, useEffect } from 'react';\nimport { BrowserRouterProps, Router } from 'react-router-dom';\n\nimport { useDependencies } from '@servicetitan/react-ioc';\nimport { HistoryManager } from '@servicetitan/web-components';\n\nimport { SingletonProvider } from './singleton-provider';\n\nfunction useHistory(options: BrowserHistoryBuildOptions) {\n const history = useRef(createHashBrowserHistory(options)).current;\n\n const [historyManager] = useDependencies(HistoryManager);\n\n useEffect(() => {\n historyManager.register(history);\n\n return () => {\n historyManager.unregister(history);\n };\n }, [history, historyManager]);\n\n return history;\n}\n\nconst HashBrowserRouterUnwrapped: FC<BrowserRouterProps> = props => {\n const history = useHistory(props);\n const { children } = props;\n\n return <Router history={history}>{children}</Router>;\n};\n\nexport const HashBrowserRouter: FC<BrowserRouterProps> = props => (\n <SingletonProvider provide={HistoryManager}>\n <HashBrowserRouterUnwrapped {...props} />\n </SingletonProvider>\n);\n\nfunction createHashBrowserHistory({\n basename = '',\n ...props\n}: BrowserHistoryBuildOptions): History {\n function convertLocationToHashRouterView(l: Location): Location {\n let search = '';\n let pathname = l.hash ? l.hash.substring(1) : '/';\n if (basename) {\n pathname = stripBasename(pathname, basename);\n }\n const index = pathname.indexOf('?');\n if (index !== -1) {\n search = pathname.substring(index);\n pathname = pathname.substring(0, index);\n }\n return {\n ...l,\n search,\n pathname,\n hash: '',\n };\n }\n\n const parent = createBrowserHistory(props);\n\n const history: Omit<History, 'length' | 'action' | 'go' | 'goBack' | 'goForward'> = {\n createHref: location => '/#' + basename + parent.createHref(location),\n\n push: (path, state?: LocationState) => {\n if (typeof path === 'string') {\n if (path.startsWith('/#')) {\n parent.push(path, state);\n } else {\n parent.push('/#' + basename + path, state);\n }\n } else {\n if (path.hash) {\n parent.push(path);\n } else {\n parent.push({\n ...path,\n pathname: '/',\n hash: path.pathname !== undefined ? basename + path.pathname : undefined,\n });\n }\n }\n\n triggerSammyLocationChange();\n },\n\n replace: (path, state?: LocationState) => {\n if (typeof path === 'string') {\n if (path.startsWith('/#')) {\n parent.replace(path, state);\n } else {\n parent.replace('/#' + basename + path, state);\n }\n } else {\n if (path.hash) {\n parent.replace(path);\n } else {\n parent.replace({\n ...path,\n pathname: '/',\n hash: path.pathname !== undefined ? basename + path.pathname : undefined,\n });\n }\n }\n\n triggerSammyLocationChange();\n },\n\n block: prompt => {\n if (typeof prompt === 'function') {\n return parent.block((origLocation, action) => {\n return prompt(convertLocationToHashRouterView(origLocation), action);\n });\n }\n\n return parent.block(prompt);\n },\n\n listen: listener => {\n return parent.listen((origLocation, action) => {\n listener(convertLocationToHashRouterView(origLocation), action);\n });\n },\n\n get location() {\n return convertLocationToHashRouterView(parent.location);\n },\n set location(l) {\n parent.location = l;\n },\n };\n\n return Object.setPrototypeOf(history, parent);\n}\n\nfunction hasBasename(path: string, prefix: string) {\n return (\n path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 &&\n '/?#'.indexOf(path.charAt(prefix.length)) !== -1\n );\n}\n\nfunction stripBasename(path: string, prefix: string) {\n return hasBasename(path, prefix) ? path.substring(prefix.length) : path;\n}\n\nfunction triggerSammyLocationChange() {\n /*\n * We have to skip ahead `componentWillUnmount` to avoid «race condition»\n * e.g. in the SettingsLayout component \"window.app.swap\" could be fired after\n * the new Sammy route load and it would hide that page.\n */\n setTimeout(() => {\n window.dispatchEvent(new HashChangeEvent('hashchange'));\n });\n}\n"],"names":["createBrowserHistory","useRef","useEffect","Router","useDependencies","HistoryManager","SingletonProvider","useHistory","options","history","createHashBrowserHistory","current","historyManager","register","unregister","HashBrowserRouterUnwrapped","props","children","HashBrowserRouter","provide","basename","convertLocationToHashRouterView","l","search","pathname","hash","substring","stripBasename","index","indexOf","parent","createHref","location","push","path","state","startsWith","undefined","triggerSammyLocationChange","replace","block","prompt","origLocation","action","listen","listener","Object","setPrototypeOf","hasBasename","prefix","toLowerCase","charAt","length","setTimeout","window","dispatchEvent","HashChangeEvent"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './hash-browser-router';
2
+
2
3
  //# 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":"AAAA,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './hash-browser-router';\n"],"names":[],"mappings":"AAAA,cAAc,wBAAwB"}
@@ -2,8 +2,17 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useOptionalDependencies, Provider } from '@servicetitan/react-ioc';
3
3
  // Re-use instance if already exists
4
4
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
5
- export const SingletonProvider = ({ provide, children, }) => {
5
+ export const SingletonProvider = ({ provide, children })=>{
6
6
  const [instance] = useOptionalDependencies(provide);
7
- return (_jsx(Provider, { singletons: [instance ? { provide, useValue: instance } : provide], children: children }));
7
+ return /*#__PURE__*/ _jsx(Provider, {
8
+ singletons: [
9
+ instance ? {
10
+ provide,
11
+ useValue: instance
12
+ } : provide
13
+ ],
14
+ children: children
15
+ });
8
16
  };
17
+
9
18
  //# sourceMappingURL=singleton-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleton-provider.js","sourceRoot":"","sources":["../src/singleton-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,uBAAuB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAOxF,oCAAoC;AACpC,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAgB,EAC7C,OAAO,EACP,QAAQ,GACgB,EAAE,EAAE;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEpD,OAAO,CACH,KAAC,QAAQ,IAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,YACvE,QAAQ,GACF,CACd,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"sources":["../src/singleton-provider.tsx"],"sourcesContent":["import { interfaces, useOptionalDependencies, Provider } from '@servicetitan/react-ioc';\n\ninterface SingletonProviderProps<T> {\n provide: interfaces.Newable<T>;\n children: JSX.Element;\n}\n\n// Re-use instance if already exists\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nexport const SingletonProvider = <T extends any>({\n provide,\n children,\n}: SingletonProviderProps<T>) => {\n const [instance] = useOptionalDependencies(provide);\n\n return (\n <Provider singletons={[instance ? { provide, useValue: instance } : provide]}>\n {children}\n </Provider>\n );\n};\n"],"names":["useOptionalDependencies","Provider","SingletonProvider","provide","children","instance","singletons","useValue"],"mappings":";AAAA,SAAqBA,uBAAuB,EAAEC,QAAQ,QAAQ,0BAA0B;AAOxF,oCAAoC;AACpC,6EAA6E;AAC7E,OAAO,MAAMC,oBAAoB,CAAgB,EAC7CC,OAAO,EACPC,QAAQ,EACgB;IACxB,MAAM,CAACC,SAAS,GAAGL,wBAAwBG;IAE3C,qBACI,KAACF;QAASK,YAAY;YAACD,WAAW;gBAAEF;gBAASI,UAAUF;YAAS,IAAIF;SAAQ;kBACvEC;;AAGb,EAAE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/hash-browser-router",
3
- "version": "30.3.0",
3
+ "version": "31.0.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,8 +15,8 @@
15
15
  "src"
16
16
  ],
17
17
  "devDependencies": {
18
- "@servicetitan/react-ioc": "30.3.0",
19
- "@servicetitan/web-components": "30.3.0",
18
+ "@servicetitan/react-ioc": "31.0.0",
19
+ "@servicetitan/web-components": "31.0.0",
20
20
  "@testing-library/dom": "^10.4.0",
21
21
  "@testing-library/react": "^16.3.0",
22
22
  "@types/history": "~4.7.10",
@@ -27,8 +27,8 @@
27
27
  "react-router-dom": "~5.3.0"
28
28
  },
29
29
  "peerDependencies": {
30
- "@servicetitan/react-ioc": "30.3.0",
31
- "@servicetitan/web-components": "30.3.0",
30
+ "@servicetitan/react-ioc": "31.0.0",
31
+ "@servicetitan/web-components": "31.0.0",
32
32
  "history": "~4.10.1",
33
33
  "react": ">=17.0.2",
34
34
  "react-router-dom": "~5.3.0"
@@ -39,5 +39,5 @@
39
39
  "cli": {
40
40
  "webpack": false
41
41
  },
42
- "gitHead": "7521e8d9534299652c39fb5e71348c68120aee70"
42
+ "gitHead": "c52e188a1217df74052774a2eea6a5126089e3d5"
43
43
  }