Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contact step page #2214

Merged
merged 54 commits into from
Mar 19, 2025
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
0d68c73
init
taniaholst Mar 10, 2025
f7927d1
init
taniaholst Mar 10, 2025
14ef88d
Merge branch 'main' into contact-step-page
taniaholst Mar 10, 2025
fe63e80
Refactor ContactStepPage component with enhanced type safety and step…
bdahle Mar 11, 2025
e24d359
oppsett header og htmlarea
taniaholst Mar 11, 2025
922578b
Styling for header med piktogram og ingress
taniaholst Mar 12, 2025
00f843c
sonar
taniaholst Mar 12, 2025
438e6fa
Merge pull request #2216 from navikt/header
taniaholst Mar 12, 2025
c8fc5a0
Update screenshots
taniaholst Mar 12, 2025
b27af6e
Merge branch 'contact-step-page' of github.com:navikt/nav-enonicxp-fr…
taniaholst Mar 12, 2025
fda82a3
Update screenshots
taniaholst Mar 12, 2025
618c2a7
Merge branch 'contact-step-page' into contact-step-links
bdahle Mar 12, 2025
cbaedc0
intern lenke funker
bdahle Mar 12, 2025
c5e044b
fjern boilerplate-html
bdahle Mar 12, 2025
c8635ea
fjern div
bdahle Mar 12, 2025
cf88d5e
bruk LinkPanel
bdahle Mar 12, 2025
33cbbd2
styling links
bdahle Mar 13, 2025
d68eb85
fiks ekstern lenke
bdahle Mar 13, 2025
f0754e0
Refactor ContactStepPage to use getHref function for link generation
bdahle Mar 13, 2025
1b53928
fjern classname
bdahle Mar 13, 2025
02df71c
fjern playwright test results
bdahle Mar 13, 2025
be9c646
todo analytics
bdahle Mar 13, 2025
0873a32
Merge pull request #2217 from navikt/contact-step-links
bdahle Mar 13, 2025
774a391
Add links heading and subheadline to ContactStepPage component
bdahle Mar 13, 2025
0face77
bytt navn fra steps til links
bdahle Mar 13, 2025
c3cc4a2
Merge pull request #2218 from navikt/contact-step-page-links-headings
bdahle Mar 13, 2025
a1876c4
la til tilbakelenke
taniaholst Mar 13, 2025
43dded2
styling
taniaholst Mar 13, 2025
2938c98
storybook for ContactStepPage
taniaholst Mar 13, 2025
4d4fba4
@ts-ignore på masse greier i storybook fordi ting ikke er satt opp he…
taniaholst Mar 13, 2025
8e5bf36
@ts-ignore på masse greier i storybook fordi ting ikke er satt opp he…
taniaholst Mar 13, 2025
1ce912a
Update screenshots
taniaholst Mar 13, 2025
824457e
fjern spacing når mangler explanation
bdahle Mar 14, 2025
a3f17d2
midlertidig løsning for fiks av bredde
taniaholst Mar 14, 2025
758782a
Merge branch 'contact-step-page' of github.com:navikt/nav-enonicxp-fr…
taniaholst Mar 14, 2025
6a88fc9
Update screenshots
taniaholst Mar 14, 2025
0c5bc57
endret navn på headerkomponent
taniaholst Mar 17, 2025
08e44d4
bruk LinkWithIngressMixin
bdahle Mar 17, 2025
fe5d800
la inn contact-step-page i noindex og gjorde refaktoreringer i contac…
taniaholst Mar 17, 2025
424bf59
fikset import
taniaholst Mar 17, 2025
04a1ed1
fiks
taniaholst Mar 17, 2025
7034998
bruk InternalLinkMixin
bdahle Mar 17, 2025
7e30467
fikset noindex
taniaholst Mar 17, 2025
d7d0ffe
Merge branch 'contact-step-page' into contact-step-page-external-links
bdahle Mar 17, 2025
b69721d
Merge pull request #2223 from navikt/contact-step-page-external-links
bdahle Mar 17, 2025
233bae8
sletta dupliserte filer
taniaholst Mar 17, 2025
88a7032
Merge branch 'contact-step-page' of github.com:navikt/nav-enonicxp-fr…
taniaholst Mar 17, 2025
7aef3a4
fiks av styling
taniaholst Mar 18, 2025
ec22add
syntaks :global
bdahle Mar 18, 2025
01c57d8
Update screenshots
bdahle Mar 18, 2025
3218201
css justeringer
taniaholst Mar 19, 2025
35a1b56
css justeringer
taniaholst Mar 19, 2025
c9bf753
fjern kommentar
bdahle Mar 19, 2025
ada03d6
Merge branch 'main' into contact-step-page
bdahle Mar 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions packages/nextjs/src/components/ContentMapper.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import { FormIntermediateStepPage } from './pages/form-intermediate-step-page/Fo
import { CalculatorPage } from './pages/calculator-page/CalculatorPage';
import { AlertInContextPage } from './pages/alert-in-context-page/AlertInContextPage';
import { OfficePage } from './pages/office-page/OfficePage';
import { ContactStepPage } from './pages/contact-step-page/ContactStepPage';

