This commit is contained in:
Generated
+1
-3
@@ -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": {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
@@ -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"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user