Skip to content

Commit

Permalink
Merge pull request #202 from nekochans/feature/issue201
Browse files Browse the repository at this point in the history
lgtm-cat-ui のバージョンを言語切替メニューの仕様変更を行った物に変更
  • Loading branch information
keitakn authored Sep 27, 2022
2 parents acd252b + 8d0823f commit 0c4b784
Show file tree
Hide file tree
Showing 12 changed files with 29 additions and 196 deletions.
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"chromatic": "chromatic --project-token=$CHROMATIC_PROJECT_TOKEN"
},
"dependencies": {
"@nekochans/lgtm-cat-ui": "^1.1.0",
"@nekochans/lgtm-cat-ui": "^2.0.1",
"@sentry/nextjs": "^7.12.1",
"lodash.throttle": "^4.1.1",
"next": "^12.3.0",
Expand Down
1 change: 0 additions & 1 deletion src/edge/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
export * from './locale';
export * from './maintenance';
export * from './country';
38 changes: 0 additions & 38 deletions src/edge/locale.ts

This file was deleted.

1 change: 0 additions & 1 deletion src/hooks/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
export { useSaveSettingLanguage } from './useSaveSettingLanguage';
export { useCatImagesFetcher } from './useCatImagesFetcher';
export { useCatImageValidator } from './useCatImageValidator';
export { useCatImageUploader } from './useCatImageUploader';
29 changes: 0 additions & 29 deletions src/hooks/useSaveSettingLanguage.ts

This file was deleted.

3 changes: 0 additions & 3 deletions src/layouts/DefaultLayout/DefaultLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import type { FC, ReactNode } from 'react';
type Props = {
metaTag: MetaTag;
children: ReactNode;
canonicalLink?: Url;
alternateUrls?: {
hreflang: Language;
link?: Url;
Expand All @@ -17,7 +16,6 @@ type Props = {
export const DefaultLayout: FC<Props> = ({
metaTag,
children,
canonicalLink,
alternateUrls,
}) => (
<>
Expand Down Expand Up @@ -52,7 +50,6 @@ export const DefaultLayout: FC<Props> = ({
<meta name="msapplication-TileColor" content="#da532c" />
<meta name="msapplication-config" content="/favicons/browserconfig.xml" />
<meta name="theme-color" content="#ffffff" />
{canonicalLink ? <link rel="canonical" href={canonicalLink} /> : ''}
{alternateUrls?.map((alternateUrl, index) => (
<link
rel="alternate"
Expand Down
76 changes: 6 additions & 70 deletions src/middleware.ts
Original file line number Diff line number Diff line change
@@ -1,89 +1,25 @@
import { NextRequest, NextResponse } from 'next/server';

import {
isBanCountry,
isInMaintenance,
mightExtractLocaleFromAcceptLanguage,
mightExtractLocaleFromCookie,
mightExtractLocaleFromGeo,
} from './edge';
import { isBanCountry, isInMaintenance } from './edge';

export const config = {
matcher: ['/', '/upload', '/terms', '/privacy', '/maintenance'],
};

// eslint-disable-next-line max-statements
const execInMaintenance = (req: NextRequest) => {
const { nextUrl } = req;

const localeExtractedFromCookie = mightExtractLocaleFromCookie(req);
if (localeExtractedFromCookie === 'en') {
nextUrl.pathname = `/${localeExtractedFromCookie}/maintenance`;

return NextResponse.rewrite(nextUrl);
}

const localeExtractedFromGeo = mightExtractLocaleFromGeo(req);
if (localeExtractedFromGeo === 'en') {
nextUrl.pathname = `/${localeExtractedFromGeo}/maintenance`;

return NextResponse.rewrite(nextUrl);
}

const localeExtractedFromAcceptLanguage =
mightExtractLocaleFromAcceptLanguage(req);
if (localeExtractedFromAcceptLanguage === 'en') {
nextUrl.pathname = `/${localeExtractedFromAcceptLanguage}/maintenance`;

return NextResponse.rewrite(nextUrl);
}

nextUrl.pathname = '/maintenance';

return NextResponse.rewrite(nextUrl);
};

// eslint-disable-next-line max-statements
const exec = (req: NextRequest) => {
export const middleware = (req: NextRequest) => {
const { nextUrl } = req;

const localeExtractedFromCookie = mightExtractLocaleFromCookie(req);
if (localeExtractedFromCookie === 'en') {
nextUrl.pathname = `/${localeExtractedFromCookie}${nextUrl.pathname}`;

return NextResponse.rewrite(nextUrl);
}

const localeExtractedFromGeo = mightExtractLocaleFromGeo(req);
if (localeExtractedFromGeo === 'en') {
nextUrl.pathname = `/${localeExtractedFromGeo}${nextUrl.pathname}`;

return NextResponse.rewrite(nextUrl);
}

const localeExtractedFromAcceptLanguage =
mightExtractLocaleFromAcceptLanguage(req);
if (localeExtractedFromAcceptLanguage === 'en') {
nextUrl.pathname = `/${localeExtractedFromAcceptLanguage}${nextUrl.pathname}`;

return NextResponse.rewrite(nextUrl);
}

return NextResponse.next();
};

export const middleware = (req: NextRequest) => {
if (isBanCountry(req)) {
const { nextUrl } = req;

nextUrl.pathname = '/api/errors';

return NextResponse.rewrite(nextUrl);
}

if (isInMaintenance()) {
return execInMaintenance(req);
nextUrl.pathname = '/maintenance';

return NextResponse.rewrite(nextUrl);
}

return exec(req);
return NextResponse.next();
};
10 changes: 6 additions & 4 deletions src/templates/ErrorTemplate/ErrorTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {
ErrorTemplate as OrgErrorTemplate,
type ErrorType,
} from '@nekochans/lgtm-cat-ui';
import { useRouter } from 'next/router';

import {
InternalServerErrorImage,
Expand All @@ -17,7 +18,6 @@ import {
errorMetaTag,
type Language,
} from '../../features';
import { useSaveSettingLanguage } from '../../hooks';
import { ErrorLayout } from '../../layouts';
import { assertNever } from '../../utils';

Expand Down Expand Up @@ -68,18 +68,20 @@ const getMetaTag = (type: ErrorType, language: Language) => {
};

export const ErrorTemplate: FC<Props> = ({ type, language }) => {
const { saveSettingLanguage } = useSaveSettingLanguage();

const metaTag = getMetaTag(type, language);

const router = useRouter();

const currentUrlPath = router.pathname;

return (
<ErrorLayout title={pageTitle(type, language)} metaTag={metaTag}>
<OrgErrorTemplate
type={type}
language={language}
catImage={catImage(type)}
shouldDisplayBackToTopButton={true}
changeLanguageCallback={saveSettingLanguage}
currentUrlPath={currentUrlPath}
/>
</ErrorLayout>
);
Expand Down
25 changes: 5 additions & 20 deletions src/templates/TermsOrPrivacyTemplate/TermsOrPrivacyTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import {
i18nUrlList,
type Language,
} from '../../features';
import { useSaveSettingLanguage } from '../../hooks';
import { DefaultLayout } from '../../layouts';

import type { FC } from 'react';
Expand All @@ -30,18 +29,10 @@ export const TermsOrPrivacyTemplate: FC<Props> = ({
jaMarkdown,
enMarkdown,
}) => {
const { saveSettingLanguage } = useSaveSettingLanguage();
const { isLanguageMenuDisplayed, onClickLanguageButton, onClickOutSideMenu } =
useSwitchLanguage();

const {
isLanguageMenuDisplayed,
selectedLanguage,
onClickEn,
onClickJa,
onClickLanguageButton,
onClickOutSideMenu,
} = useSwitchLanguage(language, saveSettingLanguage);

const termsMarkdown = selectedLanguage === 'ja' ? jaMarkdown : enMarkdown;
const termsMarkdown = language === 'ja' ? jaMarkdown : enMarkdown;

const metaTag =
type === 'terms'
Expand All @@ -63,17 +54,11 @@ export const TermsOrPrivacyTemplate: FC<Props> = ({
});

return (
<DefaultLayout
metaTag={metaTag}
canonicalLink={canonicalLink}
alternateUrls={alternateUrls}
>
<DefaultLayout metaTag={metaTag} alternateUrls={alternateUrls}>
<OrgTermsOrPrivacyTemplate
type={type}
language={selectedLanguage}
language={language}
isLanguageMenuDisplayed={isLanguageMenuDisplayed}
onClickEn={onClickEn}
onClickJa={onClickJa}
onClickLanguageButton={onClickLanguageButton}
onClickOutSideMenu={onClickOutSideMenu}
>
Expand Down
11 changes: 2 additions & 9 deletions src/templates/TopTemplate/TopTemplate.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
type Language,
LgtmImage,
} from '../../features';
import { useSaveSettingLanguage, useCatImagesFetcher } from '../../hooks';
import { useCatImagesFetcher } from '../../hooks';
import { DefaultLayout } from '../../layouts';
import {
sendClickTopFetchNewArrivalCatButton,
Expand Down Expand Up @@ -44,17 +44,11 @@ type Props = {
export const TopTemplate: FC<Props> = ({ language, lgtmImages }) => {
const metaTag = metaTagList(language).top;

const { saveSettingLanguage } = useSaveSettingLanguage();

const { randomCatImagesFetcher, newArrivalCatImagesFetcher } =
useCatImagesFetcher();

return (
<DefaultLayout
metaTag={metaTag}
canonicalLink={canonicalLink}
alternateUrls={alternateUrls}
>
<DefaultLayout metaTag={metaTag} alternateUrls={alternateUrls}>
<OrgTopTemplate
language={language}
lgtmImages={lgtmImages}
Expand All @@ -65,7 +59,6 @@ export const TopTemplate: FC<Props> = ({ language, lgtmImages }) => {
fetchRandomCatImagesCallback={fetchRandomCatImagesCallback}
fetchNewArrivalCatImagesCallback={fetchNewArrivalCatImagesCallback}
clipboardMarkdownCallback={clipboardMarkdownCallback}
changeLanguageCallback={saveSettingLanguage}
catRandomCopyCallback={catRandomCopyCallback}
/>
</DefaultLayout>
Expand Down
Loading

1 comment on commit 0c4b784

@vercel
Copy link

@vercel vercel bot commented on 0c4b784 Sep 27, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.