Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit 1d96330

Browse files
authored
Typescript
1 parent fcfd1da commit 1d96330

35 files changed

+256
-139
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@
99
</head>
1010
<body>
1111
<div id="root"></div>
12-
<script type="module" src="/src/main.jsx"></script>
12+
<script type="module" src="/src/main.tsx"></script>
1313
</body>
1414
</html>

package-lock.json

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

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"type": "module",
55
"scripts": {
66
"dev": "vite --port 3000",
7-
"build": "vite build",
7+
"build": "tsc && vite build",
88
"preview": "vite preview",
99
"lint": "eslint --fix --ext .js,.jsx .",
1010
"test": "vitest",
@@ -20,13 +20,15 @@
2020
"react-dom": "18.2.0",
2121
"react-query": "3.39.2",
2222
"rollup-plugin-terser": "7.0.2",
23+
"swr": "2.2.0",
2324
"vite-plugin-css-injected-by-js": "1.4.0",
2425
"zustand": "4.0.0-rc.0"
2526
},
2627
"devDependencies": {
2728
"@testing-library/jest-dom": "5.16.5",
2829
"@testing-library/react": "14.0.0",
2930
"@testing-library/user-event": "14.4.3",
31+
"@types/amplitude-js": "^8.16.2",
3032
"@vitejs/plugin-react": "1.0.7",
3133
"eslint": "8.22.0",
3234
"eslint-plugin-jsx-a11y": "6.6.1",
@@ -37,6 +39,7 @@
3739
"prettier": "2.5.1",
3840
"pretty-quick": "3.1.3",
3941
"rollup-plugin-import-map": "3.0.0",
42+
"typescript": "5.1.6",
4043
"vite": "3.2.4",
4144
"vite-plugin-environment": "1.1.3",
4245
"vite-plugin-compression": "0.5.1",

src/App.jsx renamed to src/App.tsx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,39 @@
1-
import styles from "./App.module.css";
2-
import { LanguageContext } from "./provider/LanguageProvider";
1+
import { Alert, Heading, Ingress, Loader } from "@navikt/ds-react";
32
import { useContext } from "react";
4-
import { inaktiveVarslerApiUrl } from "./api/urls";
3+
import useSWRImmutable from "swr/immutable";
4+
import styles from "./App.module.css";
55
import { fetcher } from "./api/api";
6-
import { useQuery } from "react-query";
7-
import { Alert, Heading, Loader, Ingress } from "@navikt/ds-react";
6+
import { inaktiveVarslerApiUrl } from "./api/urls";
7+
import NoTidligereVarslerPage from "./components/noTidligereVarslerPage/NoTidligereVarslerPage.js";
8+
import TidligereVarslerPage from "./components/tidligereVarslerPage/TidligereVarslerPage.js";
9+
import { Varsel } from "./components/varsel/Varsel";
810
import text from "./language/text";
9-
import NoTidligereVarslerPage from "./components/noTidligereVarslerPage/NoTidligereVarslerPage.jsx";
10-
import TidligereVarslerPage from "./components/tidligereVarslerPage/TidligereVarslerPage.jsx";
11+
import { LanguageContext } from "./provider/LanguageProvider";
1112

1213
function App() {
1314
const language = useContext(LanguageContext);
14-
const { data: varsler, isSuccess, isLoading } = useQuery(inaktiveVarslerApiUrl, fetcher);
15+
const { data: varsler, isLoading, error } = useSWRImmutable<Array<Varsel>>(inaktiveVarslerApiUrl, fetcher);
16+
1517
const hasMaskedVarsel = varsler && varsler.some((varsel) => varsel.isMasked);
1618

1719
return (
1820
<div className={styles.app}>
1921
<Heading className={styles.pageTitle} size="large">
20-
{text["tidligereVarslerOverskrift"][language]}
22+
{text.tidligereVarslerOverskrift[language]}
2123
</Heading>
22-
<Ingress className={styles.pageDescription}>{text["sidebeskrivelse"][language]}</Ingress>
24+
<Ingress className={styles.pageDescription}>{text.sidebeskrivelse[language]}</Ingress>
2325
{hasMaskedVarsel && (
2426
<Alert className={styles.authenticationAlert} variant="info">
25-
{text["hoyereSikkerhetsnivaa"][language]}
27+
{text.hoyereSikkerhetsnivaa[language]}
2628
</Alert>
2729
)}
2830
<div className={styles.pageBodyWrapper}>
29-
{isLoading ? (
31+
{isLoading || varsler === undefined ? (
3032
<Loader className={styles.loader} size="3xlarge" title="venter..." />
31-
) : varsler.length === 0 ? (
33+
) : varsler?.length === 0 ? (
3234
<NoTidligereVarslerPage />
3335
) : (
34-
<TidligereVarslerPage varsler={varsler} isSuccess={isSuccess} />
36+
<TidligereVarslerPage varsler={varsler} isSuccess={!error} />
3537
)}
3638
</div>
3739
</div>

src/Mikrofrontend.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { QueryClientProvider } from "react-query";
2-
import { initializeAmplitude } from "./utils/amplitude";
3-
import LanguageProvider from "./provider/LanguageProvider";
4-
import queryClient from "./utils/query";
52
import App from "./App";
63
import "./App.module.css";
4+
import LanguageProvider from "./provider/LanguageProvider";
5+
import { initializeAmplitude } from "./utils/amplitude";
6+
import queryClient from "./utils/query";
77

88
const Mikrofrontend = () => {
99
initializeAmplitude();

src/api/api.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/api/api.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { QueryFunctionContext } from "react-query";
2+
3+
const checkResponse = (response: Response) => {
4+
if (!response.ok) {
5+
throw new Error("Fetch request failed");
6+
}
7+
};
8+
9+
export const fetcher = async (path: string) => {
10+
const response = await fetch(path, {
11+
method: "GET",
12+
credentials: "include",
13+
});
14+
15+
if (!response.ok) {
16+
throw new Error("Fetch request failed");
17+
}
18+
19+
return await response.json();
20+
};
File renamed without changes.

src/assets/BeskjedIkon.jsx renamed to src/assets/BeskjedIkon.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const BeskjedIkon = () => {
1414
viewBox="0 0 24 24"
1515
fill="none"
1616
xmlns="http://www.w3.org/2000/svg"
17-
aria-label={text["filterToggleItemBeskjed"][language]}
17+
aria-label={text.filterToggleItemBeskjed[language]}
1818
>
1919
<rect width="24" height="24" rx="4" fill="#3380A5" />
2020
<path
File renamed without changes.

0 commit comments

Comments
 (0)