Skip to content

Commit

Permalink
🚑 自分の解除済み実績とチームの解除済み実績の分離
Browse files Browse the repository at this point in the history
  • Loading branch information
wappon28dev committed Oct 3, 2024
1 parent a7a0ecd commit a487607
Showing 1 changed file with 30 additions and 16 deletions.
46 changes: 30 additions & 16 deletions src/pages/unlocked/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,25 @@ export default function Page(): ReactElement {
const { fetch: fetchAchievements } = useAchievements(useTeam);
const { fetch: fetchUnlockedAchievements, update } =
useUnlockedAchievements(useTeam);
const swrACU = useSWRImmutable("acu", async () => ({
achievements: await fetchAchievements(),
currentMember: await fetchCurrentMember(),
unlockedAchievements: await fetchUnlockedAchievements(),
}));
const swrACU = useSWRImmutable("acu", async () => {
const [
achievements,
currentMember,
unlockedAchievements,
] = await Promise.all([
fetchAchievements(),
fetchCurrentMember(),
fetchUnlockedAchievements(),
]);

return {
achievements,
currentMember,
unlockedAchievements,
myUnlockedAchievements:
unlockedAchievements.filter((u) => u.memberEmail === currentMember.email),
}
});

const [isUILocked, setIsUILocked] = useState(false);

Expand All @@ -48,16 +62,16 @@ export default function Page(): ReactElement {
await update(
isUnlocked
? [
...unlockedAchievements,
{
achievementID: targetAchievementId,
createdAt: new Date(),
memberEmail: currentMember.email,
},
]
...unlockedAchievements,
{
achievementID: targetAchievementId,
createdAt: new Date(),
memberEmail: currentMember.email,
},
]
: unlockedAchievements.filter(
({ achievementID: id }) => id !== targetAchievementId,
),
({ achievementID: id }) => id !== targetAchievementId,
),
);
await mutate();
} finally {
Expand All @@ -75,14 +89,14 @@ export default function Page(): ReactElement {
.with(
S.Success,
({
data: { achievements, unlockedAchievements, currentMember },
data: { achievements, myUnlockedAchievements, unlockedAchievements, currentMember },
mutate,
}) => (
<>
<Box mt="20vh" />
<BoxStyle width="70%">
{achievements.map((achievement) => {
const isUnlocked = unlockedAchievements.some(
const isUnlocked = myUnlockedAchievements.some(
(u) => u.achievementID === achievement.id,
);

Expand Down

0 comments on commit a487607

Please sign in to comment.