From eb4684cdcce71ecd19dead450feadfc5d4eda50e Mon Sep 17 00:00:00 2001 From: nasubi Date: Fri, 14 Jun 2024 02:27:23 +0900 Subject: [PATCH 1/2] =?UTF-8?q?achievement=E3=81=AE=E5=9E=8B=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/achievements.json | 50 +++++++++++++++++-- src/components/achievements/Card.tsx | 10 +++- .../achievements/UnlockableCard.tsx | 0 src/pages/achievements/index.tsx | 29 ++++++----- src/pages/members/index.tsx | 2 +- 5 files changed, 69 insertions(+), 22 deletions(-) create mode 100644 src/components/achievements/UnlockableCard.tsx diff --git a/src/assets/achievements.json b/src/assets/achievements.json index d931c49..268c1da 100644 --- a/src/assets/achievements.json +++ b/src/assets/achievements.json @@ -5,35 +5,75 @@ "name": "First Blood", "description": "Get the first kill in a match.", "icon": "https://placehold.jp/150x150.png", - "tag": ["kill"] + "tags": [ + { + "id": 1, + "name": "kill", + "color": "#FF0000" + } + ], + "createdAt": "2021-01-01T00:00:00Z", + "updatedAt": "2021-01-01T00:00:00Z" }, { "id": 2, "name": "Double Kill", "description": "Get two kills in a row.", "icon": "https://placehold.jp/150x150.png", - "tag": ["kill"] + "tags": [ + { + "id": 1, + "name": "kill", + "color": "#FF0000" + } + ], + "createdAt": "2021-01-01T00:00:00Z", + "updatedAt": "2021-01-01T00:00:00Z" }, { "id": 3, "name": "Triple Kill", "description": "Get three kills in a row.", "icon": "https://placehold.jp/150x150.png", - "tag": ["kill"] + "tags": [ + { + "id": 1, + "name": "kill", + "color": "#FF0000" + } + ], + "createdAt": "2021-01-01T00:00:00Z", + "updatedAt": "2021-01-01T00:00:00Z" }, { "id": 4, "name": "Quadra Kill", "description": "Get four kills in a row.", "icon": "https://placehold.jp/150x150.png", - "tag": ["kill"] + "tags": [ + { + "id": 1, + "name": "kill", + "color": "#FF0000" + } + ], + "createdAt": "2021-01-01T00:00:00Z", + "updatedAt": "2021-01-01T00:00:00Z" }, { "id": 5, "name": "Penta Kill", "description": "Get five kills in a row.", "icon": "https://placehold.jp/150x150.png", - "tag": ["kill"] + "tags": [ + { + "id": 1, + "name": "kill", + "color": "#FF0000" + } + ], + "createdAt": "2021-01-01T00:00:00Z", + "updatedAt": "2021-01-01T00:00:00Z" } ] } diff --git a/src/components/achievements/Card.tsx b/src/components/achievements/Card.tsx index 5fe92a2..c7f7732 100644 --- a/src/components/achievements/Card.tsx +++ b/src/components/achievements/Card.tsx @@ -1,9 +1,17 @@ +import { Achievement } from "@/types/achievement"; import { Text } from "@radix-ui/themes"; import { type ReactElement } from "react"; -export function memberCard({ data }: { data: any }): ReactElement { +export function AchievementCard({ + data, + showRelativeDate = false, +}: { + data: Achievement; + showRelativeDate: boolean; +}): ReactElement { return ( <> + {showRelativeDate && 1日前} Hello This page is memberCard {data.name} {data.description} diff --git a/src/components/achievements/UnlockableCard.tsx b/src/components/achievements/UnlockableCard.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/achievements/index.tsx b/src/pages/achievements/index.tsx index 6c46cf4..f54c884 100644 --- a/src/pages/achievements/index.tsx +++ b/src/pages/achievements/index.tsx @@ -1,18 +1,17 @@ import { type ReactElement } from "react"; -import { MemberCard } from "@/components/member/Card"; +import { AchievementCard } from "@/components/achievements/Card"; +import data from "@/assets/achievements.json"; +import { Achievement } from "@/types/achievement"; -export function Page(): ReactElement { - const achievementsTestData = [ - { - id: 1, - name: "John Doe", - description: "", - }, - { - id: 2, - name: "Jane Doe", - description: "", - }, - ]; - return

; +export default function Page(): ReactElement { + return ( + <> + {data.achievements.map((achievement) => ( + + ))} + + ); } diff --git a/src/pages/members/index.tsx b/src/pages/members/index.tsx index 9331fa4..5dfa0b6 100644 --- a/src/pages/members/index.tsx +++ b/src/pages/members/index.tsx @@ -3,7 +3,7 @@ import { MemberCard } from "@/components/member/Card"; import SampleMember from "@/assets/members.json"; import { Member } from "@/types/member"; -export function Page(): ReactElement { +export default function Page(): ReactElement { const teto = SampleMember.members.at(-1) as Member; return ; From 4ff8abe65715c3e1e686db4d27fd3b76c47e6501 Mon Sep 17 00:00:00 2001 From: nasubi Date: Fri, 14 Jun 2024 02:37:56 +0900 Subject: [PATCH 2/2] =?UTF-8?q?achievement=E3=81=AE=E5=9E=8B=E3=81=AB?= =?UTF-8?q?=E5=90=88=E3=82=8F=E3=81=9B=E3=81=A6=E5=91=BD=E5=90=8D=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/achievements/Card.tsx | 2 +- src/pages/achievements/index.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/achievements/Card.tsx b/src/components/achievements/Card.tsx index c7f7732..777affa 100644 --- a/src/components/achievements/Card.tsx +++ b/src/components/achievements/Card.tsx @@ -12,7 +12,7 @@ export function AchievementCard({ return ( <> {showRelativeDate && 1日前} - Hello This page is memberCard + Hello This page is AchievementCard {data.name} {data.description} diff --git a/src/pages/achievements/index.tsx b/src/pages/achievements/index.tsx index f54c884..9dbdbdf 100644 --- a/src/pages/achievements/index.tsx +++ b/src/pages/achievements/index.tsx @@ -1,15 +1,15 @@ import { type ReactElement } from "react"; import { AchievementCard } from "@/components/achievements/Card"; import data from "@/assets/achievements.json"; -import { Achievement } from "@/types/achievement"; export default function Page(): ReactElement { return ( <> {data.achievements.map((achievement) => ( ))}