From ea617dd8dcc8a100c372934717f35155c65736cb Mon Sep 17 00:00:00 2001 From: yudejp Date: Sun, 26 Sep 2021 13:36:23 +0900 Subject: [PATCH] Fix 404 page @ minecraft/players/[uuid] --- .../components/Minecraft/PlayerNameHolder.js | 61 +++++++++---------- pages/components/Minecraft/Players.js | 1 + pages/components/Minecraft/WrongUUID.js | 4 +- pages/minecraft/players/[uuid].js | 19 ++++-- 4 files changed, 48 insertions(+), 37 deletions(-) diff --git a/pages/components/Minecraft/PlayerNameHolder.js b/pages/components/Minecraft/PlayerNameHolder.js index d4b5d39..3aa3d44 100644 --- a/pages/components/Minecraft/PlayerNameHolder.js +++ b/pages/components/Minecraft/PlayerNameHolder.js @@ -1,40 +1,39 @@ -import React, { useState, useEffect } from 'react'; -import axios from 'axios'; +// Component import Group from './Group'; +// Data fetching +import useSwr from 'swr' + +const fetcher = (url) => fetch(url).then((res) => res.json()) + function App (props) { const uuid = props; - const [data, setData] = useState({ hits: [] }); - - useEffect(() => { - const fetchData = async () => { - let result = null; - try { - result = await axios('https://api.ashcon.app/mojang/v2/user/' + uuid.uuid); - setData(result.data); - } catch (err) { - result = 404; - setData(result); - } - }; - fetchData(); - }, []); - if (data === undefined){ - console.log("[Minecraft: UUID to player's name] データの取得に失敗しました。 / Failed to retrieve data.") - return <>取得中...> - }else { - if (data === 404) { - return
そのようなプレイヤーは存在しません。
- } else { + const { data, error } = useSwr( + uuid.uuid ? `/api/PlayerName/${uuid.uuid}` : null, + fetcher + ) + + if (error) { + return ( + <>エラーが発生しました。> + ) + } else { + if (!data) { + return ( + <>読み込み中...> + ) + } else { return ( -{data.username}
-{data.username}
+