import React, { useEffect, useState } from 'react' import { BrowserRouter as Router, Route, Routes, Navigate } from 'react-router-dom' import HomePage from './pages/HomePage' import TagPage from './pages/TagPage' import TopNav from './components/TopNav' import TagSidebar from './components/TagSidebar' import PostPage from './pages/PostPage' import PostNewPage from './pages/PostNewPage' import PostDetailPage from './pages/PostDetailPage' import WikiShowPage from './pages/WikiShowPage' import { API_BASE_URL } from './config' import axios from 'axios' import { Toaster } from '@/components/ui/toaster' import { camelizeKeys } from 'humps' type Tag = { id: number name: string category: string } type Post = { id: number url: string title: string thumbnail: string tags: Tag[] viewed: boolean } type User = { id: number name: string | null inheritanceCode: string role: string } const App = () => { const [posts, setPosts] = useState ([]) const [user, setUser] = useState (null) useEffect (() => { const createUser = () => ( axios.post (`${ API_BASE_URL }/users`) .then (res => { if (res.data.code) { localStorage.setItem ('user_code', res.data.code) setUser (camelizeKeys (res.data.user)) } })) const code = localStorage.getItem ('user_code') if (code) { void (axios.post (`${ API_BASE_URL }/users/verify`, { code }) .then (res => { if (res.data.valid) setUser (camelizeKeys (res.data.user)) else createUser () })) } else createUser () alert ('このサイトはまだ作りかけです!!!!\n出てけ!!!!!!!!!!!!!!!!!!!!') }, []) return ( <>
} /> } />
} /> } /> } /> } /> } /> } />
) } export default App