みてるぞ 1 week ago
parent
commit
fdf242c060
6 changed files with 16 additions and 20 deletions
  1. +1
    -3
      frontend/package-lock.json
  2. +7
    -7
      frontend/src/App.tsx
  3. +0
    -3
      frontend/src/components/NicoViewer.tsx
  4. +2
    -5
      frontend/src/components/TopNav.tsx
  5. +1
    -1
      frontend/src/pages/posts/PostDetailPage.tsx
  6. +5
    -1
      frontend/tsconfig.app.json

+ 1
- 3
frontend/package-lock.json View File

@@ -2012,7 +2012,6 @@
"version": "19.1.4", "version": "19.1.4",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz",
"integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==", "integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==",
"dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"csstype": "^3.0.2" "csstype": "^3.0.2"
@@ -2022,7 +2021,7 @@
"version": "19.1.5", "version": "19.1.5",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz",
"integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==", "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==",
"dev": true,
"devOptional": true,
"license": "MIT", "license": "MIT",
"peerDependencies": { "peerDependencies": {
"@types/react": "^19.0.0" "@types/react": "^19.0.0"
@@ -2883,7 +2882,6 @@
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
"dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/debug": { "node_modules/debug": {


+ 7
- 7
frontend/src/App.tsx View File

@@ -1,10 +1,8 @@
import axios from 'axios' import axios from 'axios'
import toCamel from 'camelcase-keys' 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 { 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 TopNav from '@/components/TopNav'
import { Toaster } from '@/components/ui/toaster' import { Toaster } from '@/components/ui/toaster'
import { API_BASE_URL } from '@/config' import { API_BASE_URL } from '@/config'
@@ -21,7 +19,7 @@ import WikiHistoryPage from '@/pages/wiki/WikiHistoryPage'
import WikiNewPage from '@/pages/wiki/WikiNewPage' import WikiNewPage from '@/pages/wiki/WikiNewPage'
import WikiSearchPage from '@/pages/wiki/WikiSearchPage' import WikiSearchPage from '@/pages/wiki/WikiSearchPage'


import type { Post, Tag, User } from '@/types'
import type { User } from '@/types'




export default () => { export default () => {
@@ -29,11 +27,12 @@ export default () => {


useEffect (() => { useEffect (() => {
const createUser = async () => { 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) if (data.code)
{ {
localStorage.setItem ('user_code', 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) if (code)
{ {
void (async () => { 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) if (data.valid)
setUser (toCamel (data.user, { deep: true })) setUser (toCamel (data.user, { deep: true }))
else else


+ 0
- 3
frontend/src/components/NicoViewer.tsx View File

@@ -1,8 +1,5 @@
import React, { useRef, useLayoutEffect, useEffect, useState, CSSProperties } from 'react' import React, { useRef, useLayoutEffect, useEffect, useState, CSSProperties } from 'react'
import axios from 'axios'
import { Link, useNavigate, useLocation } from 'react-router-dom' import { Link, useNavigate, useLocation } from 'react-router-dom'
import { API_BASE_URL } from '../config'

type Props = { id: string, type Props = { id: string,
width: number, width: number,
height: number, height: number,


+ 2
- 5
frontend/src/components/TopNav.tsx View File

@@ -10,7 +10,7 @@ import { cn } from '@/lib/utils'


import type { Tag, User, WikiPage } from '@/types' import type { Tag, User, WikiPage } from '@/types'


type Props = { user: User
type Props = { user: User | null
setUser: (user: User) => void } setUser: (user: User) => void }


const enum Menu { None, const enum Menu { None,
@@ -20,7 +20,7 @@ const enum Menu { None,
Wiki } Wiki }




const TopNav: React.FC = ({ user, setUser }: Props) => {
export default ({ user, setUser }: Props) => {
const location = useLocation () const location = useLocation ()
const navigate = useNavigate () const navigate = useNavigate ()


@@ -230,6 +230,3 @@ const TopNav: React.FC = ({ user, setUser }: Props) => {
}) ()} }) ()}
</>) </>)
} }


export default TopNav

+ 1
- 1
frontend/src/pages/posts/PostDetailPage.tsx View File

@@ -16,7 +16,7 @@ import { cn } from '@/lib/utils'


import type { Post, Tag, User } from '@/types' import type { Post, Tag, User } from '@/types'


type Props = { user: User }
type Props = { user: User | null }




export default ({ user }: Props) => { export default ({ user }: Props) => {


+ 5
- 1
frontend/tsconfig.app.json View File

@@ -21,7 +21,11 @@
"noUnusedParameters": true, "noUnusedParameters": true,
"erasableSyntaxOnly": true, "erasableSyntaxOnly": true,
"noFallthroughCasesInSwitch": true, "noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
"noUncheckedSideEffectImports": true,
"baseUrl": "./src",
"paths": {
"@/*": ["*"]
}
}, },
"include": ["src"] "include": ["src"]
} }

Loading…
Cancel
Save