Skip to content

Commit 95bc328

Browse files
committed
fix: add query string configuration
1 parent c57184b commit 95bc328

File tree

4 files changed

+48
-34
lines changed

4 files changed

+48
-34
lines changed

package-lock.json

Lines changed: 20 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
"@semantic-release/github": "^5.4.2",
5252
"@semantic-release/npm": "^5.1.13",
5353
"@semantic-release/release-notes-generator": "^7.3.0",
54+
"qs": "^6.8.0",
5455
"react": "^16.8.6",
5556
"react-dom": "^16.8.6",
5657
"react-json-view": "^1.19.1",

src/containers/App.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,18 @@ import { MuiThemeProvider } from "@material-ui/core";
44
import { lightTheme, darkTheme } from "../themes/openrpcTheme";
55
import useDarkMode from "use-dark-mode";
66
import Inspector from "./Inspector";
7+
import useQueryParams from "../hooks/useQueryParams";
78

89
const App: React.FC = () => {
910
const darkMode = useDarkMode();
11+
const [query] = useQueryParams();
1012
const theme = darkMode.value ? darkTheme : lightTheme;
1113
const reactJsonTheme = darkMode.value ? "summerfruit" : "summerfruit:inverted";
1214

1315
return (
1416
<MuiThemeProvider theme={theme}>
1517
<CssBaseline />
16-
<Inspector onToggleDarkMode={darkMode.toggle} darkMode={darkMode.value} reactJsonTheme={reactJsonTheme}/>
18+
<Inspector onToggleDarkMode={darkMode.toggle} darkMode={darkMode.value} reactJsonTheme={reactJsonTheme} url={query.url} request={query.request}/>
1719
</MuiThemeProvider>
1820
);
1921
};

src/hooks/useQueryParams.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { useState } from "react";
2+
import * as qs from "qs";
3+
4+
const useQueryParams = (depth?: number) => {
5+
const parse = () => {
6+
return qs.parse(window.location.search, {
7+
ignoreQueryPrefix: true,
8+
depth: depth || 100,
9+
decoder(str) {
10+
if (str === "false") {
11+
return false;
12+
}
13+
if (str === "true") {
14+
return true;
15+
}
16+
return decodeURIComponent(str);
17+
},
18+
});
19+
};
20+
const [query] = useState(parse());
21+
return [query];
22+
};
23+
24+
export default useQueryParams;

0 commit comments

Comments
 (0)