diff --git a/package-lock.json b/package-lock.json
index 2c9a89a7..b97feaa7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -814,6 +814,15 @@
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz",
"integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ=="
},
+ "@types/ramda": {
+ "version": "0.27.60",
+ "resolved": "https://registry.npmjs.org/@types/ramda/-/ramda-0.27.60.tgz",
+ "integrity": "sha512-6ie74xhtl2ducVG8cC8mnYwpvIUWHBoLHbmvEsl5qPqJkqVP9ce5yZW10WgheKd2ua1yPIwd0miMWBsG19UmiQ==",
+ "dev": true,
+ "requires": {
+ "ts-toolbelt": "^6.15.1"
+ }
+ },
"@types/react": {
"version": "17.0.37",
"resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.37.tgz",
@@ -3468,6 +3477,11 @@
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true
},
+ "ramda": {
+ "version": "0.27.1",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz",
+ "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw=="
+ },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -3976,6 +3990,12 @@
"punycode": "^2.1.0"
}
},
+ "ts-toolbelt": {
+ "version": "6.15.5",
+ "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-6.15.5.tgz",
+ "integrity": "sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==",
+ "dev": true
+ },
"tsconfig-paths": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
diff --git a/package.json b/package.json
index 5a1552c5..9484f50a 100644
--- a/package.json
+++ b/package.json
@@ -8,12 +8,14 @@
"@mdi/react": "^1.5.0",
"bootstrap": "^5.1.3",
"next": "^12.0.7",
+ "ramda": "^0.27.1",
"react": "^17.0.2",
"react-bootstrap": "^2.0.3",
"react-dom": "^17.0.2",
"theme-ui": "^0.12.1"
},
"devDependencies": {
+ "@types/ramda": "^0.27.60",
"@types/react": "^17.0.37",
"eslint": "8.5.0",
"eslint-config-next": "12.0.7",
diff --git a/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx b/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx
index 4208544b..c4a9396a 100644
--- a/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx
+++ b/src/pages/honkai3rd/battlesuits/[battlesuitId].tsx
@@ -1,5 +1,6 @@
import { Box, Heading, Paragraph } from '@theme-ui/components'
import { NextPageContext } from 'next'
+import Image from 'next/image'
import React from 'react'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
@@ -33,10 +34,21 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.name}
-
-
+
@@ -49,7 +61,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.leader.core.description}
{battlesuit.leader.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -57,7 +69,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
@@ -71,7 +83,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.passive.core.description}
{battlesuit.passive.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -79,7 +91,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
@@ -93,7 +105,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.evasion.core.description}
{battlesuit.evasion.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -101,7 +113,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
@@ -115,7 +127,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.special.core.description}
{battlesuit.special.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -123,7 +135,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
@@ -138,7 +150,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.ultimate.core.description}
{battlesuit.ultimate.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -146,7 +158,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
@@ -161,7 +173,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.basic.core.description}
{battlesuit.basic.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -169,7 +181,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
@@ -185,7 +197,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
{battlesuit.sp.core.description}
{battlesuit.sp.subskills.map((subskill, index) => {
return (
- <>
+
{subskill.name}
{subskill.requiredRank != null
@@ -193,7 +205,7 @@ const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => {
: ''}
{subskill.description}
- >
+
)
})}
diff --git a/src/pages/honkai3rd/battlesuits/index.tsx b/src/pages/honkai3rd/battlesuits/index.tsx
index f549fd72..bfa43bfa 100644
--- a/src/pages/honkai3rd/battlesuits/index.tsx
+++ b/src/pages/honkai3rd/battlesuits/index.tsx
@@ -1,5 +1,7 @@
import { Box, Heading, Flex, Text, Link } from '@theme-ui/components'
+import Image from 'next/image'
import NextLink from 'next/link'
+import { pick } from 'ramda'
import React from 'react'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
@@ -9,7 +11,7 @@ import {
} from '../../../data/honkai3rd/battlesuits'
interface BattlesuitListPageProps {
- battlesuits: BattlesuitData[]
+ battlesuits: Pick[]
}
const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
@@ -58,29 +60,21 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
passHref={true}
>
-
-
-

-
+
+
+ pick(['id', 'name'], battlesuit)
+ ),
},
}
}
diff --git a/src/pages/honkai3rd/index.tsx b/src/pages/honkai3rd/index.tsx
index d4b897a6..c92bae10 100644
--- a/src/pages/honkai3rd/index.tsx
+++ b/src/pages/honkai3rd/index.tsx
@@ -1,4 +1,5 @@
-import { Box, Heading, Link, Image } from '@theme-ui/components'
+import { Box, Heading, Link } from '@theme-ui/components'
+import Image from 'next/image'
import NextLink from 'next/link'
import React from 'react'
import Breadcrumb from '../../components/organisms/Breadcrumb'
@@ -36,11 +37,13 @@ const Honkai3rdIndexPage = () => {
Honkai 3rd
-
+
diff --git a/src/pages/honkai3rd/stigmata/[stigmataId].tsx b/src/pages/honkai3rd/stigmata/[stigmataId].tsx
index 325d9ae3..942f6b16 100644
--- a/src/pages/honkai3rd/stigmata/[stigmataId].tsx
+++ b/src/pages/honkai3rd/stigmata/[stigmataId].tsx
@@ -1,7 +1,10 @@
-import { NavLink, Box, Heading, Text, Paragraph } from '@theme-ui/components'
+import { Box, Heading, Text, Paragraph } from '@theme-ui/components'
import { NextPageContext } from 'next'
+import Image from 'next/image'
import Link from 'next/link'
import React from 'react'
+import Breadcrumb from '../../../components/organisms/Breadcrumb'
+import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import {
StigmataData,
listStigmata,
@@ -24,75 +27,89 @@ const StigmataListPage = ({
}: StigmataShowPageProps) => {
return (
-
-
- Honkai 3rd
-
-
- Stigmata
-
-
+
+
+
- {stigmataData.name}
+ {stigmataData.name}
-
-
-
- Skill - {stigmataData.skill.name}
- {stigmataData.skill.description}
-
-
- {stigmataSet != null && (
-
- Set
-
- {stigmataSetList.map((stigmataSetItem) => {
- return (
-
-
-
-

-
- {stigmataSetItem.name}
-
-
- )
- })}
-
-
- {stigmataSet.twoSetSkill.name}
- {stigmataSet.twoSetSkill.description}
-
-
- {stigmataSet.threeSetSkill.name}
- {stigmataSet.threeSetSkill.description}
-
+
+
- )}
+
+
+ Skill - {stigmataData.skill.name}
+ {stigmataData.skill.description}
+
+
+ {stigmataSet != null && (
+
+ Set
+
+ {stigmataSetList.map((stigmataSetItem) => {
+ return (
+
+
+
+
+
+ {stigmataSetItem.name}
+
+
+ )
+ })}
+
+
+ {stigmataSet.twoSetSkill.name}
+ {stigmataSet.twoSetSkill.description}
+
+
+ {stigmataSet.threeSetSkill.name}
+ {stigmataSet.threeSetSkill.description}
+
+
+ )}
+
)
}
diff --git a/src/pages/honkai3rd/stigmata/index.tsx b/src/pages/honkai3rd/stigmata/index.tsx
index 2756c376..66b90dbd 100644
--- a/src/pages/honkai3rd/stigmata/index.tsx
+++ b/src/pages/honkai3rd/stigmata/index.tsx
@@ -1,12 +1,14 @@
/** @jsxImportSource theme-ui */
import { Text, Box, Heading, Flex, Link } from '@theme-ui/components'
+import Image from 'next/image'
import NextLink from 'next/link'
+import { pick } from 'ramda'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import { StigmataData, listStigmata } from '../../../data/honkai3rd/stigmata'
interface StigmataListPageProps {
- stigmataDataList: StigmataData[]
+ stigmataDataList: Pick[]
}
const StigmataListPage = ({ stigmataDataList }: StigmataListPageProps) => {
@@ -55,29 +57,21 @@ const StigmataListPage = ({ stigmataDataList }: StigmataListPageProps) => {
passHref={true}
>
-
-
-

-
+
+
+ pick(['id', 'name', 'rarity'], stigmata)
+ ),
},
}
}
diff --git a/src/pages/honkai3rd/weapons/index.tsx b/src/pages/honkai3rd/weapons/index.tsx
index a229bbc2..48bc8bf3 100644
--- a/src/pages/honkai3rd/weapons/index.tsx
+++ b/src/pages/honkai3rd/weapons/index.tsx
@@ -1,12 +1,14 @@
/** @jsxImportSource theme-ui */
import { Text, Box, Heading, Flex, Link } from '@theme-ui/components'
+import Image from 'next/image'
import NextLink from 'next/link'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
import { listWeapons, WeaponData } from '../../../data/honkai3rd/weapons'
+import { pick } from 'ramda'
interface WeaponListPageProps {
- weaponDataList: WeaponData[]
+ weaponDataList: Pick[]
}
const WeaponListPage = ({ weaponDataList }: WeaponListPageProps) => {
@@ -55,29 +57,21 @@ const WeaponListPage = ({ weaponDataList }: WeaponListPageProps) => {
passHref={true}
>
-
-
-

-
+
+
{
+ return pick(['name', 'id', 'rarity'], weapon)
+ }),
},
}
}