From 2a93224f22d7d7b6a453b8c331666ad265afdecd Mon Sep 17 00:00:00 2001 From: Hyeseong Kim Date: Thu, 12 May 2022 18:08:37 +0900 Subject: [PATCH] =?UTF-8?q?[WMAS-39]=20IR=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#589)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * ir 페이지 작업 * ir.daangn.com 사이트 리디렉션 추가 * 페이지 타이틀 추가 --- .../src/components/JobPostList.tsx | 4 +- .../src/layouts/DefaultLayout.tsx | 16 +- .../src/layouts/JobPostLayout.tsx | 4 +- .../src/layouts/index.tsx | 46 +--- .../src/pages/404.tsx | 88 ++++--- .../src/types/svgr.d.ts | 1 + ir.daangn.com/vercel.json | 9 + team.daangn.com/gatsby-node.ts | 105 ++++++++ team.daangn.com/package.json | 1 + .../src/__generated__/gatsby-schema.graphql | 8 +- .../src/__generated__/gatsby-types.d.ts | 61 +++-- team.daangn.com/src/pages/ir.tsx | 124 +++++++++ team.daangn.com/src/templates/IrPage.tsx | 241 ++++++++++++++++++ .../src/templates/irPage/AttachmentGroup.tsx | 0 .../src/templates/irPage/MainText.tsx | 0 .../templates/irPage/SupplementaryText.tsx | 0 yarn.lock | 1 + 17 files changed, 595 insertions(+), 114 deletions(-) create mode 100644 ir.daangn.com/vercel.json create mode 100644 team.daangn.com/src/pages/ir.tsx create mode 100644 team.daangn.com/src/templates/IrPage.tsx create mode 100644 team.daangn.com/src/templates/irPage/AttachmentGroup.tsx create mode 100644 team.daangn.com/src/templates/irPage/MainText.tsx create mode 100644 team.daangn.com/src/templates/irPage/SupplementaryText.tsx diff --git a/_packages/@karrotmarket/gatsby-theme-team-website/src/components/JobPostList.tsx b/_packages/@karrotmarket/gatsby-theme-team-website/src/components/JobPostList.tsx index 8b73ad9f8..8d49a89b8 100644 --- a/_packages/@karrotmarket/gatsby-theme-team-website/src/components/JobPostList.tsx +++ b/_packages/@karrotmarket/gatsby-theme-team-website/src/components/JobPostList.tsx @@ -44,8 +44,10 @@ const List = styled(motion.ul, { const JobPostLink = styled(Link, { display: 'block', color: 'inherit', - transition: 'color .3s', textDecoration: 'none', + '@media not (prefers-reduced-motion: reduce)': { + transition: 'color .3s', + }, '&:hover': { color: vars.$scale.color.gray600, }, diff --git a/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/DefaultLayout.tsx b/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/DefaultLayout.tsx index bdc48ab94..0c356b9ae 100644 --- a/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/DefaultLayout.tsx +++ b/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/DefaultLayout.tsx @@ -14,8 +14,6 @@ import _Header from '@karrotmarket/gatsby-theme-website/src/components/Header'; import _Footer from '@karrotmarket/gatsby-theme-website/src/components/Footer'; import { useTranslation } from '@karrotmarket/gatsby-plugin-lokalise-translation/src/translation'; -import { usePrefersColorScheme } from '../utils/usePreferColorScheme'; - type DefaultLayoutProps = OverrideProps< PageProps, { @@ -78,14 +76,22 @@ const DefaultLayout: React.FC = ({ data, children, }) => { + try { + required(data.prismicSiteNavigation); + required(data.prismicTeamContents?.data); + } catch { + return ( +
+ {children} +
+ ); + } + const messages = useTranslation(); const siteOrigin = useSiteOrigin(); const { pathname: currentPath } = useLocation(); - required(data.prismicSiteNavigation); - required(data.prismicTeamContents?.data); - return ( <> diff --git a/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/JobPostLayout.tsx b/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/JobPostLayout.tsx index ea7640d43..421208742 100644 --- a/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/JobPostLayout.tsx +++ b/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/JobPostLayout.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import type { PageProps } from 'gatsby'; -import { navigate } from 'gatsby'; +import { } from 'gatsby'; import { rem } from 'polished'; import { motion, AnimateSharedLayout } from 'framer-motion'; -import { graphql, Link } from 'gatsby'; +import { graphql, navigate, Link } from 'gatsby'; import { styled } from 'gatsby-theme-stitches/src/config'; import { GatsbySeo } from 'gatsby-plugin-next-seo'; import type { OverrideProps } from '@cometjs/core'; diff --git a/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/index.tsx b/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/index.tsx index 49f937f44..fed3591db 100644 --- a/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/index.tsx +++ b/_packages/@karrotmarket/gatsby-theme-team-website/src/layouts/index.tsx @@ -55,22 +55,6 @@ const LayoutSwitch: React.FC = ({ const { pathname: path } = useLocation(); - if (path === '/') { - return ( - - {children} - - ); - } - - if (/\/jobs\/faq\/?$/.test(path)) { - return ( - - {children} - - ); - } - if (/\/jobs\/\d+\/?/.test(path)) { return ( @@ -81,31 +65,11 @@ const LayoutSwitch: React.FC = ({ ); } - if (/\/jobs\/.+\/?/.test(path)) { - return ( - - {children} - - ); - } - - if (/\/faq\/.+\/?/.test(path)) { - return ( - - {children} - - ); - } - - if (/\/(jobs|preview|culture|faq)\/?/.test(path)) { - return ( - - {children} - - ); - } - - return <>{children}; + return ( + + {children} + + ); } export default LayoutSwitch; diff --git a/_packages/@karrotmarket/gatsby-theme-team-website/src/pages/404.tsx b/_packages/@karrotmarket/gatsby-theme-team-website/src/pages/404.tsx index 9431ef8fa..6e865074b 100644 --- a/_packages/@karrotmarket/gatsby-theme-team-website/src/pages/404.tsx +++ b/_packages/@karrotmarket/gatsby-theme-team-website/src/pages/404.tsx @@ -6,7 +6,6 @@ import { styled } from 'gatsby-theme-stitches/src/config'; import { GatsbySeo } from 'gatsby-plugin-next-seo'; import { mapLink, useLinkParser } from '@karrotmarket/gatsby-theme-website/src/link'; import { required } from '@cometjs/core'; -import DefaultLayout from '../layouts/DefaultLayout'; import ButtonLink from '../components/Button'; import { withPrismicUnpublishedPreview } from 'gatsby-plugin-prismic-previews'; @@ -70,54 +69,53 @@ const Control = styled('div', { }, }); -const NotFoundPage: React.FC = pageProps => { - const { data } = pageProps; - const parseLink = useLinkParser(); - +const NotFoundPage: React.FC = ({ + data, +}) => { required(data.prismicTeamContents?.data); + const parseLink = useLinkParser(); + return ( - + - - - {data.prismicTeamContents.data.notfound_page_title.text} - - - - {data.prismicTeamContents.data.notfound_page_link_group - .map((entry, i) => { - const link = parseLink(entry.link.url); - return mapLink(link, { - Internal: link => ( - - {entry.display_text} - - ), - External: link => ( - - {entry.display_text} - - ), - }); - }) - } - - - + + {data.prismicTeamContents.data.notfound_page_title.text} + + + + {data.prismicTeamContents.data.notfound_page_link_group + .map((entry, i) => { + const link = parseLink(entry.link.url); + return mapLink(link, { + Internal: link => ( + + {entry.display_text} + + ), + External: link => ( + + {entry.display_text} + + ), + }); + }) + } + + ); }; diff --git a/_packages/@karrotmarket/gatsby-theme-team-website/src/types/svgr.d.ts b/_packages/@karrotmarket/gatsby-theme-team-website/src/types/svgr.d.ts index 7d43d8c2f..651080233 100644 --- a/_packages/@karrotmarket/gatsby-theme-team-website/src/types/svgr.d.ts +++ b/_packages/@karrotmarket/gatsby-theme-team-website/src/types/svgr.d.ts @@ -1,5 +1,6 @@ declare module '*.svg' { import type * as React from 'react'; + interface SvgrComponent extends React.StatelessComponent> {} const url: string; diff --git a/ir.daangn.com/vercel.json b/ir.daangn.com/vercel.json new file mode 100644 index 000000000..ffeadb204 --- /dev/null +++ b/ir.daangn.com/vercel.json @@ -0,0 +1,9 @@ +{ + "redirects": [ + { + "source": "/(.*)", + "destination": "https://team.daangn.com/ir/", + "permanent": false + } + ] +} diff --git a/team.daangn.com/gatsby-node.ts b/team.daangn.com/gatsby-node.ts index 9357b37c5..c52eacd44 100644 --- a/team.daangn.com/gatsby-node.ts +++ b/team.daangn.com/gatsby-node.ts @@ -1,4 +1,6 @@ +import * as path from 'path'; import type { GatsbyNode } from 'gatsby'; +import { createRemoteFileNode } from 'gatsby-source-filesystem'; export const onCreateBabelConfig: GatsbyNode['onCreateBabelConfig'] = ({ actions, @@ -20,3 +22,106 @@ export const onPostBootstrap: GatsbyNode['onPostBootstrap'] = ({ isPermanent: true, }); }; + +export const createResolvers: GatsbyNode['createResolvers'] = ({ + createResolvers, + actions: { + createNode, + }, + store, + cache, + reporter, + createNodeId, +}) => { + createResolvers({ + PrismicLinkType: { + localFileFixed: { + type: 'File', + description: 'See https://github.com/gatsbyjs/gatsby/issues/35636', + resolve(source: any) { + if (!source.url) { + return null; + } + + const url = new URL(source.url); + + let name: string | undefined = undefined; + let ext: string | undefined = undefined; + + const match = url.pathname.match(/\/([^/\\&\?]+)(\.\w{3,4})$/); + if (match) { + name = decodeURIComponent(match[1]); + ext = match[2] ?? undefined; + url.pathname.replace(match[1], name); + url.searchParams.set('_fix35636', 'true'); + } + + return createRemoteFileNode({ + url: url.toString(), + cache, + createNode, + createNodeId, + store, + reporter, + name, + ext, + }); + }, + }, + }, + }); +}; + +export const createPages: GatsbyNode['createPages'] = async ({ + graphql, + actions, + reporter, + store, +}) => { + const { program } = store.getState(); + const basePath = program.directory as string; + + const gql = String.raw; + + type Data = { + allPrismicIr: { + nodes: Array<{ + uid: string, + }>, + }, + }; + const { data, errors } = await graphql(gql` + { + allPrismicIr( + filter: { + uid: { + ne: null + } + tags: { + in: ["team.daangn.com"] + } + } + ) { + nodes { + uid + } + } + } + `); + + if (errors) { + reporter.panicOnBuild(errors); + } + + console.log(data); + + for (const ir of data.allPrismicIr.nodes) { + actions.createPage({ + path: `/ir/${ir.uid}/`, + component: path.resolve(basePath, 'src/templates/IrPage.tsx'), + context: { + uid: ir.uid, + }, + }); + } +}; diff --git a/team.daangn.com/package.json b/team.daangn.com/package.json index e639bbfbb..90039d888 100644 --- a/team.daangn.com/package.json +++ b/team.daangn.com/package.json @@ -28,6 +28,7 @@ "@karrotmarket/gatsby-source-greenhouse-jobboard": "0.6.0", "@karrotmarket/gatsby-theme-team-website": "workspace:^", "@karrotmarket/gatsby-transformer-job-post": "workspace:^", + "@seed-design/design-token": "alpha", "cjk-slug": "0.3.0", "gatsby": "4.14.0", "gatsby-plugin-advanced-sitemap": "2.1.0", diff --git a/team.daangn.com/src/__generated__/gatsby-schema.graphql b/team.daangn.com/src/__generated__/gatsby-schema.graphql index 79cd05db9..c3086f13f 100644 --- a/team.daangn.com/src/__generated__/gatsby-schema.graphql +++ b/team.daangn.com/src/__generated__/gatsby-schema.graphql @@ -10332,6 +10332,7 @@ type PrismicIr implements Node { prismicId: ID! tags: [String!]! type: String! + uid: String! url: String } @@ -10519,6 +10520,7 @@ enum PrismicIrFieldsEnum { prismicId tags type + uid url } @@ -10538,6 +10540,7 @@ input PrismicIrFilterInput { prismicId: IDQueryOperatorInput tags: StringQueryOperatorInput type: StringQueryOperatorInput + uid: StringQueryOperatorInput url: StringQueryOperatorInput } @@ -10567,6 +10570,9 @@ type PrismicLinkType { lang: String link_type: PrismicLinkTypeEnum localFile: File + + # See https://github.com/gatsbyjs/gatsby/issues/35636 + localFileFixed: File raw: JSON size: Int slug: String @@ -16727,7 +16733,7 @@ type Query { prismicEmbedType(children: NodeFilterListInput, id: StringQueryOperatorInput, internal: InternalFilterInput, parent: NodeFilterInput): PrismicEmbedType prismicFaq(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicFaqDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, uid: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicFaq prismicGlobalContents(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicGlobalContentsDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicGlobalContents - prismicIr(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicIrDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicIr + prismicIr(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicIrDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, uid: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicIr prismicMemberProfile(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicMemberProfileDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicMemberProfile prismicPayContents(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicPayContentsDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicPayContents prismicSiteNavigation(_previewable: IDQueryOperatorInput, alternate_languages: PrismicAlternateLanguageTypeFilterListInput, children: NodeFilterListInput, data: PrismicSiteNavigationDataTypeFilterInput, dataRaw: JSONQueryOperatorInput, first_publication_date: DateQueryOperatorInput, href: StringQueryOperatorInput, id: StringQueryOperatorInput, internal: InternalFilterInput, lang: StringQueryOperatorInput, last_publication_date: DateQueryOperatorInput, parent: NodeFilterInput, prismicId: IDQueryOperatorInput, tags: StringQueryOperatorInput, type: StringQueryOperatorInput, uid: StringQueryOperatorInput, url: StringQueryOperatorInput): PrismicSiteNavigation diff --git a/team.daangn.com/src/__generated__/gatsby-types.d.ts b/team.daangn.com/src/__generated__/gatsby-types.d.ts index 479e155a7..9b88ab06b 100644 --- a/team.daangn.com/src/__generated__/gatsby-types.d.ts +++ b/team.daangn.com/src/__generated__/gatsby-types.d.ts @@ -9573,6 +9573,7 @@ type PrismicIr = Node & { readonly prismicId: Scalars['ID']; readonly tags: ReadonlyArray; readonly type: Scalars['String']; + readonly uid: Scalars['String']; readonly url: Maybe; }; @@ -9803,6 +9804,7 @@ type PrismicIrFieldsEnum = | 'prismicId' | 'tags' | 'type' + | 'uid' | 'url'; type PrismicIrFilterInput = { @@ -9821,6 +9823,7 @@ type PrismicIrFilterInput = { readonly prismicId: InputMaybe; readonly tags: InputMaybe; readonly type: InputMaybe; + readonly uid: InputMaybe; readonly url: InputMaybe; }; @@ -9877,6 +9880,8 @@ type PrismicLinkType = { readonly lang: Maybe; readonly link_type: Maybe; readonly localFile: Maybe; + /** See https://github.com/gatsbyjs/gatsby/issues/35636 */ + readonly localFileFixed: Maybe; readonly raw: Maybe; readonly size: Maybe; readonly slug: Maybe; @@ -15537,6 +15542,7 @@ type Query_prismicIrArgs = { prismicId: InputMaybe; tags: InputMaybe; type: InputMaybe; + uid: InputMaybe; url: InputMaybe; }; @@ -16926,6 +16932,15 @@ type WebPOptions = { readonly quality: InputMaybe; }; +type IrPageQueryVariables = Exact<{ + uid: Scalars['String']; + locale: Scalars['String']; + navigationId: Scalars['String']; +}>; + + +type IrPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicIr: { readonly uid: string, readonly first_publication_date: string, readonly data: { readonly title: { readonly text: string | undefined } | undefined, readonly attachment_group: ReadonlyArray<{ readonly file: { readonly localFileFixed: { readonly base: string, readonly publicURL: string | undefined } | undefined } | undefined } | undefined> | undefined, readonly body: ReadonlyArray<{ readonly __typename: 'PrismicIrDataBodyMainText', readonly id: string, readonly primary: { readonly text: { readonly html: string | undefined } | undefined } } | { readonly __typename: 'PrismicIrDataBodySupplementaryText', readonly id: string, readonly primary: { readonly text: { readonly html: string | undefined } | undefined } }> } } | undefined }; + type BannerAreaStaticQueryVariables = Exact<{ [key: string]: never; }>; @@ -16949,13 +16964,13 @@ type TeamWebsite_NotFoundPageQueryVariables = Exact<{ type TeamWebsite_NotFoundPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly notfound_page_title: { readonly text: string | undefined } | undefined, readonly notfound_page_link_group: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; -type TeamWebsite_PreviewResolverPageQueryVariables = Exact<{ +type TeamWebsite_CompletedPageQueryVariables = Exact<{ locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_PreviewResolverPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; +type TeamWebsite_CompletedPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly completed_page_content: { readonly html: string | undefined } | undefined, readonly completed_page_link_group: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; type TeamWebsite_IndexPageQueryVariables = Exact<{ locale: Scalars['String']; @@ -16965,65 +16980,65 @@ type TeamWebsite_IndexPageQueryVariables = Exact<{ type TeamWebsite_IndexPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly main_page_meta_title: string | undefined, readonly main_page_meta_description: string | undefined, readonly main_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly main_page_title: { readonly text: string | undefined } | undefined, readonly main_body: ReadonlyArray<{ readonly __typename: 'PrismicTeamContentsDataMainBodyBenefit', readonly primary: { readonly title: { readonly text: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly subtitle: string | undefined, readonly subtext: string | undefined, readonly description: { readonly html: string | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataMainBodyDivider' } | { readonly __typename: 'PrismicTeamContentsDataMainBodyHowWeWork', readonly primary: { readonly title: { readonly text: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly group: string | undefined, readonly key_text: string | undefined, readonly description: { readonly text: string | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataMainBodyIllustrationAndDescription', readonly primary: { readonly expanded: boolean | undefined, readonly inverted: boolean | undefined, readonly link_text: string | undefined, readonly illustration: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly description: { readonly text: string | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataMainBodyKeyVisual', readonly primary: { readonly expanded: boolean | undefined, readonly key_visual_image: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined, readonly thumbnails: { readonly portrait: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined } | undefined } | undefined, readonly description: { readonly text: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataMainBodyMemberQuoteCarousel', readonly items: ReadonlyArray<{ readonly quote: string | undefined, readonly who: string | undefined, readonly image: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataMainBodyTitleAndDescription', readonly primary: { readonly key_text: string | undefined, readonly inverted: boolean | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly description: { readonly html: string | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataMainBodyTitleAndIllustration', readonly primary: { readonly key_text: string | undefined, readonly inverted: boolean | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly illustration: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataMainBodyWideBanner', readonly primary: { readonly background_color: string | undefined, readonly link_text: string | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly thumbnail: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } }> } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; -type TeamWebsite_CulturePageQueryVariables = Exact<{ +type TeamWebsite_PreviewResolverPageQueryVariables = Exact<{ locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_CulturePageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly culture_page_meta_title: string | undefined, readonly culture_page_meta_description: string | undefined, readonly culture_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly culture_page_title: { readonly text: string | undefined } | undefined, readonly culture_body: ReadonlyArray<{ readonly __typename: 'PrismicTeamContentsDataCultureBodyBenefit', readonly primary: { readonly title: { readonly text: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly subtitle: string | undefined, readonly subtext: string | undefined, readonly description: { readonly html: string | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyDivider' } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyHowWeWork', readonly primary: { readonly title: { readonly text: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly group: string | undefined, readonly key_text: string | undefined, readonly description: { readonly text: string | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyIllustrationAndDescription', readonly primary: { readonly expanded: boolean | undefined, readonly inverted: boolean | undefined, readonly link_text: string | undefined, readonly illustration: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly description: { readonly text: string | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyKeyVisual', readonly primary: { readonly expanded: boolean | undefined, readonly key_visual_image: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined, readonly thumbnails: { readonly portrait: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined } | undefined } | undefined, readonly description: { readonly text: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyMemberQuoteCarousel' } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyTitleAndDescription', readonly primary: { readonly key_text: string | undefined, readonly inverted: boolean | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly description: { readonly html: string | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyTitleAndIllustration', readonly primary: { readonly key_text: string | undefined, readonly inverted: boolean | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly illustration: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyWideBanner', readonly primary: { readonly background_color: string | undefined, readonly link_text: string | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly thumbnail: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } }> } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; +type TeamWebsite_PreviewResolverPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; -type TeamWebsite_CompletedPageQueryVariables = Exact<{ +type TeamWebsite_CulturePageQueryVariables = Exact<{ locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_CompletedPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly completed_page_content: { readonly html: string | undefined } | undefined, readonly completed_page_link_group: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; +type TeamWebsite_CulturePageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly culture_page_meta_title: string | undefined, readonly culture_page_meta_description: string | undefined, readonly culture_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly culture_page_title: { readonly text: string | undefined } | undefined, readonly culture_body: ReadonlyArray<{ readonly __typename: 'PrismicTeamContentsDataCultureBodyBenefit', readonly primary: { readonly title: { readonly text: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly subtitle: string | undefined, readonly subtext: string | undefined, readonly description: { readonly html: string | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyDivider' } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyHowWeWork', readonly primary: { readonly title: { readonly text: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly group: string | undefined, readonly key_text: string | undefined, readonly description: { readonly text: string | undefined } | undefined }> } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyIllustrationAndDescription', readonly primary: { readonly expanded: boolean | undefined, readonly inverted: boolean | undefined, readonly link_text: string | undefined, readonly illustration: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly description: { readonly text: string | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyKeyVisual', readonly primary: { readonly expanded: boolean | undefined, readonly key_visual_image: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined, readonly thumbnails: { readonly portrait: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined } | undefined } | undefined, readonly description: { readonly text: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyMemberQuoteCarousel' } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyTitleAndDescription', readonly primary: { readonly key_text: string | undefined, readonly inverted: boolean | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly description: { readonly html: string | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyTitleAndIllustration', readonly primary: { readonly key_text: string | undefined, readonly inverted: boolean | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly illustration: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } } | { readonly __typename: 'PrismicTeamContentsDataCultureBodyWideBanner', readonly primary: { readonly background_color: string | undefined, readonly link_text: string | undefined, readonly title: { readonly text: string | undefined } | undefined, readonly thumbnail: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined, readonly link: { readonly url: string | undefined } | undefined } }> } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; -type TeamWebsite_JobsPageTemplateQueryVariables = Exact<{ - departmentId: Scalars['String']; +type TeamWebsite_FaqPageQueryVariables = Exact<{ + id: Scalars['String']; locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_JobsPageTemplateQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly jobs_page_meta_title: string | undefined, readonly jobs_page_meta_description: string | undefined, readonly jobs_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly jobs_page_title: { readonly text: string | undefined } | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly currentJobDepartment: { readonly name: string } | undefined, readonly allSelectedJobPost: { readonly nodes: ReadonlyArray<{ readonly id: string, readonly ghId: string, readonly externalUrl: string | undefined, readonly order: number, readonly employmentType: JobEmploymentType, readonly title: string, readonly chapter: string, readonly corporate: JobCorporate | undefined, readonly priorExperience: JobPriorExperience, readonly tags: ReadonlyArray, readonly absoluteUrl: string, readonly departments: ReadonlyArray<{ readonly id: string }> }> }, readonly allJobDepartment: { readonly nodes: ReadonlyArray<{ readonly id: string, readonly name: string, readonly slug: string | undefined, readonly jobPosts: ReadonlyArray<{ readonly id: string }> }> }, readonly allJobPost: { readonly totalCount: number, readonly allEmploymentType: ReadonlyArray<{ readonly fieldValue: string | undefined }> } }; +type TeamWebsite_FaqPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly faq_page_meta_title: string | undefined, readonly faq_page_meta_description: string | undefined, readonly faq_page_title: { readonly text: string | undefined } | undefined, readonly faq_page_entries: ReadonlyArray<{ readonly faq_category_title: string | undefined, readonly faq_page: { readonly id: string | undefined, readonly uid: string | undefined, readonly document: { readonly data: { readonly display_name: string | undefined } } | {} | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicFaq: { readonly uid: string, readonly data: { readonly entries: ReadonlyArray<{ readonly question: string | undefined, readonly keywords: string | undefined, readonly answer: { readonly text: string | undefined, readonly html: string | undefined } | undefined } | undefined> | undefined } } | undefined }; -type TeamWebsite_FaqPageQueryVariables = Exact<{ +type TeamWebsite_JobPostPageQueryVariables = Exact<{ id: Scalars['String']; locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_FaqPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly faq_page_meta_title: string | undefined, readonly faq_page_meta_description: string | undefined, readonly faq_page_title: { readonly text: string | undefined } | undefined, readonly faq_page_entries: ReadonlyArray<{ readonly faq_category_title: string | undefined, readonly faq_page: { readonly id: string | undefined, readonly uid: string | undefined, readonly document: { readonly data: { readonly display_name: string | undefined } } | {} | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicFaq: { readonly uid: string, readonly data: { readonly entries: ReadonlyArray<{ readonly question: string | undefined, readonly keywords: string | undefined, readonly answer: { readonly text: string | undefined, readonly html: string | undefined } | undefined } | undefined> | undefined } } | undefined }; +type TeamWebsite_JobPostPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly jobs_page_meta_title: string | undefined, readonly jobs_page_meta_description: string | undefined, readonly jobs_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly jobs_page_title: { readonly text: string | undefined } | undefined, readonly faq_page_entries: ReadonlyArray<{ readonly faq_page: { readonly uid: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly jobPost: { readonly title: string, readonly validThrough: string | undefined, readonly priorExperience: JobPriorExperience, readonly corporate: JobCorporate | undefined, readonly id: string, readonly ghId: string, readonly employmentType: JobEmploymentType, readonly externalUrl: string | undefined, readonly datePosted: string, readonly content: ReadonlyArray<{ readonly title: string, readonly bodyHtml: string }> } | undefined }; -type TeamWebsite_JobApplicationPageQueryVariables = Exact<{ - id: Scalars['String']; +type TeamWebsite_JobsPageTemplateQueryVariables = Exact<{ + departmentId: Scalars['String']; locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_JobApplicationPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly jobs_page_meta_title: string | undefined, readonly jobs_page_meta_description: string | undefined, readonly jobs_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly jobs_page_title: { readonly text: string | undefined } | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly jobPost: { readonly title: string, readonly validThrough: string | undefined, readonly priorExperience: JobPriorExperience, readonly corporate: JobCorporate | undefined, readonly id: string, readonly ghId: string, readonly employmentType: JobEmploymentType, readonly externalUrl: string | undefined, readonly boardToken: string, readonly datePosted: string, readonly parentJob: { readonly questions: ReadonlyArray<{ readonly __typename: 'GreenhouseJobBoardJobQuestionForAttachment', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForLongText', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForMultiSelect', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined, readonly options: ReadonlyArray<{ readonly label: string, readonly value: string }> } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForShortText', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForSingleSelect', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined, readonly options: ReadonlyArray<{ readonly label: string, readonly value: string }> } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForYesNo', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined, readonly options: ReadonlyArray<{ readonly label: string, readonly value: string }> }> } } | undefined, readonly privacyPolicy: { readonly id: string, readonly data: { readonly content: { readonly html: string | undefined } | undefined } } | undefined, readonly sensitiveInfoPolicy: { readonly id: string, readonly data: { readonly content: { readonly html: string | undefined } | undefined } } | undefined }; +type TeamWebsite_JobsPageTemplateQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly jobs_page_meta_title: string | undefined, readonly jobs_page_meta_description: string | undefined, readonly jobs_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly jobs_page_title: { readonly text: string | undefined } | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly currentJobDepartment: { readonly name: string } | undefined, readonly allSelectedJobPost: { readonly nodes: ReadonlyArray<{ readonly id: string, readonly ghId: string, readonly externalUrl: string | undefined, readonly order: number, readonly employmentType: JobEmploymentType, readonly title: string, readonly chapter: string, readonly corporate: JobCorporate | undefined, readonly priorExperience: JobPriorExperience, readonly tags: ReadonlyArray, readonly absoluteUrl: string, readonly departments: ReadonlyArray<{ readonly id: string }> }> }, readonly allJobDepartment: { readonly nodes: ReadonlyArray<{ readonly id: string, readonly name: string, readonly slug: string | undefined, readonly jobPosts: ReadonlyArray<{ readonly id: string }> }> }, readonly allJobPost: { readonly totalCount: number, readonly allEmploymentType: ReadonlyArray<{ readonly fieldValue: string | undefined }> } }; -type TeamWebsite_JobPostPageQueryVariables = Exact<{ - id: Scalars['String']; +type TeamWebsite_LifePageQueryVariables = Exact<{ locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_JobPostPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly jobs_page_meta_title: string | undefined, readonly jobs_page_meta_description: string | undefined, readonly jobs_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly jobs_page_title: { readonly text: string | undefined } | undefined, readonly faq_page_entries: ReadonlyArray<{ readonly faq_page: { readonly uid: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly jobPost: { readonly title: string, readonly validThrough: string | undefined, readonly priorExperience: JobPriorExperience, readonly corporate: JobCorporate | undefined, readonly id: string, readonly ghId: string, readonly employmentType: JobEmploymentType, readonly externalUrl: string | undefined, readonly datePosted: string, readonly content: ReadonlyArray<{ readonly title: string, readonly bodyHtml: string }> } | undefined }; +type TeamWebsite_LifePageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly life_page_meta_title: string | undefined, readonly life_page_meta_description: string | undefined, readonly life_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly life_page_title: { readonly text: string | undefined } | undefined, readonly life_body: ReadonlyArray<{ readonly __typename: 'PrismicTeamContentsDataLifeBodyKeyVisual' } | { readonly __typename: 'PrismicTeamContentsDataLifeBodyLifeContent', readonly primary: { readonly title: { readonly text: string | undefined } | undefined, readonly body_text: { readonly html: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly thumbnail_description: { readonly text: string | undefined } | undefined, readonly thumbnail_image: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined }> }> } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; -type TeamWebsite_LifePageQueryVariables = Exact<{ +type TeamWebsite_JobApplicationPageQueryVariables = Exact<{ + id: Scalars['String']; locale: Scalars['String']; navigationId: Scalars['String']; }>; -type TeamWebsite_LifePageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly life_page_meta_title: string | undefined, readonly life_page_meta_description: string | undefined, readonly life_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly life_page_title: { readonly text: string | undefined } | undefined, readonly life_body: ReadonlyArray<{ readonly __typename: 'PrismicTeamContentsDataLifeBodyKeyVisual' } | { readonly __typename: 'PrismicTeamContentsDataLifeBodyLifeContent', readonly primary: { readonly title: { readonly text: string | undefined } | undefined, readonly body_text: { readonly html: string | undefined } | undefined }, readonly items: ReadonlyArray<{ readonly thumbnail_description: { readonly text: string | undefined } | undefined, readonly thumbnail_image: { readonly alt: string | undefined, readonly localFile: { readonly childImageSharp: { readonly gatsbyImageData: any } | undefined } | undefined } | undefined }> }> } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined }; +type TeamWebsite_JobApplicationPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined, readonly jobs_page_meta_title: string | undefined, readonly jobs_page_meta_description: string | undefined, readonly jobs_page_meta_image: { readonly localFile: { readonly childImageSharp: { readonly fixed: { readonly src: string, readonly width: number, readonly height: number } | undefined } | undefined } | undefined } | undefined, readonly jobs_page_title: { readonly text: string | undefined } | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly jobPost: { readonly title: string, readonly validThrough: string | undefined, readonly priorExperience: JobPriorExperience, readonly corporate: JobCorporate | undefined, readonly id: string, readonly ghId: string, readonly employmentType: JobEmploymentType, readonly externalUrl: string | undefined, readonly boardToken: string, readonly datePosted: string, readonly parentJob: { readonly questions: ReadonlyArray<{ readonly __typename: 'GreenhouseJobBoardJobQuestionForAttachment', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForLongText', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForMultiSelect', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined, readonly options: ReadonlyArray<{ readonly label: string, readonly value: string }> } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForShortText', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForSingleSelect', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined, readonly options: ReadonlyArray<{ readonly label: string, readonly value: string }> } | { readonly __typename: 'GreenhouseJobBoardJobQuestionForYesNo', readonly name: string, readonly label: string, readonly required: boolean, readonly description: string | undefined, readonly options: ReadonlyArray<{ readonly label: string, readonly value: string }> }> } } | undefined, readonly privacyPolicy: { readonly id: string, readonly data: { readonly content: { readonly html: string | undefined } | undefined } } | undefined, readonly sensitiveInfoPolicy: { readonly id: string, readonly data: { readonly content: { readonly html: string | undefined } | undefined } } | undefined }; type TeamWebsite_TeamsArticlePageQueryVariables = Exact<{ uid: Scalars['String']; @@ -17039,5 +17054,13 @@ type UseFlexSearchIndexStaticQueryVariables = Exact<{ [key: string]: never; }>; type UseFlexSearchIndexStaticQuery = { readonly localSearchJobPosts: { readonly publicIndexURL: string } | undefined }; +type IrListPageQueryVariables = Exact<{ + locale: Scalars['String']; + navigationId: Scalars['String']; +}>; + + +type IrListPageQuery = { readonly site: { readonly siteMetadata: { readonly locale: string } } | undefined, readonly prismicTeamContents: { readonly _previewable: string, readonly data: { readonly fb_app_id: string | undefined, readonly twitter_site_handle: string | undefined } } | undefined, readonly prismicSiteNavigation: { readonly _previewable: string, readonly data: { readonly header_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly sns_profiles: ReadonlyArray<{ readonly service: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined, readonly copyright: { readonly html: string | undefined } | undefined, readonly contact_group: ReadonlyArray<{ readonly contact_info: { readonly html: string | undefined } | undefined } | undefined> | undefined, readonly footer_entries: ReadonlyArray<{ readonly display_text: string | undefined, readonly link: { readonly url: string | undefined } | undefined } | undefined> | undefined } } | undefined, readonly allPrismicIr: { readonly nodes: ReadonlyArray<{ readonly uid: string, readonly first_publication_date: string, readonly data: { readonly title: { readonly text: string | undefined } | undefined } }> } }; + } diff --git a/team.daangn.com/src/pages/ir.tsx b/team.daangn.com/src/pages/ir.tsx new file mode 100644 index 000000000..41e5ca6b7 --- /dev/null +++ b/team.daangn.com/src/pages/ir.tsx @@ -0,0 +1,124 @@ +import * as React from 'react'; +import { rem } from 'polished'; +import type { PageProps } from 'gatsby'; +import { graphql, Link } from 'gatsby'; +import { GatsbySeo } from 'gatsby-plugin-next-seo'; +import { styled } from 'gatsby-theme-stitches/src/config'; +import { vars } from '@seed-design/design-token'; +import PageTitle from '@karrotmarket/gatsby-theme-team-website/src/components/PageTitle'; +import FadeInWhenVisible from '@karrotmarket/gatsby-theme-team-website/src/components/FadeInWhenVisible'; + +type IrListPageProps = PageProps; + +export const query = graphql` + query IrListPage( + $locale: String! + $navigationId: String! + ) { + ...TeamWebsite_DefaultLayout_query + + allPrismicIr( + filter: { + uid: { + ne: null + } + tags: { + in: ["team.daangn.com"] + } + } + ) { + nodes { + uid + first_publication_date(locale: "ko", formatString: "YYYY-MM-DD") + data { + title { + text + } + } + } + } + } +`; + +const Container = styled('main', { + contentArea: true, +}); + +const Content = styled('div', { + display: 'grid', + position: 'relative', +}); + +const IrList = styled('ul', { + listStyle: 'none', + padding: 0, +}); + +const IrListItem = styled('li', { + display: 'grid', + borderBottom: `1px solid ${vars.$scale.color.gray200}`, +}); + +const IrLink = styled(Link, { + display: 'flex', + paddingY: '1.5rem', + alignItems: 'center', + justifyContent: 'space-between', + textDecoration: 'none', + color: 'inherit', +}); + +const IrTitle = styled('span', { + typography: '$subtitle2', + fontWeight: 'bold', + '&:hover': { + color: vars.$scale.color.gray600, + }, + '@media not (prefers-reduced-motion: reduce)': { + transition: 'color .3s', + }, +}); + +const IrPublicationDate = styled('time', { + color: vars.$scale.color.gray600, +}); + +const IrListPage: React.FC = ({ + data, +}) => { + return ( + + + + Investor Relations + + + + {data.allPrismicIr.nodes.map(ir => ( + + + + + {ir.data.title?.text} + + + {ir.first_publication_date} + + + + + ))} + + + + ); +}; + +export default IrListPage; diff --git a/team.daangn.com/src/templates/IrPage.tsx b/team.daangn.com/src/templates/IrPage.tsx new file mode 100644 index 000000000..465b30c2d --- /dev/null +++ b/team.daangn.com/src/templates/IrPage.tsx @@ -0,0 +1,241 @@ +/// + +import * as React from 'react'; +import { rem } from 'polished'; +import type { PageProps } from 'gatsby'; +import { + graphql, + navigate, + withPrefix, + Link, +} from 'gatsby'; +import { styled } from 'gatsby-theme-stitches/src/config'; +import { GatsbySeo } from 'gatsby-plugin-next-seo'; +import { required } from '@cometjs/core'; +import { mapAbstractTypeWithDefault } from '@cometjs/graphql-utils'; +import { vars } from '@seed-design/design-token'; +import PageTitle from '@karrotmarket/gatsby-theme-team-website/src/components/PageTitle'; +import { ReactComponent as BackwardSvg } from '@karrotmarket/gatsby-theme-team-website/src/assets/backwardOutlineM.svg'; + +type IrPageProps = PageProps; + +export const query = graphql` + query IrPage( + $uid: String! + $locale: String! + $navigationId: String! + ) { + ...TeamWebsite_DefaultLayout_query + + prismicIr(uid: { eq: $uid }) { + uid + first_publication_date(locale: "ko", formatString: "YYYY-MM-DD") + data { + title { + text + } + attachment_group { + file { + #localFile { + # base + # publicURL + #} + # See https://github.com/gatsbyjs/gatsby/issues/35636 + localFileFixed { + base + publicURL + } + } + } + body { + __typename + ... on PrismicIrDataBodyMainText { + id + primary { + text { + html + } + } + } + ... on PrismicIrDataBodySupplementaryText { + id + primary { + text { + html + } + } + } + } + } + } + } +`; + +const Container = styled('div', { + contentArea: true, + maxWidth: rem(760), +}); + +const PreviousLink = styled(Link, { + display: 'inline-block', + color: vars.$scale.color.gray900, + width: rem(36), + height: rem(36), + cursor: 'pointer', + marginBottom: rem(20), + + transition: 'opacity 0.2s ease-in-out', + '&:hover': { + opacity: 0.64, + }, + + '@sm': { + marginBottom: rem(36) + }, +}) + +const Content = styled('article', { + display: 'grid', + gap: '4.5rem', +}); + +const ContentHeader = styled('header', { + display: 'grid', + gap: '1rem', +}); + +const Properties = styled('div', { + typography: '$body2', + display: 'flex', + flexWrap: 'wrap', + gap: '1rem', +}); + +const Property = styled('span', { + display: 'inline-flex', + gap: '0.5rem', +}); + +const Body = styled('main', { + display: 'grid', + gap: '1.5rem', + '& h2': { + marginBottom: '1.5rem', + }, +}); + +const MainText = styled('div', { + typography: '$body1', +}); + +const SupplementaryText = styled('div', { + typography: '$body2', + textAlign: 'center', +}); + +const AttachmentSection = styled('section', { + display: 'grid', + gap: '1rem', +}); + +const AttachmentSectionTitle = styled('h2', { +}); + +const FileList = styled('ul', { +}); + +const FileListItem = styled('li', { +}); + +const File = styled('a', { +}); + +const IrPage: React.FC = ({ + data, +}) => { + required(data.prismicIr); + + const attachments = data.prismicIr.data.attachment_group + ?.filter(attachment => attachment?.file?.localFileFixed?.publicURL) + ?? []; + + return ( + + + { + if (window.history.state['fromList']) { + e.preventDefault(); + navigate(-1); + } + }} + > + + + + + + {data.prismicIr.data.title?.text} + + + + 게시일 + {data.prismicIr.first_publication_date} + + + + + {data.prismicIr.data.body.map(block => mapAbstractTypeWithDefault(block, { + PrismicIrDataBodyMainText: block => ( + + ), + PrismicIrDataBodySupplementaryText: block => ( + + ), + _: null, + }))} + + {attachments.length > 0 && ( + + + 첨부파일 다운로드 + + + {attachments.map((attachment, i) => { + const file = attachment!.file!.localFileFixed!; + const href = withPrefix(file.publicURL!); + const base = decodeURIComponent(stripUUID(file.base)); + return ( + + + {base} + + + ) + })} + + + )} + + + ); +}; + +export default IrPage; + +function stripUUID(base: string) { + return base.replace(/[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}_?/, ''); +} diff --git a/team.daangn.com/src/templates/irPage/AttachmentGroup.tsx b/team.daangn.com/src/templates/irPage/AttachmentGroup.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/team.daangn.com/src/templates/irPage/MainText.tsx b/team.daangn.com/src/templates/irPage/MainText.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/team.daangn.com/src/templates/irPage/SupplementaryText.tsx b/team.daangn.com/src/templates/irPage/SupplementaryText.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/yarn.lock b/yarn.lock index 28e4292a8..1a94a684a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18808,6 +18808,7 @@ __metadata: "@karrotmarket/gatsby-source-greenhouse-jobboard": 0.6.0 "@karrotmarket/gatsby-theme-team-website": "workspace:^" "@karrotmarket/gatsby-transformer-job-post": "workspace:^" + "@seed-design/design-token": alpha "@types/dotenv-safe": 8.1.2 "@types/node": 16.11.33 "@types/react": 17.0.44