diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 151e747..c230e92 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -2012,7 +2012,6 @@ "version": "19.1.4", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz", "integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==", - "dev": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -2022,7 +2021,7 @@ "version": "19.1.5", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz", "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==", - "dev": true, + "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.0.0" @@ -2883,7 +2882,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, "license": "MIT" }, "node_modules/debug": { diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 76a130d..b195c44 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,10 +1,8 @@ import axios from 'axios' import toCamel from 'camelcase-keys' -import React, { useEffect, useState } from 'react' +import { useEffect, useState } from 'react' import { BrowserRouter as Router, Route, Routes, Navigate } from 'react-router-dom' -import TagDetailSidebar from '@/components/TagDetailSidebar' -import TagSidebar from '@/components/TagSidebar' import TopNav from '@/components/TopNav' import { Toaster } from '@/components/ui/toaster' import { API_BASE_URL } from '@/config' @@ -21,7 +19,7 @@ import WikiHistoryPage from '@/pages/wiki/WikiHistoryPage' import WikiNewPage from '@/pages/wiki/WikiNewPage' import WikiSearchPage from '@/pages/wiki/WikiSearchPage' -import type { Post, Tag, User } from '@/types' +import type { User } from '@/types' export default () => { @@ -29,11 +27,12 @@ export default () => { useEffect (() => { const createUser = async () => { - const { data } = await axios.post (`${ API_BASE_URL }/users`) + const res = await axios.post (`${ API_BASE_URL }/users`) + const data = res.data as { code: string; user: any } if (data.code) { localStorage.setItem ('user_code', data.code) - setUser (toCamel (data.user, { deep: true })) + setUser (toCamel (data.user, { deep: true }) as User) } } @@ -41,7 +40,8 @@ export default () => { if (code) { void (async () => { - const { data } = await axios.post (`${ API_BASE_URL }/users/verify`, { code }) + const res = await axios.post (`${ API_BASE_URL }/users/verify`, { code }) + const data = res.data as { valid: boolean, user: any } if (data.valid) setUser (toCamel (data.user, { deep: true })) else diff --git a/frontend/src/components/NicoViewer.tsx b/frontend/src/components/NicoViewer.tsx index 8636c53..ac4caec 100644 --- a/frontend/src/components/NicoViewer.tsx +++ b/frontend/src/components/NicoViewer.tsx @@ -1,8 +1,5 @@ import React, { useRef, useLayoutEffect, useEffect, useState, CSSProperties } from 'react' -import axios from 'axios' import { Link, useNavigate, useLocation } from 'react-router-dom' -import { API_BASE_URL } from '../config' - type Props = { id: string, width: number, height: number, diff --git a/frontend/src/components/TopNav.tsx b/frontend/src/components/TopNav.tsx index 084fc63..fde9bc1 100644 --- a/frontend/src/components/TopNav.tsx +++ b/frontend/src/components/TopNav.tsx @@ -10,7 +10,7 @@ import { cn } from '@/lib/utils' import type { Tag, User, WikiPage } from '@/types' -type Props = { user: User +type Props = { user: User | null setUser: (user: User) => void } const enum Menu { None, @@ -20,7 +20,7 @@ const enum Menu { None, Wiki } -const TopNav: React.FC = ({ user, setUser }: Props) => { +export default ({ user, setUser }: Props) => { const location = useLocation () const navigate = useNavigate () @@ -230,6 +230,3 @@ const TopNav: React.FC = ({ user, setUser }: Props) => { }) ()} ) } - - -export default TopNav diff --git a/frontend/src/pages/posts/PostDetailPage.tsx b/frontend/src/pages/posts/PostDetailPage.tsx index 02d86c7..f22d9a2 100644 --- a/frontend/src/pages/posts/PostDetailPage.tsx +++ b/frontend/src/pages/posts/PostDetailPage.tsx @@ -16,7 +16,7 @@ import { cn } from '@/lib/utils' import type { Post, Tag, User } from '@/types' -type Props = { user: User } +type Props = { user: User | null } export default ({ user }: Props) => { diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index c9ccbd4..726680b 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -21,7 +21,11 @@ "noUnusedParameters": true, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true + "noUncheckedSideEffectImports": true, + "baseUrl": "./src", + "paths": { + "@/*": ["*"] + } }, "include": ["src"] }