• Y
  • List All
  • Feedback
    • This Project
    • This Group
    • All Projects
Profile Account settings Log out
  • Favorite
  • Project
  • All
Loading...
  • Log in
  • Sign up
itnAdmin / base_react star
  • Project homeH
  • CodeC
  • IssueI
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB
  • Files
  • Commit
  • Branches
base_reactsrcApp.tsx
Download as .zip file
File name
Commit message
Commit date
public/publish
init commit
05-04
src
admin menu load + login process api
05-06
.gitignore
init commit
05-04
eslint.config.js
init commit
05-04
index.html
init commit
05-04
package-lock.json
init commit
05-04
package.json
init commit
05-04
tsconfig.app.json
init commit
05-04
tsconfig.json
init commit
05-04
tsconfig.node.json
init commit
05-04
vite.config.ts
admin menu load + login process api
05-06
File name
Commit message
Commit date
admin
admin menu load + login process api
05-06
api
admin menu load + login process api
05-06
styles
init commit
05-04
user
init commit
05-04
App.tsx
init commit
05-04
main.tsx
init commit
05-04
chominsoo4245 05-04 e24a741 init commit UNIX
Raw Open in browser Change history
import { useEffect, useState } from 'react'; import { UserLayout } from './user/UserLayout'; import { UserListPage } from './user/UserListPage'; import {AdminLayout} from "./admin/layout/AdminLayout.tsx"; type Skin = 'admin' | 'user'; function getInitialSkin(): Skin { const params = new URLSearchParams(window.location.search); return params.get('skin') === 'user' ? 'user' : 'admin'; } function switchSkin(nextSkin: Skin) { const url = new URL(window.location.href); url.searchParams.set('skin', nextSkin); window.location.href = url.toString(); } export default function App() { const [skin] = useState<Skin>(getInitialSkin); const [styleReady, setStyleReady] = useState(false); useEffect(() => { let mounted = true; document.body.dataset.skin = skin; const loadStyles = skin === 'admin' ? import('./admin') : import('./user'); loadStyles.finally(() => { if (mounted) { setStyleReady(true); } }); return () => { mounted = false; }; }, [skin]); if (!styleReady) { return <div style={{ padding: 24 }}>Loading publishing styles...</div>; } return ( <> <div className="skin_switcher"> <button type="button" className={skin === 'admin' ? 'active' : ''} onClick={() => switchSkin('admin')}> Admin layout </button> <button type="button" className={skin === 'user' ? 'active' : ''} onClick={() => switchSkin('user')}> User layout </button> </div> {skin === 'admin' ? ( <AdminLayout children={undefined}> </AdminLayout> ) : ( <UserLayout> <UserListPage /> </UserLayout> )} </> ); }

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
Sign in with github login with Google Sign in with Google
Reset password | Sign up