tanettrimas / bedriftsmeny

Bedriftsvelger og -meny for innlogget arbeidsgiver. Laget av TAG (Tjenester for Arbeidsgivere).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

master build npm version

Virksomhetmeny (Bedriftsmeny)

Virksomhetsvelger og -meny for innlogget arbeidsgiver.

Begrepet «virksomhet» er ønsket terminologi og det som vises i nettleseren, men du vil se at npm-pakken, koden og lignende bruker begrepet «bedrift». Det som vises i nettleseren er «virksomhet» og det er ikke prioritert å endre pakkenavn og lignende.

Bruk

Installer komponenten

npm install @navikt/bedriftsmeny

Importer komponenten og CSS

import Bedriftsmeny from '@navikt/bedriftsmeny';
import '../node_modules/@navikt/bedriftsmeny/lib/bedriftsmeny.css';

Du er selv ansvarlig for å importere nav-frontend-core i din egen app. Bedriftsmenyen antar at CSS-klasser og Less-variabler fra denne pakken er tilgjengelige.

Render komponenten øverst i applikasjonen

<div>
    <Bedriftsmeny />
    /* Resten av applikasjonen */
</div>

NB! Hvis du f.eks kjører på Next.js og er avhengig av å styre hvordan query-parameterne settes så kan du implementere din egen orgnrSearchParam hook. Dette gjør at man slipper en avhengighet til react-router-dom

Eksempel:

export default function() {
    const { query, push } = useRouter()
    const useOrgnrHook: () => [string | null, (orgnr: string) => void] =
        useCallback(() => {
            const currentOrgnr =
                typeof query.bedrift === "string" ? query.bedrift : null;

            return [
                currentOrgnr,
                (orgnr: string) => {
                    if (currentOrgnr !== orgnr) {
                        if (orgnr === null) {
                            push("");
                        } else {
                            push(`?bedrift=${orgnr}`);
                        }
                    }
                },
            ];
        }, [push, query.bedrift]);

    return (
        <Bedriftsmeny
            orgnrSearchParam={useOrgnrHook}
            sidetittel={"Tittel"}
            organisasjoner={[
                {
                    Name: "Forelder",
                    Type: "Enterprise",
                    OrganizationNumber: "811076112",
                    ParentOrganizationNumber: "",
                    OrganizationForm: "FLI",
                    Status: "Active",
                },
                {
                    Name: "BALLSTAD OG HAMARØY",
                    Type: "Business",
                    OrganizationNumber: "811076732",
                    ParentOrganizationNumber: "811076112",
                    OrganizationForm: "BEDR",
                    Status: "Active",
                },
                {
                    Name: "Tvedestrand",
                    Type: "Business",
                    OrganizationNumber: "811076733",
                    ParentOrganizationNumber: "811076112",
                    OrganizationForm: "BEDR",
                    Status: "Active",
                },
            ]}
        />
    );
}

Utvikling

npm install
npm start

Publisering på NPM

Oppgrader versjonsnummer i package.json ved å kjøre npm version patch/minor/major (F.eks "npm version major" hvis det er breaking changes). Hvis du er i tvil om du skal oppgradere med patch, minor eller major, kan lese om sematic versioning på https://semver.org/. Ved å kjøre en av de tre kommandoene opprettes det en ny commit med det nye versjonsnummeret som commit message. Det opprettes samtidig en ny tag med det nye versjonsnummeret.

Commits til master med ny versjon i package.json vil publiseres til NPM.

Stack

Bundling

Bedriftsmenyen bygges med Webpack og Babel. Babel klarer å tolke TypeScript med @babel/preset-typescript og JSX med @babel/preset-react (se babel.config.js). Less kompileres til CSS og bundles sammen med JavaScript i lib/bedriftsmeny.css. Babel klarer ikke å generere deklarasjonsfiler for TypeScript, så vi gjør dette i et eget steg som en del av bygget.

Utvikling

Under utvikling (npm start) bygges appen med Parcel og en egen TypeScript-konfigurasjonsfil.

Kontakt oss

Opprett issue i repository hvis du lurer på noe.

De med tilgang til NAVs interne slack anbefales å bruker #bedriftsmeny.

Opprinnelig laget av TAG (Tjenester for arbeidsgivere).

About

Bedriftsvelger og -meny for innlogget arbeidsgiver. Laget av TAG (Tjenester for Arbeidsgivere).

License:MIT License


Languages

Language:TypeScript 85.8%Language:Less 11.1%Language:JavaScript 2.7%Language:HTML 0.4%