const contentToReactComponent: {
[key in ContentType]?: React.FunctionComponent<ContentProps<key>>;
Expand Down Expand Up @@ -61,6 +62,7 @@ const contentToReactComponent: {
[ContentType.Calculator]: CalculatorPage,
[ContentType.UserTestsConfig]: UserTestsConfigPreviewPage,
[ContentType.AlertInContext]: AlertInContextPage,
[ContentType.ContactStepPage]: ContactStepPage,

[ContentType.AreaPage]: DynamicPage,
[ContentType.FrontPage]: DynamicPage,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
.contactPageHeader {
display: flex;
flex-direction: column;
justify-content: center;

.textAboveTitle {
color: var(--a-text-subtle);
font-weight: 400;
font-size: 20px;
line-height: 28px;
letter-spacing: -0.1%;
}

.header {
font-size: 40px;
line-height: 52px;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { BodyShort, Heading } from '@navikt/ds-react';
import { ProductDataMixin } from 'types/component-props/_mixins';
import { ContentProps } from 'types/content-props/_content-common';
import { classNames } from 'utils/classnames';
import style from './ContactPageHeader.module.scss';

type Props = {
contentProps: Pick<ContentProps, 'data'> & {
data: Pick<ProductDataMixin, 'title' | 'illustration'>;
};
textAboveTitle?: string;
className?: string;
};

export const ContactPageHeader = ({ contentProps, textAboveTitle, className }: Props) => {
const { data } = contentProps;

return (
<div className={classNames(style.contactPageHeader, className)}>
<BodyShort textColor="subtle" className={style.textAboveTitle}>
{textAboveTitle}
</BodyShort>
<Heading level="1" size="large" spacing className={style.header}>
{data.title}
</Heading>
</div>
);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
@use 'common' as common;

.contactStepPage {
padding-bottom: 1rem;
display: grid;
row-gap: var(--a-spacing-5);
margin: 1.25rem auto var(--a-spacing-10);
grid-template-areas:
'header'
'content'
'link';

@media #{common.$mq-screen-tablet-and-desktop} {
grid-template-columns: 6rem 2fr 6rem;
grid-template-areas:
'pictogram header .'
'. content .'
'. link .';
column-gap: var(--a-spacing-10);
}
.pictogram {
grid-area: pictogram;
display: none;

@media #{common.$mq-screen-tablet-and-desktop} {
display: block;
}
}
.header {
grid-area: header;
}

.content {
grid-area: content;

& > * {
border-radius: common.$border-radius-large;
}

.linkPanels {
display: flex;
flex-direction: column;
gap: 0.5rem;
list-style-type: none;
padding: 0;

.linkPanel {
border-radius: common.$border-radius-large;
border: 1px solid var(--a-border-subtle);

& :global {
.navds-link-panel__title {
color: var(--default-action-color);
font-size: 1.25rem;
}
}
}
}
}
.link {
grid-area: link;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
import React from 'react';
import { Provider } from 'react-redux';
import type { Decorator, Meta, StoryObj } from '@storybook/react';
import { mockStore } from 'store/store';
import { ContactStepPage } from './ContactStepPage';

const withStore: Decorator = (Story) => (
<Provider store={mockStore}>
<Story />
</Provider>
);

const meta = {
component: ContactStepPage,
decorators: [withStore],
//Ikke en komplett side. Ikke sikkert vi skal sette opp hele sider i storybook.
//Bør kanskje finne en bedre måte å gjøre dette på om vi skal prøve å ha hele sider i storybook.
//Sjekk ut: https://storybook.js.org/docs/writing-stories/build-pages-with-storybook
args: {
_id: '4b4f44c8-d82c-4046-80e8-2b49ff9feca3',
_name: 'skrivtiloss',
_path: '/www.nav.no/tania/skrivtiloss',
creator: 'user:system:su',
modifier: 'user:system:su',
createdTime: '2025-03-06T09:12:39.492046Z',
modifiedTime: '2025-03-13T11:26:18.994311Z',
owner: 'user:system:su',
// @ts-ignore
type: 'no.nav.navno:contact-step-page',
displayName: 'Skriv til oss',
hasChildren: true,
language: 'no',
valid: true,
childOrder: 'modifiedtime DESC',
data: {
audience: {
person: {},
// @ts-ignore
_selected: 'person',
},
steps: {
nextStep: {
_selected: 'internal',
internal: {
internalContent: '5f679435-e468-4196-aa4a-5c86be9438a0',
},
},
label: 'Test',
},
customPath: '/test-kontaktside',
title: 'Skriv til oss',
textAboveTitle: 'Kontakt oss',
ingress: 'yrdyr',
html: '<p>Hva vil du gjøre?</p>\n',
target: '4b4f44c8-d82c-4046-80e8-2b49ff9feca3',
text: 'Skriv til oss om noe annet',
link: {
internal: {
// @ts-ignore
target: '419e1783-25af-4513-aebb-2cce0b6bd7da',
text: 'Kontakt oss på en annen måte',
},
_selected: 'internal',
},
links: [
{
label: 'Melde fra om endringer i saken din',
explanation:
'Når du får støtte fra Nav, må du melde fra om endringer som kan ha betydning for saken din. Det kan for eksempel være endringer i inntekt, bosted, jobb- eller familiesituasjon, eller ferie og opphold i utlandet.',
link: {
internal: {
internalContent: {
// @ts-ignore
createdTime: '2025-03-13T11:18:33.082857Z',
displayName: '"Melde fra om endringer i saken din"',
language: 'no',
modifiedTime: '2025-03-13T11:23:51.173Z',
publish: {
first: '2025-03-13T11:24:01.903Z',
from: '2025-03-13T11:24:01.903Z',
},
type: 'no.nav.navno:contact-step-page',
_id: 'ad33a6f6-403b-4ba4-bd7e-04cc25a473f2',
_path: '/privatperson/meldeifraomendringer',
},
},
_selected: 'internal',
},
},
{
label: 'Få svar på spørsmål',
explanation:
'Du kan blant annet stille oss spørsmål om saken din, hvilke rettigheter du har, hvilke regler som gjelder og hvordan du går frem for å søke.',
link: {
internal: {
internalContent: {
// @ts-ignore
createdTime: '2025-03-13T11:18:33.082857Z',
displayName: 'Skriv til oss',
language: 'no',
modifiedTime: '2025-03-13T11:23:51.173Z',
publish: {
first: '2025-03-13T11:24:01.903Z',
from: '2025-03-13T11:24:01.903Z',
},
type: 'no.nav.navno:contact-step-page',
_id: '"4b4f44c8-d82c-4046-80e8-2b49ff9feca3"',
_path: '/privatperson/velgpengestotteellertjeneste',
},
},
_selected: 'internal',
},
},
],
},
x: {
'no-nav-navno': {
redirectToLayer: {},
virtualParent: {},
previewOnly: {},
searchOrder: {},
},
},
// @ts-ignore
page: {},
attachments: {},
publish: {
from: '2025-03-11T09:40:07.350Z',
first: '2025-03-11T09:40:07.350Z',
},
},
} satisfies Meta<typeof ContactStepPage>;

export default meta;
type Story = StoryObj<typeof meta>;

export const Default: Story = {};

export const English: Story = {
args: {
language: 'en',
},
};

export const EditorView: Story = {
args: {
editorView: 'edit',
},
};
Loading
Loading