chore: add privacy policy and term of use
This commit is contained in:
@@ -585,39 +585,50 @@ input PaginationArg {
|
|||||||
start: Int
|
start: Int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum PublicationFilter {
|
||||||
|
HAS_PUBLISHED_VERSION
|
||||||
|
HAS_PUBLISHED_VERSION_DOCUMENT
|
||||||
|
MODIFIED
|
||||||
|
NEVER_PUBLISHED
|
||||||
|
NEVER_PUBLISHED_DOCUMENT
|
||||||
|
PUBLISHED_WITHOUT_DRAFT
|
||||||
|
PUBLISHED_WITH_DRAFT
|
||||||
|
UNMODIFIED
|
||||||
|
}
|
||||||
|
|
||||||
enum PublicationStatus {
|
enum PublicationStatus {
|
||||||
DRAFT
|
DRAFT
|
||||||
PUBLISHED
|
PUBLISHED
|
||||||
}
|
}
|
||||||
|
|
||||||
type Query {
|
type Query {
|
||||||
categories(filters: CategoryFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [Category]!
|
categories(filters: CategoryFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [Category]!
|
||||||
categories_connection(filters: CategoryFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): CategoryEntityResponseCollection
|
categories_connection(filters: CategoryFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): CategoryEntityResponseCollection
|
||||||
category(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): Category
|
category(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): Category
|
||||||
homePage(hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): HomePage
|
homePage(hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): HomePage
|
||||||
i18NLocale(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): I18NLocale
|
i18NLocale(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): I18NLocale
|
||||||
i18NLocales(filters: I18NLocaleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [I18NLocale]!
|
i18NLocales(filters: I18NLocaleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [I18NLocale]!
|
||||||
i18NLocales_connection(filters: I18NLocaleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): I18NLocaleEntityResponseCollection
|
i18NLocales_connection(filters: I18NLocaleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): I18NLocaleEntityResponseCollection
|
||||||
me: UsersPermissionsMe
|
me: UsersPermissionsMe
|
||||||
reviewWorkflowsWorkflow(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflow
|
reviewWorkflowsWorkflow(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflow
|
||||||
reviewWorkflowsWorkflowStage(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflowStage
|
reviewWorkflowsWorkflowStage(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflowStage
|
||||||
reviewWorkflowsWorkflowStages(filters: ReviewWorkflowsWorkflowStageFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [ReviewWorkflowsWorkflowStage]!
|
reviewWorkflowsWorkflowStages(filters: ReviewWorkflowsWorkflowStageFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [ReviewWorkflowsWorkflowStage]!
|
||||||
reviewWorkflowsWorkflowStages_connection(filters: ReviewWorkflowsWorkflowStageFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflowStageEntityResponseCollection
|
reviewWorkflowsWorkflowStages_connection(filters: ReviewWorkflowsWorkflowStageFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflowStageEntityResponseCollection
|
||||||
reviewWorkflowsWorkflows(filters: ReviewWorkflowsWorkflowFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [ReviewWorkflowsWorkflow]!
|
reviewWorkflowsWorkflows(filters: ReviewWorkflowsWorkflowFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [ReviewWorkflowsWorkflow]!
|
||||||
reviewWorkflowsWorkflows_connection(filters: ReviewWorkflowsWorkflowFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflowEntityResponseCollection
|
reviewWorkflowsWorkflows_connection(filters: ReviewWorkflowsWorkflowFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): ReviewWorkflowsWorkflowEntityResponseCollection
|
||||||
siteConfig(hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): SiteConfig
|
siteConfig(hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): SiteConfig
|
||||||
uploadFile(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): UploadFile
|
uploadFile(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): UploadFile
|
||||||
uploadFiles(filters: UploadFileFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [UploadFile]!
|
uploadFiles(filters: UploadFileFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [UploadFile]!
|
||||||
uploadFiles_connection(filters: UploadFileFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): UploadFileEntityResponseCollection
|
uploadFiles_connection(filters: UploadFileFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): UploadFileEntityResponseCollection
|
||||||
usersPermissionsRole(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): UsersPermissionsRole
|
usersPermissionsRole(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): UsersPermissionsRole
|
||||||
usersPermissionsRoles(filters: UsersPermissionsRoleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [UsersPermissionsRole]!
|
usersPermissionsRoles(filters: UsersPermissionsRoleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [UsersPermissionsRole]!
|
||||||
usersPermissionsRoles_connection(filters: UsersPermissionsRoleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): UsersPermissionsRoleEntityResponseCollection
|
usersPermissionsRoles_connection(filters: UsersPermissionsRoleFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): UsersPermissionsRoleEntityResponseCollection
|
||||||
usersPermissionsUser(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): UsersPermissionsUser
|
usersPermissionsUser(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): UsersPermissionsUser
|
||||||
usersPermissionsUsers(filters: UsersPermissionsUserFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [UsersPermissionsUser]!
|
usersPermissionsUsers(filters: UsersPermissionsUserFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [UsersPermissionsUser]!
|
||||||
usersPermissionsUsers_connection(filters: UsersPermissionsUserFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): UsersPermissionsUserEntityResponseCollection
|
usersPermissionsUsers_connection(filters: UsersPermissionsUserFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): UsersPermissionsUserEntityResponseCollection
|
||||||
vendor(documentId: ID!, hasPublishedVersion: Boolean, status: PublicationStatus = PUBLISHED): Vendor
|
vendor(documentId: ID!, hasPublishedVersion: Boolean, publicationFilter: PublicationFilter, status: PublicationStatus = PUBLISHED): Vendor
|
||||||
vendors(filters: VendorFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): [Vendor]!
|
vendors(filters: VendorFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): [Vendor]!
|
||||||
vendors_connection(filters: VendorFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, sort: [String] = [], status: PublicationStatus = PUBLISHED): VendorEntityResponseCollection
|
vendors_connection(filters: VendorFiltersInput, hasPublishedVersion: Boolean, pagination: PaginationArg = {}, publicationFilter: PublicationFilter, sort: [String] = [], status: PublicationStatus = PUBLISHED): VendorEntityResponseCollection
|
||||||
}
|
}
|
||||||
|
|
||||||
type ReviewWorkflowsWorkflow {
|
type ReviewWorkflowsWorkflow {
|
||||||
@@ -703,7 +714,9 @@ type SiteConfig {
|
|||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
description: String
|
description: String
|
||||||
documentId: ID!
|
documentId: ID!
|
||||||
|
privacyPolicy: UploadFile
|
||||||
publishedAt: DateTime
|
publishedAt: DateTime
|
||||||
|
termsOfUse: UploadFile
|
||||||
title: String!
|
title: String!
|
||||||
updatedAt: DateTime
|
updatedAt: DateTime
|
||||||
}
|
}
|
||||||
@@ -711,7 +724,9 @@ type SiteConfig {
|
|||||||
input SiteConfigInput {
|
input SiteConfigInput {
|
||||||
contacts: [ComponentSharedContactInput]
|
contacts: [ComponentSharedContactInput]
|
||||||
description: String
|
description: String
|
||||||
|
privacyPolicy: ID
|
||||||
publishedAt: DateTime
|
publishedAt: DateTime
|
||||||
|
termsOfUse: ID
|
||||||
title: String
|
title: String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10580
src/api/paths.ts
10580
src/api/paths.ts
File diff suppressed because it is too large
Load Diff
10
src/env.d.ts
vendored
10
src/env.d.ts
vendored
@@ -1 +1,11 @@
|
|||||||
/// <reference types="astro/client" />
|
/// <reference types="astro/client" />
|
||||||
|
|
||||||
|
interface ImportMetaEnv {
|
||||||
|
readonly PUBLIC_API_URL: string
|
||||||
|
readonly PUBLIC_GRAPHQL_URL: string
|
||||||
|
readonly PUBLIC_UPLOADS_BASE_URL: string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImportMeta {
|
||||||
|
readonly env: ImportMetaEnv
|
||||||
|
}
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ export const siteConfigDocument = gql`
|
|||||||
value
|
value
|
||||||
displayValue
|
displayValue
|
||||||
}
|
}
|
||||||
|
privacyPolicy {
|
||||||
|
url
|
||||||
|
}
|
||||||
|
termsOfUse {
|
||||||
|
url
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
|
|||||||
@@ -825,6 +825,17 @@ export type PaginationArg = {
|
|||||||
start?: InputMaybe<Scalars['Int']['input']>;
|
start?: InputMaybe<Scalars['Int']['input']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export enum PublicationFilter {
|
||||||
|
HasPublishedVersion = 'HAS_PUBLISHED_VERSION',
|
||||||
|
HasPublishedVersionDocument = 'HAS_PUBLISHED_VERSION_DOCUMENT',
|
||||||
|
Modified = 'MODIFIED',
|
||||||
|
NeverPublished = 'NEVER_PUBLISHED',
|
||||||
|
NeverPublishedDocument = 'NEVER_PUBLISHED_DOCUMENT',
|
||||||
|
PublishedWithoutDraft = 'PUBLISHED_WITHOUT_DRAFT',
|
||||||
|
PublishedWithDraft = 'PUBLISHED_WITH_DRAFT',
|
||||||
|
Unmodified = 'UNMODIFIED'
|
||||||
|
}
|
||||||
|
|
||||||
export enum PublicationStatus {
|
export enum PublicationStatus {
|
||||||
Draft = 'DRAFT',
|
Draft = 'DRAFT',
|
||||||
Published = 'PUBLISHED'
|
Published = 'PUBLISHED'
|
||||||
@@ -866,6 +877,7 @@ export type QueryCategoriesArgs = {
|
|||||||
filters?: InputMaybe<CategoryFiltersInput>;
|
filters?: InputMaybe<CategoryFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -875,6 +887,7 @@ export type QueryCategories_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<CategoryFiltersInput>;
|
filters?: InputMaybe<CategoryFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -883,12 +896,14 @@ export type QueryCategories_ConnectionArgs = {
|
|||||||
export type QueryCategoryArgs = {
|
export type QueryCategoryArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
export type QueryHomePageArgs = {
|
export type QueryHomePageArgs = {
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -896,6 +911,7 @@ export type QueryHomePageArgs = {
|
|||||||
export type QueryI18NLocaleArgs = {
|
export type QueryI18NLocaleArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -904,6 +920,7 @@ export type QueryI18NLocalesArgs = {
|
|||||||
filters?: InputMaybe<I18NLocaleFiltersInput>;
|
filters?: InputMaybe<I18NLocaleFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -913,6 +930,7 @@ export type QueryI18NLocales_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<I18NLocaleFiltersInput>;
|
filters?: InputMaybe<I18NLocaleFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -921,6 +939,7 @@ export type QueryI18NLocales_ConnectionArgs = {
|
|||||||
export type QueryReviewWorkflowsWorkflowArgs = {
|
export type QueryReviewWorkflowsWorkflowArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -928,6 +947,7 @@ export type QueryReviewWorkflowsWorkflowArgs = {
|
|||||||
export type QueryReviewWorkflowsWorkflowStageArgs = {
|
export type QueryReviewWorkflowsWorkflowStageArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -936,6 +956,7 @@ export type QueryReviewWorkflowsWorkflowStagesArgs = {
|
|||||||
filters?: InputMaybe<ReviewWorkflowsWorkflowStageFiltersInput>;
|
filters?: InputMaybe<ReviewWorkflowsWorkflowStageFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -945,6 +966,7 @@ export type QueryReviewWorkflowsWorkflowStages_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<ReviewWorkflowsWorkflowStageFiltersInput>;
|
filters?: InputMaybe<ReviewWorkflowsWorkflowStageFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -954,6 +976,7 @@ export type QueryReviewWorkflowsWorkflowsArgs = {
|
|||||||
filters?: InputMaybe<ReviewWorkflowsWorkflowFiltersInput>;
|
filters?: InputMaybe<ReviewWorkflowsWorkflowFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -963,6 +986,7 @@ export type QueryReviewWorkflowsWorkflows_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<ReviewWorkflowsWorkflowFiltersInput>;
|
filters?: InputMaybe<ReviewWorkflowsWorkflowFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -970,6 +994,7 @@ export type QueryReviewWorkflowsWorkflows_ConnectionArgs = {
|
|||||||
|
|
||||||
export type QuerySiteConfigArgs = {
|
export type QuerySiteConfigArgs = {
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -977,6 +1002,7 @@ export type QuerySiteConfigArgs = {
|
|||||||
export type QueryUploadFileArgs = {
|
export type QueryUploadFileArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -985,6 +1011,7 @@ export type QueryUploadFilesArgs = {
|
|||||||
filters?: InputMaybe<UploadFileFiltersInput>;
|
filters?: InputMaybe<UploadFileFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -994,6 +1021,7 @@ export type QueryUploadFiles_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<UploadFileFiltersInput>;
|
filters?: InputMaybe<UploadFileFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1002,6 +1030,7 @@ export type QueryUploadFiles_ConnectionArgs = {
|
|||||||
export type QueryUsersPermissionsRoleArgs = {
|
export type QueryUsersPermissionsRoleArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1010,6 +1039,7 @@ export type QueryUsersPermissionsRolesArgs = {
|
|||||||
filters?: InputMaybe<UsersPermissionsRoleFiltersInput>;
|
filters?: InputMaybe<UsersPermissionsRoleFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1019,6 +1049,7 @@ export type QueryUsersPermissionsRoles_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<UsersPermissionsRoleFiltersInput>;
|
filters?: InputMaybe<UsersPermissionsRoleFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1027,6 +1058,7 @@ export type QueryUsersPermissionsRoles_ConnectionArgs = {
|
|||||||
export type QueryUsersPermissionsUserArgs = {
|
export type QueryUsersPermissionsUserArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1035,6 +1067,7 @@ export type QueryUsersPermissionsUsersArgs = {
|
|||||||
filters?: InputMaybe<UsersPermissionsUserFiltersInput>;
|
filters?: InputMaybe<UsersPermissionsUserFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1044,6 +1077,7 @@ export type QueryUsersPermissionsUsers_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<UsersPermissionsUserFiltersInput>;
|
filters?: InputMaybe<UsersPermissionsUserFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1052,6 +1086,7 @@ export type QueryUsersPermissionsUsers_ConnectionArgs = {
|
|||||||
export type QueryVendorArgs = {
|
export type QueryVendorArgs = {
|
||||||
documentId: Scalars['ID']['input'];
|
documentId: Scalars['ID']['input'];
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1060,6 +1095,7 @@ export type QueryVendorsArgs = {
|
|||||||
filters?: InputMaybe<VendorFiltersInput>;
|
filters?: InputMaybe<VendorFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1069,6 +1105,7 @@ export type QueryVendors_ConnectionArgs = {
|
|||||||
filters?: InputMaybe<VendorFiltersInput>;
|
filters?: InputMaybe<VendorFiltersInput>;
|
||||||
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
hasPublishedVersion?: InputMaybe<Scalars['Boolean']['input']>;
|
||||||
pagination?: InputMaybe<PaginationArg>;
|
pagination?: InputMaybe<PaginationArg>;
|
||||||
|
publicationFilter?: InputMaybe<PublicationFilter>;
|
||||||
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
sort?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;
|
||||||
status?: InputMaybe<PublicationStatus>;
|
status?: InputMaybe<PublicationStatus>;
|
||||||
};
|
};
|
||||||
@@ -1176,7 +1213,9 @@ export type SiteConfig = {
|
|||||||
createdAt?: Maybe<Scalars['DateTime']['output']>;
|
createdAt?: Maybe<Scalars['DateTime']['output']>;
|
||||||
description?: Maybe<Scalars['String']['output']>;
|
description?: Maybe<Scalars['String']['output']>;
|
||||||
documentId: Scalars['ID']['output'];
|
documentId: Scalars['ID']['output'];
|
||||||
|
privacyPolicy?: Maybe<UploadFile>;
|
||||||
publishedAt?: Maybe<Scalars['DateTime']['output']>;
|
publishedAt?: Maybe<Scalars['DateTime']['output']>;
|
||||||
|
termsOfUse?: Maybe<UploadFile>;
|
||||||
title: Scalars['String']['output'];
|
title: Scalars['String']['output'];
|
||||||
updatedAt?: Maybe<Scalars['DateTime']['output']>;
|
updatedAt?: Maybe<Scalars['DateTime']['output']>;
|
||||||
};
|
};
|
||||||
@@ -1191,7 +1230,9 @@ export type SiteConfigContactsArgs = {
|
|||||||
export type SiteConfigInput = {
|
export type SiteConfigInput = {
|
||||||
contacts?: InputMaybe<Array<InputMaybe<ComponentSharedContactInput>>>;
|
contacts?: InputMaybe<Array<InputMaybe<ComponentSharedContactInput>>>;
|
||||||
description?: InputMaybe<Scalars['String']['input']>;
|
description?: InputMaybe<Scalars['String']['input']>;
|
||||||
|
privacyPolicy?: InputMaybe<Scalars['ID']['input']>;
|
||||||
publishedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
publishedAt?: InputMaybe<Scalars['DateTime']['input']>;
|
||||||
|
termsOfUse?: InputMaybe<Scalars['ID']['input']>;
|
||||||
title?: InputMaybe<Scalars['String']['input']>;
|
title?: InputMaybe<Scalars['String']['input']>;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1586,7 +1627,7 @@ export type MenuItemsQuery = { __typename?: 'Query', categories: Array<{ __typen
|
|||||||
export type SiteConfigQueryVariables = Exact<{ [key: string]: never; }>;
|
export type SiteConfigQueryVariables = Exact<{ [key: string]: never; }>;
|
||||||
|
|
||||||
|
|
||||||
export type SiteConfigQuery = { __typename?: 'Query', siteConfig?: { __typename?: 'SiteConfig', title: string, description?: string | null, contacts?: Array<{ __typename?: 'ComponentSharedContact', id: string, type: Enum_Componentsharedcontact_Type, value: string, displayValue?: string | null } | null> | null } | null };
|
export type SiteConfigQuery = { __typename?: 'Query', siteConfig?: { __typename?: 'SiteConfig', title: string, description?: string | null, contacts?: Array<{ __typename?: 'ComponentSharedContact', id: string, type: Enum_Componentsharedcontact_Type, value: string, displayValue?: string | null } | null> | null, privacyPolicy?: { __typename?: 'UploadFile', url: string } | null, termsOfUse?: { __typename?: 'UploadFile', url: string } | null } | null };
|
||||||
|
|
||||||
export class TypedDocumentString<TResult, TVariables>
|
export class TypedDocumentString<TResult, TVariables>
|
||||||
extends String
|
extends String
|
||||||
@@ -1743,6 +1784,12 @@ export const SiteConfigDocument = new TypedDocumentString(`
|
|||||||
value
|
value
|
||||||
displayValue
|
displayValue
|
||||||
}
|
}
|
||||||
|
privacyPolicy {
|
||||||
|
url
|
||||||
|
}
|
||||||
|
termsOfUse {
|
||||||
|
url
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`) as unknown as TypedDocumentString<SiteConfigQuery, SiteConfigQueryVariables>;
|
`) as unknown as TypedDocumentString<SiteConfigQuery, SiteConfigQueryVariables>;
|
||||||
25
src/lib/cms/uploads/url.ts
Normal file
25
src/lib/cms/uploads/url.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
const defaultUploadsBaseUrl = 'http://localhost:1337'
|
||||||
|
|
||||||
|
function getUploadsBaseUrl(): string {
|
||||||
|
if (typeof import.meta !== 'undefined' && import.meta.env?.PUBLIC_UPLOADS_BASE_URL) {
|
||||||
|
return import.meta.env.PUBLIC_UPLOADS_BASE_URL
|
||||||
|
}
|
||||||
|
if (typeof process !== 'undefined' && process.env.PUBLIC_UPLOADS_BASE_URL) {
|
||||||
|
return process.env.PUBLIC_UPLOADS_BASE_URL
|
||||||
|
}
|
||||||
|
return defaultUploadsBaseUrl
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Resolves Strapi-relative upload paths using {@link PUBLIC_UPLOADS_BASE_URL}. */
|
||||||
|
export function resolveUploadUrl(url: string | null | undefined): string | undefined {
|
||||||
|
if (!url) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
if (/^https?:\/\//i.test(url)) {
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
|
||||||
|
const base = getUploadsBaseUrl().replace(/\/$/, '')
|
||||||
|
const path = url.startsWith('/') ? url : `/${url}`
|
||||||
|
return `${base}${path}`
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ import { CategoryView } from '../views/CategoryView'
|
|||||||
import { siteConfigQuery } from '../graphql-documents/site-config.gql.generated'
|
import { siteConfigQuery } from '../graphql-documents/site-config.gql.generated'
|
||||||
import { menuItemsQuery } from '../graphql-documents/menu-items.gql.generated'
|
import { menuItemsQuery } from '../graphql-documents/menu-items.gql.generated'
|
||||||
import { categoryQuery } from '../graphql-documents/category.gql.generated'
|
import { categoryQuery } from '../graphql-documents/category.gql.generated'
|
||||||
|
import { resolveUploadUrl } from '../lib/cms/uploads/url'
|
||||||
|
|
||||||
const [siteResult, menuItemsResult] = await Promise.all([siteConfigQuery.execute(), menuItemsQuery.execute()])
|
const [siteResult, menuItemsResult] = await Promise.all([siteConfigQuery.execute(), menuItemsQuery.execute()])
|
||||||
if (siteResult.errors?.length) {
|
if (siteResult.errors?.length) {
|
||||||
@@ -17,6 +18,8 @@ const siteConfig = siteResult.data?.siteConfig
|
|||||||
const siteTitle = siteConfig?.title ?? ''
|
const siteTitle = siteConfig?.title ?? ''
|
||||||
const siteDescription = siteConfig?.description ?? ''
|
const siteDescription = siteConfig?.description ?? ''
|
||||||
const contacts = siteConfig?.contacts?.filter(c => c != null) ?? []
|
const contacts = siteConfig?.contacts?.filter(c => c != null) ?? []
|
||||||
|
const privacyPolicyUrl = resolveUploadUrl(siteConfig?.privacyPolicy?.url)
|
||||||
|
const termsOfUseUrl = resolveUploadUrl(siteConfig?.termsOfUse?.url)
|
||||||
if (menuItemsResult.errors?.length) {
|
if (menuItemsResult.errors?.length) {
|
||||||
throw new Error(menuItemsResult.errors.map(e => e.message).join(', '))
|
throw new Error(menuItemsResult.errors.map(e => e.message).join(', '))
|
||||||
}
|
}
|
||||||
@@ -61,6 +64,13 @@ const vendors = (category.vendors?.filter(v => v != null) ?? []).map(vendor => (
|
|||||||
<div class="min-h-screen bg-white w-full overflow-x-hidden">
|
<div class="min-h-screen bg-white w-full overflow-x-hidden">
|
||||||
<Header client:load siteTitle={siteTitle} contacts={contacts} solutions={solutionCategories} services={serviceCategories} />
|
<Header client:load siteTitle={siteTitle} contacts={contacts} solutions={solutionCategories} services={serviceCategories} />
|
||||||
<CategoryView client:load badge={badge} title={title} description={description} vendors={vendors} contacts={contacts} />
|
<CategoryView client:load badge={badge} title={title} description={description} vendors={vendors} contacts={contacts} />
|
||||||
<Footer client:load siteTitle={siteTitle} contacts={contacts} solutionCategories={solutionCategories} />
|
<Footer
|
||||||
|
client:load
|
||||||
|
siteTitle={siteTitle}
|
||||||
|
contacts={contacts}
|
||||||
|
solutionCategories={solutionCategories}
|
||||||
|
privacyPolicyUrl={privacyPolicyUrl}
|
||||||
|
termsOfUseUrl={termsOfUseUrl}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import { Enum_Category_Group } from '../graphql/graphql'
|
|||||||
import { menuItemsQuery } from '../graphql-documents/menu-items.gql.generated'
|
import { menuItemsQuery } from '../graphql-documents/menu-items.gql.generated'
|
||||||
import { homePageQuery } from '../graphql-documents/home-page.gql.generated'
|
import { homePageQuery } from '../graphql-documents/home-page.gql.generated'
|
||||||
import { siteConfigQuery } from '../graphql-documents/site-config.gql.generated'
|
import { siteConfigQuery } from '../graphql-documents/site-config.gql.generated'
|
||||||
|
import { resolveUploadUrl } from '../lib/cms/uploads/url'
|
||||||
|
|
||||||
const [homeResult, siteResult, menuItemsResult] = await Promise.all([
|
const [homeResult, siteResult, menuItemsResult] = await Promise.all([
|
||||||
homePageQuery.execute(),
|
homePageQuery.execute(),
|
||||||
@@ -30,6 +31,8 @@ const siteConfig = siteResult.data?.siteConfig
|
|||||||
const siteTitle = siteConfig?.title ?? ''
|
const siteTitle = siteConfig?.title ?? ''
|
||||||
const siteDescription = siteConfig?.description ?? ''
|
const siteDescription = siteConfig?.description ?? ''
|
||||||
const contacts = siteConfig?.contacts?.filter(c => c != null) ?? []
|
const contacts = siteConfig?.contacts?.filter(c => c != null) ?? []
|
||||||
|
const privacyPolicyUrl = resolveUploadUrl(siteConfig?.privacyPolicy?.url)
|
||||||
|
const termsOfUseUrl = resolveUploadUrl(siteConfig?.termsOfUse?.url)
|
||||||
const menuItems = (menuItemsResult.data?.categories?.filter(c => c != null) ?? []).sort(
|
const menuItems = (menuItemsResult.data?.categories?.filter(c => c != null) ?? []).sort(
|
||||||
(a, b) => a.sortOrder - b.sortOrder
|
(a, b) => a.sortOrder - b.sortOrder
|
||||||
)
|
)
|
||||||
@@ -42,6 +45,13 @@ const serviceCategories = menuItems.filter(c => c.group === Enum_Category_Group.
|
|||||||
<div class="min-h-screen bg-white w-full overflow-x-hidden">
|
<div class="min-h-screen bg-white w-full overflow-x-hidden">
|
||||||
<Header client:load siteTitle={siteTitle} contacts={contacts} solutions={solutionCategories} services={serviceCategories} />
|
<Header client:load siteTitle={siteTitle} contacts={contacts} solutions={solutionCategories} services={serviceCategories} />
|
||||||
<HomePage client:load homePage={homePage} contacts={contacts} />
|
<HomePage client:load homePage={homePage} contacts={contacts} />
|
||||||
<Footer client:load siteTitle={siteTitle} contacts={contacts} solutionCategories={solutionCategories} />
|
<Footer
|
||||||
|
client:load
|
||||||
|
siteTitle={siteTitle}
|
||||||
|
contacts={contacts}
|
||||||
|
solutionCategories={solutionCategories}
|
||||||
|
privacyPolicyUrl={privacyPolicyUrl}
|
||||||
|
termsOfUseUrl={termsOfUseUrl}
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|||||||
@@ -10,9 +10,17 @@ export interface FooterProps {
|
|||||||
siteTitle?: string
|
siteTitle?: string
|
||||||
contacts?: readonly SiteConfigContact[]
|
contacts?: readonly SiteConfigContact[]
|
||||||
solutionCategories?: CategoryNavItem[]
|
solutionCategories?: CategoryNavItem[]
|
||||||
|
privacyPolicyUrl?: string
|
||||||
|
termsOfUseUrl?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export function Footer({ siteTitle = '', contacts = [], solutionCategories = [] }: FooterProps) {
|
export function Footer({
|
||||||
|
siteTitle = '',
|
||||||
|
contacts = [],
|
||||||
|
solutionCategories = [],
|
||||||
|
privacyPolicyUrl,
|
||||||
|
termsOfUseUrl,
|
||||||
|
}: FooterProps) {
|
||||||
return (
|
return (
|
||||||
<footer className="bg-gray-900 text-gray-400 pt-20 pb-10 border-t border-gray-800">
|
<footer className="bg-gray-900 text-gray-400 pt-20 pb-10 border-t border-gray-800">
|
||||||
<div className="max-w-400 mx-auto px-6 xl:px-12 2xl:px-16">
|
<div className="max-w-400 mx-auto px-6 xl:px-12 2xl:px-16">
|
||||||
@@ -109,12 +117,26 @@ export function Footer({ siteTitle = '', contacts = [], solutionCategories = []
|
|||||||
<div className="pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center gap-4">
|
<div className="pt-8 border-t border-gray-800 flex flex-col md:flex-row justify-between items-center gap-4">
|
||||||
<div>© 2025 {siteTitle}. Все права защищены.</div>
|
<div>© 2025 {siteTitle}. Все права защищены.</div>
|
||||||
<div className="flex gap-6">
|
<div className="flex gap-6">
|
||||||
<a href="#" className="hover:text-blue-400 transition-colors">
|
{privacyPolicyUrl ? (
|
||||||
Политика конфиденциальности
|
<a
|
||||||
</a>
|
href={privacyPolicyUrl}
|
||||||
<a href="#" className="hover:text-blue-400 transition-colors">
|
target="_blank"
|
||||||
Условия использования
|
rel="noopener noreferrer"
|
||||||
</a>
|
className="hover:text-blue-400 transition-colors"
|
||||||
|
>
|
||||||
|
Политика конфиденциальности
|
||||||
|
</a>
|
||||||
|
) : null}
|
||||||
|
{termsOfUseUrl ? (
|
||||||
|
<a
|
||||||
|
href={termsOfUseUrl}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="hover:text-blue-400 transition-colors"
|
||||||
|
>
|
||||||
|
Условия использования
|
||||||
|
</a>
|
||||||
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user