Skip to content

Commit

Permalink
Redesign hovedmeny (#1066)
Browse files Browse the repository at this point in the history
* Oppgradering av dependencies
* Refaktorering og redesign av hovedmenyen
* Installer Tailwind CSS
* Tweak marginer
* Grønn bakgrunn i skjemasteg
* Bruk Zod for automagisk schemavalidering
* Endre StegMedNavigasjon.tsx for å reflektere endringer i NAV-kontor-gyldighets-testen
* Generalisere NedetidPanel.tsx

Co-authored-by: André Rognaldsen <[email protected]>
  • Loading branch information
toresbe and andrerognaldsen authored Dec 8, 2022
1 parent e530c7e commit abfa929
Show file tree
Hide file tree
Showing 55 changed files with 14,768 additions and 15,634 deletions.
3 changes: 2 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
@navikt:registry=https://npm.pkg.github.com
@navikt:registry=https://npm.pkg.github.com
legacy-peer-deps=true
28,637 changes: 13,997 additions & 14,640 deletions package-lock.json

Large diffs are not rendered by default.

49 changes: 27 additions & 22 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@
"private": true,
"homepage": "/sosialhjelp/soknad/",
"dependencies": {
"@navikt/ds-css": "^0.16.4",
"@navikt/ds-icons": "^0.8.4",
"@navikt/ds-react": "^0.17.4",
"@navikt/ds-css": "^2.0.5",
"@navikt/ds-icons": "^2.0.5",
"@navikt/ds-react": "^2.0.5",
"@navikt/ds-tailwind": "^2.0.5",
"@navikt/fnrvalidator": "^1.2.0",
"@navikt/nav-dekoratoren-moduler": "^1.6.14",
"@sentry/react": "^6.19.7",
"@sentry/tracing": "^6.19.7",
"@sentry/react": "^7.22.0",
"@sentry/tracing": "^7.22.0",
"amplitude-js": "^8.18.1",
"classnames": "^2.3.1",
"date-fns": "^2.28.0",
"dotenv": "^16.0.0",
"downshift": "^6.1.3",
"downshift": "^7.0.4",
"express": "^4.18.1",
"history": "^4.10.1",
"history": "^5.3.0",
"nav-frontend-chevron": "^1.0.30",
"nav-frontend-chevron-style": "^1.0.4",
"nav-frontend-core": "^6.0.1",
Expand All @@ -36,32 +37,32 @@
"nav-frontend-stegindikator-style": "^2.0.1",
"nav-frontend-typografi": "^4.0.1",
"nav-frontend-typografi-style": "^2.0.1",
"react": "^17.0.2",
"react": "^18.2.0",
"react-collapse": "^5.1.1",
"react-dom": "^17.0.2",
"react-intl": "^5.25.0",
"react-dom": "^18.2.0",
"react-intl": "^6.2.4",
"react-modal": "^3.12.1",
"react-redux": "^7.2.8",
"react-router": "^5.2.1",
"react-router-dom": "^5.3.0",
"react-redux": "^8.0.5",
"react-router": "^5",
"react-router-dom": "^5",
"react-scripts": "^5.0.0",
"react-scroll": "^1.8.7",
"react-use": "^17.3.2",
"redux": "^4.2.0",
"redux-saga": "^1.1.3",
"styled-components": "^5.3.5",
"swr": "^1.2.2"
"swr": "^1.2.2",
"zod": "^3.19.1"
},
"devDependencies": {
"msw": "^0.39.2",
"@testing-library/jest-dom": "^5.16.2",
"@testing-library/react": "^12.1.4",
"@testing-library/react": "^13.4.0",
"@types/amplitude-js": "^8.16.0",
"@types/classnames": "^2.3.1",
"@types/jest": "^27.4.1",
"@types/node": "^16.11.26",
"@types/react": "^17.0.40",
"@types/react-dom": "^17.0.13",
"@types/jest": "^29.2.3",
"@types/node": "^18.11.10",
"@types/react": "^18.0.25",
"@types/react-dom": "^18.0.9",
"@types/react-inlinesvg": "^1.0.0",
"@types/react-intl": "^3.0.0",
"@types/react-modal": "^3.10.6",
Expand All @@ -70,12 +71,16 @@
"@types/react-router-dom": "^5.1.6",
"@types/react-scroll": "^1.8.3",
"@types/styled-components": "^5.1.24",
"autoprefixer": "^10.4.13",
"concurrently": "^7.0.0",
"husky": "^7.0.4",
"husky": "^8.0.2",
"less-plugin-npm-import": "^2.1.0",
"less-watch-compiler": "^1.16.3",
"lint-staged": "^12.3.6",
"lint-staged": "^13.0.4",
"msw": "^0.49.1",
"postcss": "^8.4.19",
"prettier": "^2.6.0",
"tailwindcss": "^3.2.4",
"typescript": "^4.6.2"
},
"jest": {
Expand Down
49 changes: 49 additions & 0 deletions src/components/common/NedetidPanel.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import {Alert} from "@navikt/ds-react";
import {FormattedMessage} from "react-intl";
import * as React from "react";
import {useSelector} from "react-redux";
import {State} from "../../digisos/redux/reducers";

type NetetidPanelType = "infoside" | "ettersendelse" | "avbryt";

const NedetidPanelMessageID: Record<NetetidPanelType, string> = {
infoside: "nedetid.alertstripe.infoside",
ettersendelse: "nedetid.alertstripe.ettersendelse",
avbryt: "nedetid.alertstripe.avbryt",
};

// Vis nedetid-varsel om det er satt
export const NedetidPanel = ({varselType}: {varselType: NetetidPanelType}) => {
const {isNedetid, isPlanlagtNedetid, nedetidStartText, nedetidSluttText} =
useSelector((state: State) => state.soknad).nedetid || {};

const messageId = NedetidPanelMessageID[varselType];

if (isNedetid)
return (
<Alert variant="error" style={{justifyContent: "center"}}>
<FormattedMessage
id={messageId}
values={{
nedetidstart: nedetidStartText,
nedetidslutt: nedetidSluttText,
}}
/>
</Alert>
);

if (isPlanlagtNedetid)
return (
<Alert variant="info" style={{justifyContent: "center"}}>
<FormattedMessage
id={messageId}
values={{
nedetidstart: nedetidStartText,
nedetidslutt: nedetidSluttText,
}}
/>
</Alert>
);

return null;
};
33 changes: 33 additions & 0 deletions src/digisos/hovedmeny/IkkeTilgang.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import * as React from "react";
import {FormattedMessage} from "react-intl";
import {Link, Panel} from "@navikt/ds-react";
import AppBanner from "../../nav-soknad/components/appHeader/AppHeader";
import {Information} from "@navikt/ds-icons";
import {Innholdstittel} from "nav-frontend-typografi";

const IkkeTilgangInformasjon = () => (
<div>
<AppBanner />
<div className={"py-24 px-4"}>
<Panel border className={"max-w-2xl mx-auto"}>
<Innholdstittel className={"flex items-center gap-4 pb-4"}>
<Information />
<FormattedMessage id={"informasjon.ikketilgang.bruker.tittel"} />
</Innholdstittel>

<FormattedMessage
id="informasjon.ikketilgang.bruker.tekst.v2"
values={{
a: (msg) => (
<Link href="https://www.nav.no/person/personopplysninger/#ditt-nav-kontor" target="_blank">
{msg}
</Link>
),
}}
/>
</Panel>
</div>
</div>
);

export default IkkeTilgangInformasjon;
43 changes: 43 additions & 0 deletions src/digisos/hovedmeny/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import * as React from "react";
import {useSelector} from "react-redux";
import {useIntl} from "react-intl";
import {getIntlTextOrKey} from "../../nav-soknad/utils";
import IkkeTilgang from "./IkkeTilgang";
import {skjulToppMeny} from "../../nav-soknad/utils/domUtils";
import AppBanner from "../../nav-soknad/components/appHeader/AppHeader";
import {State} from "../redux/reducers";
import {useTitle} from "../../nav-soknad/hooks/useTitle";
import {NedetidPanel} from "../../components/common/NedetidPanel";
import {NySoknadPanel} from "./paneler/NySoknad";
import {PabegynteSoknaderPanel} from "./paneler/PabegynteSoknader";
import {EttersendDokuPanel} from "./paneler/EttersendDokuPanel";
import {filterAndSortPabegynteSoknader} from "./paneler/pabegynteSoknaderUtils";

const Informasjon = () => {
const harTilgang: boolean = !!useSelector((state: State) => state.soknad.tilgang?.harTilgang);
useTitle(getIntlTextOrKey(useIntl(), "applikasjon.sidetittel"));
const pabegynteSoknader = filterAndSortPabegynteSoknader(
useSelector((state: State) => state.soknad.pabegynteSoknader),
new Date()
);

React.useEffect(() => {
skjulToppMeny();
}, []);

if (!harTilgang) return <IkkeTilgang />;

return (
<div className={"bg-green-500/20"}>
<AppBanner />
<NedetidPanel varselType={"infoside"} />
<div className="max-w-3xl mx-auto space-y-5 lg:py-24">
<NySoknadPanel antallPabegynteSoknader={pabegynteSoknader.length} />
<PabegynteSoknaderPanel pabegynteSoknader={pabegynteSoknader} />
<EttersendDokuPanel />
</div>
</div>
);
};

export default Informasjon;
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import * as React from "react";
import {FormattedMessage, useIntl} from "react-intl";
import {useSelector, useDispatch} from "react-redux";
import {finnValgtEnhetsNavn} from "../data/kommuner";
import {Soknadsdata} from "../redux/soknadsdata/soknadsdataReducer";
import {State} from "../redux/reducers";
import {visSamtykkeInfo} from "../redux/soknad/soknadActions";
import {finnValgtEnhetsNavn} from "../../data/kommuner";
import {Soknadsdata} from "../../redux/soknadsdata/soknadsdataReducer";
import {State} from "../../redux/reducers";
import {visSamtykkeInfo} from "../../redux/soknad/soknadActions";
import {Button, Modal} from "@navikt/ds-react";
import styled from "styled-components";

Expand Down
31 changes: 31 additions & 0 deletions src/digisos/hovedmeny/paneler/EttersendDokuPanel.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import Ekspanderbartpanel from "nav-frontend-ekspanderbartpanel";
import {Attachment} from "@navikt/ds-icons";
import {Heading, Link} from "@navikt/ds-react";
import {getInnsynUrl} from "../../../nav-soknad/utils/rest-utils";
import React from "react";

export const EttersendDokuPanel = () => (
<Ekspanderbartpanel
tittel={
<div className="flex items-center px-4 py-2">
<div className={"rounded-full bg-green-500/40 p-3 mr-5 tw-hidden lg:block"}>
<Attachment className={"w-9 h-9"} />
</div>
<Heading level="2" size="small">
Send dokumentasjon til en innsendt søknad
</Heading>
</div>
}
>
<div className={"pl-24"}>
Dokumentasjon kan sendes til søknader du har sendt inn tidligere.
<ul className={"list-disc list-inside py-5"}>
<li>
Gå til listen over <Link href={getInnsynUrl()}>dine sosialhjelpssøknader</Link>
</li>
<li>Åpne søknaden du ønsker å ettersende dokumenter til</li>
<li>Last opp dokumentene du skal ettersende under “dine vedlegg”</li>
</ul>
</div>
</Ekspanderbartpanel>
);
Loading

0 comments on commit abfa929

Please sign in to comment.