| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -6,6 +6,8 @@ import TopNav from './components/TopNav' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import TagSidebar from './components/TagSidebar' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import PostPage from './pages/PostPage' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import PostDetailPage from './pages/PostDetailPage' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import { API_BASE_URL } from './config' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import axios from 'axios' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			type Tag = { id:        number | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			             name:      string | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -17,18 +19,48 @@ type Post = { id:         number | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              thumbnail:  string | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              tags:       Tag[] } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			type User = { id:               number | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              name:             string | null | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              inheritanceCode:  string | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              role:             string } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			const App = () => { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  const [posts, setPosts] = useState<Post[]> ([]) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  const [user, setUser] = useState<User | null> (null) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  useEffect (() => { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    const createUser = () => ( | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        axios.post (`${ API_BASE_URL }/users`) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        .then (res => { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          if (res.data.code) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              localStorage.setItem ('user_code', res.data.code) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              setUser (res.data) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        })) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    const code = localStorage.getItem ('user_code') | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (code) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        void (axios.post (`${ API_BASE_URL }/users/verify`, { code }) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              .then (res => { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                if (res.data.valid) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                  setUser (res.data.user) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                  createUser () | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			              })) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    else | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      createUser () | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    alert ('このサイトはまだ作りかけです!!!!\n出てけ!!!!!!!!!!!!!!!!!!!!') | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  }, []) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  return ( | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      <Router> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        <div className="flex flex-col h-screen w-screen"> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          <TopNav /> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          <TopNav user={user} /> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          <div className="flex flex-1"> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            <TagSidebar posts={posts} setPosts={setPosts} /> | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            <main className="flex-1 overflow-y-auto p-4"> | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |