Use pages from Strapi instead of hardcoded ones
This commit is contained in:
parent
8de571a030
commit
6d3a9c84b3
@ -109,6 +109,12 @@ query getWebsiteInterface($language_code: String) {
|
|||||||
translation_notice
|
translation_notice
|
||||||
source_language
|
source_language
|
||||||
pronouns
|
pronouns
|
||||||
|
no_category
|
||||||
|
item
|
||||||
|
items
|
||||||
|
content
|
||||||
|
result
|
||||||
|
results
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1142,3 +1148,77 @@ query getLanguages {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
query getPost($slug: String, $language_code: String) {
|
||||||
|
posts(filters: { slug: { eq: $slug } }) {
|
||||||
|
data {
|
||||||
|
id
|
||||||
|
attributes {
|
||||||
|
slug
|
||||||
|
publishedAt
|
||||||
|
updatedAt
|
||||||
|
authors {
|
||||||
|
data {
|
||||||
|
id
|
||||||
|
attributes {
|
||||||
|
username
|
||||||
|
anonymize
|
||||||
|
anonymous_code
|
||||||
|
pronouns
|
||||||
|
bio(filters: { language: { code: { eq: $language_code } } }) {
|
||||||
|
bio
|
||||||
|
}
|
||||||
|
languages {
|
||||||
|
data {
|
||||||
|
attributes {
|
||||||
|
code
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
avatar {
|
||||||
|
data {
|
||||||
|
attributes {
|
||||||
|
name
|
||||||
|
alternativeText
|
||||||
|
caption
|
||||||
|
width
|
||||||
|
height
|
||||||
|
url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
categories {
|
||||||
|
data {
|
||||||
|
id
|
||||||
|
attributes {
|
||||||
|
name
|
||||||
|
short
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hidden
|
||||||
|
translations(filters: { language: { code: { eq: $language_code } } }) {
|
||||||
|
Status
|
||||||
|
title
|
||||||
|
excerpt
|
||||||
|
thumbnail {
|
||||||
|
data {
|
||||||
|
attributes {
|
||||||
|
name
|
||||||
|
alternativeText
|
||||||
|
caption
|
||||||
|
width
|
||||||
|
height
|
||||||
|
url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
body
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -48,6 +48,13 @@ export enum Enum_Componentmetadatavideo_Resolution {
|
|||||||
QuadHd_2160p = "QuadHD_2160p",
|
QuadHd_2160p = "QuadHD_2160p",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export enum Enum_Componenttranslationsposts_Status {
|
||||||
|
Incomplete = "Incomplete",
|
||||||
|
Draft = "Draft",
|
||||||
|
Review = "Review",
|
||||||
|
Done = "Done",
|
||||||
|
}
|
||||||
|
|
||||||
export enum Enum_Componenttranslationschronologyitem_Status {
|
export enum Enum_Componenttranslationschronologyitem_Status {
|
||||||
Incomplete = "Incomplete",
|
Incomplete = "Incomplete",
|
||||||
Draft = "Draft",
|
Draft = "Draft",
|
||||||
@ -191,6 +198,12 @@ export type GetWebsiteInterfaceQuery = {
|
|||||||
translation_notice: string;
|
translation_notice: string;
|
||||||
source_language: string;
|
source_language: string;
|
||||||
pronouns: string;
|
pronouns: string;
|
||||||
|
no_category: string;
|
||||||
|
item: string;
|
||||||
|
items: string;
|
||||||
|
content: string;
|
||||||
|
result: string;
|
||||||
|
results: string;
|
||||||
};
|
};
|
||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
@ -1525,3 +1538,100 @@ export type GetLanguagesQuery = {
|
|||||||
}>;
|
}>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type GetPostQueryVariables = Exact<{
|
||||||
|
slug: InputMaybe<Scalars["String"]>;
|
||||||
|
language_code: InputMaybe<Scalars["String"]>;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
export type GetPostQuery = {
|
||||||
|
__typename: "Query";
|
||||||
|
posts: {
|
||||||
|
__typename: "PostEntityResponseCollection";
|
||||||
|
data: Array<{
|
||||||
|
__typename: "PostEntity";
|
||||||
|
id: string;
|
||||||
|
attributes: {
|
||||||
|
__typename: "Post";
|
||||||
|
slug: string;
|
||||||
|
publishedAt: any;
|
||||||
|
updatedAt: any;
|
||||||
|
hidden: boolean;
|
||||||
|
authors: {
|
||||||
|
__typename: "RecorderRelationResponseCollection";
|
||||||
|
data: Array<{
|
||||||
|
__typename: "RecorderEntity";
|
||||||
|
id: string;
|
||||||
|
attributes: {
|
||||||
|
__typename: "Recorder";
|
||||||
|
username: string;
|
||||||
|
anonymize: boolean;
|
||||||
|
anonymous_code: string;
|
||||||
|
pronouns: string;
|
||||||
|
bio: Array<{
|
||||||
|
__typename: "ComponentTranslationsBio";
|
||||||
|
bio: string;
|
||||||
|
}>;
|
||||||
|
languages: {
|
||||||
|
__typename: "LanguageRelationResponseCollection";
|
||||||
|
data: Array<{
|
||||||
|
__typename: "LanguageEntity";
|
||||||
|
attributes: { __typename: "Language"; code: string };
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
avatar: {
|
||||||
|
__typename: "UploadFileEntityResponse";
|
||||||
|
data: {
|
||||||
|
__typename: "UploadFileEntity";
|
||||||
|
attributes: {
|
||||||
|
__typename: "UploadFile";
|
||||||
|
name: string;
|
||||||
|
alternativeText: string;
|
||||||
|
caption: string;
|
||||||
|
width: number;
|
||||||
|
height: number;
|
||||||
|
url: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
categories: {
|
||||||
|
__typename: "CategoryRelationResponseCollection";
|
||||||
|
data: Array<{
|
||||||
|
__typename: "CategoryEntity";
|
||||||
|
id: string;
|
||||||
|
attributes: {
|
||||||
|
__typename: "Category";
|
||||||
|
name: string;
|
||||||
|
short: string;
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
translations: Array<{
|
||||||
|
__typename: "ComponentTranslationsPosts";
|
||||||
|
Status: Enum_Componenttranslationsposts_Status;
|
||||||
|
title: string;
|
||||||
|
excerpt: string;
|
||||||
|
body: string;
|
||||||
|
thumbnail: {
|
||||||
|
__typename: "UploadFileEntityResponse";
|
||||||
|
data: {
|
||||||
|
__typename: "UploadFileEntity";
|
||||||
|
attributes: {
|
||||||
|
__typename: "UploadFile";
|
||||||
|
name: string;
|
||||||
|
alternativeText: string;
|
||||||
|
caption: string;
|
||||||
|
width: number;
|
||||||
|
height: number;
|
||||||
|
url: string;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
}>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
@ -23,6 +23,8 @@ import {
|
|||||||
GetLibraryItemsPreviewQueryVariables,
|
GetLibraryItemsPreviewQueryVariables,
|
||||||
GetLibraryItemsSlugsQuery,
|
GetLibraryItemsSlugsQuery,
|
||||||
GetLibraryItemsSlugsQueryVariables,
|
GetLibraryItemsSlugsQueryVariables,
|
||||||
|
GetPostQuery,
|
||||||
|
GetPostQueryVariables,
|
||||||
GetWebsiteInterfaceQuery,
|
GetWebsiteInterfaceQuery,
|
||||||
GetWebsiteInterfaceQueryVariables,
|
GetWebsiteInterfaceQueryVariables,
|
||||||
} from "graphql/operations-types";
|
} from "graphql/operations-types";
|
||||||
@ -141,3 +143,10 @@ export async function getLanguages(
|
|||||||
const query = getQueryFromOperations("getLanguages");
|
const query = getQueryFromOperations("getLanguages");
|
||||||
return await graphQL(query, JSON.stringify(variables));
|
return await graphQL(query, JSON.stringify(variables));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function getPost(
|
||||||
|
variables: GetPostQueryVariables
|
||||||
|
): Promise<GetPostQuery> {
|
||||||
|
const query = getQueryFromOperations("getPost");
|
||||||
|
return await graphQL(query, JSON.stringify(variables));
|
||||||
|
}
|
||||||
|
@ -1060,6 +1060,8 @@ input ComponentTranslationsPostsFiltersInput {
|
|||||||
Status: StringFilterInput
|
Status: StringFilterInput
|
||||||
title: StringFilterInput
|
title: StringFilterInput
|
||||||
excerpt: StringFilterInput
|
excerpt: StringFilterInput
|
||||||
|
body: StringFilterInput
|
||||||
|
language: LanguageFiltersInput
|
||||||
and: [ComponentTranslationsPostsFiltersInput]
|
and: [ComponentTranslationsPostsFiltersInput]
|
||||||
or: [ComponentTranslationsPostsFiltersInput]
|
or: [ComponentTranslationsPostsFiltersInput]
|
||||||
not: ComponentTranslationsPostsFiltersInput
|
not: ComponentTranslationsPostsFiltersInput
|
||||||
@ -1071,6 +1073,8 @@ input ComponentTranslationsPostsInput {
|
|||||||
title: String
|
title: String
|
||||||
excerpt: String
|
excerpt: String
|
||||||
thumbnail: ID
|
thumbnail: ID
|
||||||
|
body: String
|
||||||
|
language: ID
|
||||||
}
|
}
|
||||||
|
|
||||||
type ComponentTranslationsPosts {
|
type ComponentTranslationsPosts {
|
||||||
@ -1079,6 +1083,8 @@ type ComponentTranslationsPosts {
|
|||||||
title: String!
|
title: String!
|
||||||
excerpt: String
|
excerpt: String
|
||||||
thumbnail: UploadFileEntityResponse
|
thumbnail: UploadFileEntityResponse
|
||||||
|
body: String
|
||||||
|
language: LanguageEntityResponse
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ENUM_COMPONENTTRANSLATIONSSCANSET_STATUS {
|
enum ENUM_COMPONENTTRANSLATIONSSCANSET_STATUS {
|
||||||
@ -1648,6 +1654,7 @@ input CurrencyFiltersInput {
|
|||||||
symbol: StringFilterInput
|
symbol: StringFilterInput
|
||||||
code: StringFilterInput
|
code: StringFilterInput
|
||||||
rate_to_usd: FloatFilterInput
|
rate_to_usd: FloatFilterInput
|
||||||
|
display_decimals: BooleanFilterInput
|
||||||
createdAt: DateTimeFilterInput
|
createdAt: DateTimeFilterInput
|
||||||
updatedAt: DateTimeFilterInput
|
updatedAt: DateTimeFilterInput
|
||||||
and: [CurrencyFiltersInput]
|
and: [CurrencyFiltersInput]
|
||||||
@ -1659,12 +1666,14 @@ input CurrencyInput {
|
|||||||
symbol: String
|
symbol: String
|
||||||
code: String
|
code: String
|
||||||
rate_to_usd: Float
|
rate_to_usd: Float
|
||||||
|
display_decimals: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type Currency {
|
type Currency {
|
||||||
symbol: String!
|
symbol: String!
|
||||||
code: String!
|
code: String!
|
||||||
rate_to_usd: Float
|
rate_to_usd: Float!
|
||||||
|
display_decimals: Boolean!
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
updatedAt: DateTime
|
updatedAt: DateTime
|
||||||
}
|
}
|
||||||
@ -1916,6 +1925,7 @@ input LibraryItemFiltersInput {
|
|||||||
digital: BooleanFilterInput
|
digital: BooleanFilterInput
|
||||||
primary: BooleanFilterInput
|
primary: BooleanFilterInput
|
||||||
submerchs: MerchItemFiltersInput
|
submerchs: MerchItemFiltersInput
|
||||||
|
categories: CategoryFiltersInput
|
||||||
createdAt: DateTimeFilterInput
|
createdAt: DateTimeFilterInput
|
||||||
updatedAt: DateTimeFilterInput
|
updatedAt: DateTimeFilterInput
|
||||||
and: [LibraryItemFiltersInput]
|
and: [LibraryItemFiltersInput]
|
||||||
@ -1942,6 +1952,7 @@ input LibraryItemInput {
|
|||||||
digital: Boolean
|
digital: Boolean
|
||||||
primary: Boolean
|
primary: Boolean
|
||||||
submerchs: [ID]
|
submerchs: [ID]
|
||||||
|
categories: [ID]
|
||||||
}
|
}
|
||||||
|
|
||||||
type LibraryItem {
|
type LibraryItem {
|
||||||
@ -1987,6 +1998,11 @@ type LibraryItem {
|
|||||||
pagination: PaginationArg = {}
|
pagination: PaginationArg = {}
|
||||||
sort: [String] = []
|
sort: [String] = []
|
||||||
): MerchItemRelationResponseCollection
|
): MerchItemRelationResponseCollection
|
||||||
|
categories(
|
||||||
|
filters: CategoryFiltersInput
|
||||||
|
pagination: PaginationArg = {}
|
||||||
|
sort: [String] = []
|
||||||
|
): CategoryRelationResponseCollection
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
updatedAt: DateTime
|
updatedAt: DateTime
|
||||||
}
|
}
|
||||||
@ -2107,6 +2123,7 @@ input PostFiltersInput {
|
|||||||
authors: RecorderFiltersInput
|
authors: RecorderFiltersInput
|
||||||
slug: StringFilterInput
|
slug: StringFilterInput
|
||||||
categories: CategoryFiltersInput
|
categories: CategoryFiltersInput
|
||||||
|
hidden: BooleanFilterInput
|
||||||
createdAt: DateTimeFilterInput
|
createdAt: DateTimeFilterInput
|
||||||
updatedAt: DateTimeFilterInput
|
updatedAt: DateTimeFilterInput
|
||||||
publishedAt: DateTimeFilterInput
|
publishedAt: DateTimeFilterInput
|
||||||
@ -2120,6 +2137,7 @@ input PostInput {
|
|||||||
slug: String
|
slug: String
|
||||||
categories: [ID]
|
categories: [ID]
|
||||||
translations: [ComponentTranslationsPostsInput]
|
translations: [ComponentTranslationsPostsInput]
|
||||||
|
hidden: Boolean
|
||||||
publishedAt: DateTime
|
publishedAt: DateTime
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2140,6 +2158,7 @@ type Post {
|
|||||||
pagination: PaginationArg = {}
|
pagination: PaginationArg = {}
|
||||||
sort: [String] = []
|
sort: [String] = []
|
||||||
): [ComponentTranslationsPosts]
|
): [ComponentTranslationsPosts]
|
||||||
|
hidden: Boolean!
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
updatedAt: DateTime
|
updatedAt: DateTime
|
||||||
publishedAt: DateTime
|
publishedAt: DateTime
|
||||||
@ -2619,6 +2638,38 @@ input WebsiteInterfaceFiltersInput {
|
|||||||
group_by: StringFilterInput
|
group_by: StringFilterInput
|
||||||
select_option_sidebar: StringFilterInput
|
select_option_sidebar: StringFilterInput
|
||||||
group: StringFilterInput
|
group: StringFilterInput
|
||||||
|
settings: StringFilterInput
|
||||||
|
theme: StringFilterInput
|
||||||
|
light: StringFilterInput
|
||||||
|
auto: StringFilterInput
|
||||||
|
dark: StringFilterInput
|
||||||
|
font_size: StringFilterInput
|
||||||
|
player_name: StringFilterInput
|
||||||
|
currency: StringFilterInput
|
||||||
|
font: StringFilterInput
|
||||||
|
calculated: StringFilterInput
|
||||||
|
status_incomplete: StringFilterInput
|
||||||
|
status_draft: StringFilterInput
|
||||||
|
status_review: StringFilterInput
|
||||||
|
status_done: StringFilterInput
|
||||||
|
incomplete: StringFilterInput
|
||||||
|
draft: StringFilterInput
|
||||||
|
review: StringFilterInput
|
||||||
|
done: StringFilterInput
|
||||||
|
status: StringFilterInput
|
||||||
|
transcribers: StringFilterInput
|
||||||
|
translators: StringFilterInput
|
||||||
|
proofreaders: StringFilterInput
|
||||||
|
transcript_notice: StringFilterInput
|
||||||
|
translation_notice: StringFilterInput
|
||||||
|
source_language: StringFilterInput
|
||||||
|
pronouns: StringFilterInput
|
||||||
|
no_category: StringFilterInput
|
||||||
|
item: StringFilterInput
|
||||||
|
items: StringFilterInput
|
||||||
|
content: StringFilterInput
|
||||||
|
result: StringFilterInput
|
||||||
|
results: StringFilterInput
|
||||||
createdAt: DateTimeFilterInput
|
createdAt: DateTimeFilterInput
|
||||||
updatedAt: DateTimeFilterInput
|
updatedAt: DateTimeFilterInput
|
||||||
and: [WebsiteInterfaceFiltersInput]
|
and: [WebsiteInterfaceFiltersInput]
|
||||||
@ -2707,6 +2758,38 @@ input WebsiteInterfaceInput {
|
|||||||
group_by: String
|
group_by: String
|
||||||
select_option_sidebar: String
|
select_option_sidebar: String
|
||||||
group: String
|
group: String
|
||||||
|
settings: String
|
||||||
|
theme: String
|
||||||
|
light: String
|
||||||
|
auto: String
|
||||||
|
dark: String
|
||||||
|
font_size: String
|
||||||
|
player_name: String
|
||||||
|
currency: String
|
||||||
|
font: String
|
||||||
|
calculated: String
|
||||||
|
status_incomplete: String
|
||||||
|
status_draft: String
|
||||||
|
status_review: String
|
||||||
|
status_done: String
|
||||||
|
incomplete: String
|
||||||
|
draft: String
|
||||||
|
review: String
|
||||||
|
done: String
|
||||||
|
status: String
|
||||||
|
transcribers: String
|
||||||
|
translators: String
|
||||||
|
proofreaders: String
|
||||||
|
transcript_notice: String
|
||||||
|
translation_notice: String
|
||||||
|
source_language: String
|
||||||
|
pronouns: String
|
||||||
|
no_category: String
|
||||||
|
item: String
|
||||||
|
items: String
|
||||||
|
content: String
|
||||||
|
result: String
|
||||||
|
results: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type WebsiteInterface {
|
type WebsiteInterface {
|
||||||
@ -2790,6 +2873,38 @@ type WebsiteInterface {
|
|||||||
group_by: String
|
group_by: String
|
||||||
select_option_sidebar: String
|
select_option_sidebar: String
|
||||||
group: String
|
group: String
|
||||||
|
settings: String
|
||||||
|
theme: String
|
||||||
|
light: String
|
||||||
|
auto: String
|
||||||
|
dark: String
|
||||||
|
font_size: String
|
||||||
|
player_name: String
|
||||||
|
currency: String
|
||||||
|
font: String
|
||||||
|
calculated: String
|
||||||
|
status_incomplete: String
|
||||||
|
status_draft: String
|
||||||
|
status_review: String
|
||||||
|
status_done: String
|
||||||
|
incomplete: String
|
||||||
|
draft: String
|
||||||
|
review: String
|
||||||
|
done: String
|
||||||
|
status: String
|
||||||
|
transcribers: String
|
||||||
|
translators: String
|
||||||
|
proofreaders: String
|
||||||
|
transcript_notice: String
|
||||||
|
translation_notice: String
|
||||||
|
source_language: String
|
||||||
|
pronouns: String
|
||||||
|
no_category: String
|
||||||
|
item: String
|
||||||
|
items: String
|
||||||
|
content: String
|
||||||
|
result: String
|
||||||
|
results: String
|
||||||
createdAt: DateTime
|
createdAt: DateTime
|
||||||
updatedAt: DateTime
|
updatedAt: DateTime
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ import PanelHeader from "components/PanelComponents/PanelHeader";
|
|||||||
import { GetStaticProps } from "next";
|
import { GetStaticProps } from "next";
|
||||||
import AppLayout from "components/AppLayout";
|
import AppLayout from "components/AppLayout";
|
||||||
import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps";
|
import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps";
|
||||||
|
import NavOption from "components/PanelComponents/NavOption";
|
||||||
|
|
||||||
interface AboutUsProps extends AppStaticProps {}
|
interface AboutUsProps extends AppStaticProps {}
|
||||||
|
|
||||||
@ -15,6 +16,15 @@ export default function AboutUs(props: AboutUsProps): JSX.Element {
|
|||||||
title={langui.about_us}
|
title={langui.about_us}
|
||||||
description={langui.about_us_description}
|
description={langui.about_us_description}
|
||||||
/>
|
/>
|
||||||
|
<NavOption title="Accord’s Handbook" url="/about-us/handbook" border />
|
||||||
|
<NavOption
|
||||||
|
title="Site information"
|
||||||
|
url="/about-us/site-information"
|
||||||
|
border
|
||||||
|
/>
|
||||||
|
<NavOption title="FAQ" url="/about-us/faq" border />
|
||||||
|
<NavOption title="Sharing Policy" url="/about-us/sharing-policy" border />
|
||||||
|
<NavOption title="Contact us" url="/about-us/contact" border />
|
||||||
</SubPanel>
|
</SubPanel>
|
||||||
);
|
);
|
||||||
return (
|
return (
|
||||||
|
60
src/pages/about-us/site-information.tsx
Normal file
60
src/pages/about-us/site-information.tsx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
import AppLayout from "components/AppLayout";
|
||||||
|
import Markdawn from "components/Markdown/Markdawn";
|
||||||
|
import ReturnButton, {
|
||||||
|
ReturnButtonType,
|
||||||
|
} from "components/PanelComponents/ReturnButton";
|
||||||
|
import ContentPanel from "components/Panels/ContentPanel";
|
||||||
|
import { getPost } from "graphql/operations";
|
||||||
|
import { GetPostQuery } from "graphql/operations-types";
|
||||||
|
import { GetStaticProps } from "next";
|
||||||
|
import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps";
|
||||||
|
import { prettySlug } from "queries/helpers";
|
||||||
|
|
||||||
|
interface SiteInfoProps extends AppStaticProps {
|
||||||
|
post: GetPostQuery["posts"]["data"][number]["attributes"];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function SiteInformation(props: SiteInfoProps): JSX.Element {
|
||||||
|
const { langui, post } = props;
|
||||||
|
const contentPanel = (
|
||||||
|
<ContentPanel>
|
||||||
|
<ReturnButton
|
||||||
|
href="/about-us"
|
||||||
|
displayOn={ReturnButtonType.Both}
|
||||||
|
langui={langui}
|
||||||
|
title={langui.about_us}
|
||||||
|
className="mb-10"
|
||||||
|
/>
|
||||||
|
{post.translations.length > 0 && (
|
||||||
|
<Markdawn text={post.translations[0].body} />
|
||||||
|
)}
|
||||||
|
</ContentPanel>
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<AppLayout
|
||||||
|
navTitle={
|
||||||
|
post.translations.length > 0
|
||||||
|
? post.translations[0].title
|
||||||
|
: prettySlug(post.slug)
|
||||||
|
}
|
||||||
|
contentPanel={contentPanel}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getStaticProps: GetStaticProps = async (context) => {
|
||||||
|
const props: SiteInfoProps = {
|
||||||
|
...(await getAppStaticProps(context)),
|
||||||
|
post: (
|
||||||
|
await getPost({
|
||||||
|
slug: "site-information",
|
||||||
|
language_code: context.locale || "en",
|
||||||
|
})
|
||||||
|
).posts.data[0].attributes,
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
props: props,
|
||||||
|
};
|
||||||
|
};
|
@ -1,146 +1,48 @@
|
|||||||
import AppLayout from "components/AppLayout";
|
import AppLayout from "components/AppLayout";
|
||||||
|
import Markdawn from "components/Markdown/Markdawn";
|
||||||
import ContentPanel from "components/Panels/ContentPanel";
|
import ContentPanel from "components/Panels/ContentPanel";
|
||||||
|
import { getPost } from "graphql/operations";
|
||||||
|
import { GetPostQuery } from "graphql/operations-types";
|
||||||
import { GetStaticProps } from "next";
|
import { GetStaticProps } from "next";
|
||||||
import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps";
|
import { AppStaticProps, getAppStaticProps } from "queries/getAppStaticProps";
|
||||||
|
import { prettySlug } from "queries/helpers";
|
||||||
|
|
||||||
interface HomeProps extends AppStaticProps {}
|
interface HomeProps extends AppStaticProps {
|
||||||
|
post: GetPostQuery["posts"]["data"][number]["attributes"];
|
||||||
|
}
|
||||||
|
|
||||||
export default function Home(props: HomeProps): JSX.Element {
|
export default function Home(props: HomeProps): JSX.Element {
|
||||||
|
const { post } = props;
|
||||||
const contentPanel = (
|
const contentPanel = (
|
||||||
<ContentPanel autoformat>
|
<ContentPanel>
|
||||||
<div className="grid place-items-center place-content-center w-full gap-5 text-center">
|
{post.translations.length > 0 && (
|
||||||
<div className="[mask:url('/icons/accords.svg')] [mask-size:contain] [mask-repeat:no-repeat] [mask-position:center] w-32 aspect-square mobile:w-[50vw] bg-black" />
|
<Markdawn text={post.translations[0].body} />
|
||||||
<h1 className="text-5xl mb-0">Accord’s Library</h1>
|
)}
|
||||||
<h2 className="mt-0">Discover • Analyse • Translate • Archive</h2>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>What is this?</h2>
|
|
||||||
<p>
|
|
||||||
Accord’s Library aims at gathering and archiving all of Yoko
|
|
||||||
Taro’s work. Yoko Taro is a Japanese video game director and
|
|
||||||
scenario writer. He is best-known for his work on the NieR and
|
|
||||||
Drakengard (Drag-on Dragoon) franchises. To complement his games, Yoko
|
|
||||||
Taro likes to publish side materials in the form of books, novellas,
|
|
||||||
artbooks, stage plays, manga, drama CDs, and comics. Those side
|
|
||||||
materials can be very difficult to find. His work goes all the way back
|
|
||||||
to 2003, and most of them are out of print after having been released
|
|
||||||
solely in Japan, sometimes in limited quantities. Their prices on the
|
|
||||||
second hand market have skyrocketed, ranging all the way to hundreds if
|
|
||||||
not thousand of dollars for the rarest items.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
This is where this library takes its meaning, in trying to help the
|
|
||||||
community grow by providing translators, writers, and wiki’s
|
|
||||||
contributors a simple way to access these records filled with stories,
|
|
||||||
artworks, and knowledge.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
We are a small group of Yoko Taro’s fans that decided to join
|
|
||||||
forces and create a website and a community. Our motto is{" "}
|
|
||||||
<strong>Discover • Analyze • Translate • Archive</strong> (D.A.T.A. for
|
|
||||||
short). We started with the goal of gathering and archiving as much
|
|
||||||
side-materials/merch as possible. But since then, our ambition grew and
|
|
||||||
we decided to create a full-fledged website that will also include news
|
|
||||||
articles, lore, summaries, translations, and transcriptions. Hopefully
|
|
||||||
one day, we will be up there in the list of notable resources for
|
|
||||||
Drakengard and NieR fans.
|
|
||||||
</p>
|
|
||||||
<h2>What’s on this website?</h2>
|
|
||||||
<p>
|
|
||||||
<strong>
|
|
||||||
<a href="https://accords-library.com/compendium/">The Compendium</a>
|
|
||||||
</strong>
|
|
||||||
: This is where we will list every NieR/DOD/other Yoko Tato merch,
|
|
||||||
games, books, novel, stage play, CD... well everything! For each, we
|
|
||||||
will provide photos and/or scans of the content, information about what
|
|
||||||
it is, when and how it was released, size, initial price...
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<strong>
|
|
||||||
<a href="https://accords-library.com/news/">News</a>
|
|
||||||
</strong>
|
|
||||||
: Yes because we also want to create our own content! So there you will
|
|
||||||
find translations, transcriptions, unboxing, news about future
|
|
||||||
merch/game releases, maybe some guides. We don’t see this website
|
|
||||||
as being purely a showcase of our work, but also of the community, and
|
|
||||||
as such, we will be accepting applications for becoming contributors on
|
|
||||||
the website. For the applicant, there is no deadline or article quota,
|
|
||||||
it merely means that we will have access to the website Post Writing
|
|
||||||
tools and will be able to submit a draft that can be published once
|
|
||||||
verified by an editor. Anyway, that’s at least the plan, we will
|
|
||||||
think more about this until the website’s official launch.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<strong>
|
|
||||||
<a href="https://accords-library.com/data/">Data</a>
|
|
||||||
</strong>
|
|
||||||
: There we will publish lore/knowledge about the Yokoverse: Dictionary,
|
|
||||||
Timeline, Weapons Stories, Game summaries... We have not yet decided how
|
|
||||||
deep we want to go as they are already quite a few resources out there.{" "}
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<strong>
|
|
||||||
<a
|
|
||||||
href="https://gallery.accords-library.com/posts"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer noopener"
|
|
||||||
>
|
|
||||||
Gallery
|
|
||||||
</a>
|
|
||||||
</strong>
|
|
||||||
: A fully tagged Danbooru-styled gallery with currently more than a
|
|
||||||
thousand unique artworks. If you are unfamiliar with this kind of
|
|
||||||
gallery, it comes with a powerful search function that allows you to
|
|
||||||
search for specific images: want to search for images with both Caim and
|
|
||||||
Inuart, just type{" "}
|
|
||||||
<kbd>
|
|
||||||
<a
|
|
||||||
href="https://gallery.accords-library.com/posts/query=Caim%20Inuart"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer noopener"
|
|
||||||
>
|
|
||||||
Caim Inuart
|
|
||||||
</a>
|
|
||||||
</kbd>
|
|
||||||
. If you want images of Devola OR Popola, you can use a comma{" "}
|
|
||||||
<kbd>
|
|
||||||
<a
|
|
||||||
href="https://gallery.accords-library.com/posts/query=Popola%2CDevola"
|
|
||||||
data-type="URL"
|
|
||||||
data-id="https://gallery.accords-library.com/posts/query=Popola%2CDevola"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer noopener"
|
|
||||||
>
|
|
||||||
Popola,Devola
|
|
||||||
</a>
|
|
||||||
</kbd>
|
|
||||||
. You can also negate a tag: i.e. images of 9S without any pods around,
|
|
||||||
search for{" "}
|
|
||||||
<kbd>
|
|
||||||
<a
|
|
||||||
href="https://gallery.accords-library.com/posts/query=9S%20-Pods"
|
|
||||||
target="_blank"
|
|
||||||
rel="noreferrer noopener"
|
|
||||||
>
|
|
||||||
9S -Pods
|
|
||||||
</a>
|
|
||||||
</kbd>
|
|
||||||
. Anyway, there is a lot more to it, you can click on "Syntax
|
|
||||||
help" next to the Search button for even neater functions. Btw, you
|
|
||||||
can create an account to favorite, upvote/downvote posts, or if you want
|
|
||||||
to help tagging them. There isn’t currently a way for new users to
|
|
||||||
upload images, you’ll have to contact us first and we can decide
|
|
||||||
to enable this function on your account.
|
|
||||||
</p>
|
|
||||||
</ContentPanel>
|
</ContentPanel>
|
||||||
);
|
);
|
||||||
|
|
||||||
return <AppLayout navTitle={"Home"} contentPanel={contentPanel} {...props} />;
|
return (
|
||||||
|
<AppLayout
|
||||||
|
navTitle={
|
||||||
|
post.translations.length > 0
|
||||||
|
? post.translations[0].title
|
||||||
|
: prettySlug(post.slug)
|
||||||
|
}
|
||||||
|
contentPanel={contentPanel}
|
||||||
|
{...props}
|
||||||
|
/>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const getStaticProps: GetStaticProps = async (context) => {
|
export const getStaticProps: GetStaticProps = async (context) => {
|
||||||
const props: HomeProps = {
|
const props: HomeProps = {
|
||||||
...(await getAppStaticProps(context)),
|
...(await getAppStaticProps(context)),
|
||||||
|
post: (
|
||||||
|
await getPost({
|
||||||
|
slug: "home",
|
||||||
|
language_code: context.locale || "en",
|
||||||
|
})
|
||||||
|
).posts.data[0].attributes,
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
props: props,
|
props: props,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user