Skip to content

Commit 745dbba

Browse files
committed
🎨 update error pages and fullwidth hero
1 parent eddf2a2 commit 745dbba

32 files changed

Lines changed: 449 additions & 334 deletions

studio/sanity.config.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,12 @@ const isPortableTextEditor = (schema: SchemaType) => {
6969
export const singletonTemplates = [
7070
'route_homepage',
7171
'newsroom',
72+
'magazineIndex',
73+
'settings',
74+
//To be remove after upgrade
7275
'pageNotFound',
76+
//To be remove after upgrade
7377
'internalServerError',
74-
'magazineIndex',
7578
]
7679

7780
const handleInputComponents = (inputProps: InputProps) => {

studio/schemas/documents/404.ts

Lines changed: 6 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,12 @@
1-
import { collection_4, flight_land } from '@equinor/eds-icons'
2-
import type { PortableTextBlock, Rule } from 'sanity'
3-
import blocksToText from '../../helpers/blocksToText'
1+
import { collection_4 } from '@equinor/eds-icons'
42
import { EdsIcon } from '../../icons'
5-
import { CompactBlockEditor } from '../components/CompactBlockEditor'
6-
import { configureBlockContent } from '../editors/blockContentType'
7-
import { lang } from './langField'
83

94
export default {
105
type: 'document',
11-
title: `404 page`,
6+
title: `Error pages`,
127
name: `pageNotFound`,
138
icon: () => EdsIcon(collection_4),
14-
fieldsets: [
15-
{
16-
title: 'SEO & metadata',
17-
name: 'metadata',
18-
description:
19-
'This part is used for meta information when this content is used on the web',
20-
options: {
21-
collapsible: true,
22-
collapsed: true,
23-
},
24-
},
25-
],
269
fields: [
27-
lang,
28-
{
29-
title: 'Meta information',
30-
name: 'seo',
31-
type: 'titleAndMeta',
32-
fieldset: 'metadata',
33-
},
34-
{
35-
name: 'title',
36-
type: 'array',
37-
title: 'Title',
38-
description: `Don't add the status code (404). The web will take care of that`,
39-
components: {
40-
input: CompactBlockEditor,
41-
},
42-
of: [configureBlockContent({ variant: 'title' })],
43-
validation: (Rule: Rule) => Rule.required(),
44-
},
45-
{
46-
title: 'Text',
47-
name: 'text',
48-
type: 'array',
49-
of: [configureBlockContent({ variant: 'withH2SimpleBlock' })],
50-
},
5110
{
5211
title: 'Background image',
5312
name: 'backgroundImage',
@@ -59,15 +18,12 @@ export default {
5918
],
6019
preview: {
6120
select: {
62-
title: 'title',
21+
image: 'backgroundImage',
6322
},
64-
prepare({ title }: { title: PortableTextBlock[] }) {
65-
const plainTitle = title ? blocksToText(title) : ''
66-
23+
prepare({ image }: { image: any }) {
6724
return {
68-
title: plainTitle,
69-
subtitle: 'Page not found',
70-
media: EdsIcon(flight_land),
25+
title: 'Background image for error pages',
26+
media: image,
7127
}
7228
},
7329
},

studio/schemas/documents/header/sharedHeaderFields.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ const backgroundGradient = {
153153
title: 'Background Gradient',
154154
name: 'backgroundGradient',
155155
type: 'string',
156+
fieldset: 'hero',
156157
description: 'Controls the gradient over semi-transparent background image.',
157158
initialValue: 'none', // default
158159
options: {

studio/schemas/documents/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,16 @@ import page from './page'
2020
import redirect from './redirect'
2121
import route from './route'
2222
import routeHomepage from './routeHomepage'
23+
import { settings } from './settings'
2324
import simpleMenu from './simpleMenu'
2425
import siteMenu from './siteMenu'
2526
import subMenu from './subMenu'
2627
import tag from './tag'
2728

2829
export const documentsWithI18n = {
30+
//To be remove after upgrade
2931
pageNotFound,
32+
//To be remove after upgrade
3033
internalServerError,
3134
event,
3235
landingPage,
@@ -55,4 +58,5 @@ export default {
5558
magazineTag,
5659
route,
5760
subMenu,
61+
settings,
5862
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { CogIcon } from '@sanity/icons'
2+
import { defineType } from 'sanity'
3+
4+
export const settings = defineType({
5+
name: 'settings',
6+
title: 'Common settings',
7+
type: 'document',
8+
icon: CogIcon,
9+
fields: [
10+
{
11+
title: 'Common error pages background image',
12+
description: 'Will be used for 404 and 500 errors',
13+
name: 'backgroundImage',
14+
type: 'image',
15+
options: {
16+
hotspot: true,
17+
},
18+
},
19+
],
20+
preview: {
21+
prepare() {
22+
return {
23+
title: 'Common settings',
24+
}
25+
},
26+
},
27+
})

studio/schemas/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ const {
130130
siteMenu,
131131
simpleMenu,
132132
routeHomepage,
133+
settings,
133134
} = documentSchemaTypes
134135

135136
const routeSchemas = languages.map(({ name, title }) => {
@@ -157,6 +158,7 @@ const RemainingSchemas = [
157158
routeHomepage,
158159
pageNotFound,
159160
internalServerError,
161+
settings,
160162
imageWithAlt,
161163
imageWithAltAndCaption,
162164
carouselImage,

studio/schemas/textSnippets.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export const groups = {
2828
carousel: { title: 'Carousel' },
2929
others: { title: 'Others' },
3030
common: { title: 'Common' },
31+
error: { title: 'Error' },
3132
}
3233
const snippets: textSnippet = {
3334
country_code_format: {
@@ -922,6 +923,38 @@ const snippets: textSnippet = {
922923
defaultValue: 'Key figures',
923924
group: groups.common,
924925
},
926+
serverErrorTitle: {
927+
title: 'Server error title',
928+
defaultValue: 'Something has happened',
929+
group: groups.error,
930+
},
931+
serverErrorSubtitle: {
932+
title: 'Server error subtitle',
933+
defaultValue: 'We are sorry!',
934+
group: groups.error,
935+
},
936+
serverErrorContent: {
937+
title: 'Server error content',
938+
defaultValue:
939+
'Our site encountered some problem, please navigate back to our frontpage',
940+
group: groups.error,
941+
},
942+
notFoundErrorTitle: {
943+
title: 'Not found error title',
944+
defaultValue: 'You have wandered into unknown territory',
945+
group: groups.error,
946+
},
947+
notFoundErrorSubtitle: {
948+
title: 'Not found error subtitle',
949+
defaultValue: 'We love the curiosity!',
950+
group: groups.error,
951+
},
952+
notFoundErrorContent: {
953+
title: 'Not found error content',
954+
defaultValue:
955+
'But this page could not be found, please navigate back to our frontpage',
956+
group: groups.error,
957+
},
925958
}
926959

927960
type textSnippetGroup = { title: string; hidden?: boolean }

studio/src/lib/structure/items/ErrorPages.js

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

studio/src/lib/structure/items/Misc.js

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,9 @@ import { FileIcon } from '../../../../icons'
33
import { singletonListItem } from './SingletonItem'
44

55
const miscPages = S =>
6-
[
7-
singletonListItem(S, 'pageNotFound', '404 - Page not found').icon(FileIcon),
8-
singletonListItem(
9-
S,
10-
'internalServerError',
11-
'500 - Internal server error',
12-
).icon(FileIcon),
13-
/* Flags.HAS_NEWSROOM &&
14-
singletonListItem(S, 'newsroom', 'Newsroom').icon(NewsDocuments), */
15-
/* Flags.HAS_MAGAZINE_INDEX && singletonListItem(S, 'magazineIndex', 'Magazine Index').icon(NewsDocuments), */
16-
].filter(e => e)
6+
[singletonListItem(S, 'settings', 'Common settings').icon(FileIcon)].filter(
7+
e => e,
8+
)
179

1810
export const Misc = S =>
1911
S.listItem()

web/app/[locale]/(pages)/layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { notFound } from 'next/navigation'
22
import { hasLocale } from 'next-intl'
33
import { routing } from '@/i18n/routing'
44
import Footer from '@/sections/Footer/Footer'
5-
import Header from '@/sections/Header/Header'
5+
import Header from '@/sections/Header/HeaderBar'
66
import { FriendlyCaptchaSdkWrapper } from '../FriendlyCaptchaWrapper'
77

88
type Params = Promise<{ locale: string }>

0 commit comments

Comments
 (0)