diff --git a/web/package.json b/web/package.json index e73525e2..66e832c2 100644 --- a/web/package.json +++ b/web/package.json @@ -11,6 +11,8 @@ "dev": "NODE_ENV=development webpack serve" }, "dependencies": { + "@iconify/iconify": "^2.0.2", + "@iconify/react": "^3.0.0-alpha.1", "clsx": "^1.1.1", "react": "^17.0.2", "react-dom": "^17.0.2", diff --git a/web/src/App.tsx b/web/src/App.tsx index a1173f49..6b69a9e3 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -1,8 +1,19 @@ import React from 'react'; +import { Icon } from '@iconify/react'; +import clsx, { ClassValue } from 'clsx'; -const Icon: React.FC = React.memo(() => { +const NavItem: React.FC<{ + className?: ClassValue; +}> = React.memo((props) => { return ( -
+
+ {props.children} +
); }); @@ -10,15 +21,30 @@ export const App: React.FC = React.memo(() => { return (
- -
- - - - + {/* Navbar */} +
+ +
+ + + + + + + +
+
+ +
+
+
+ {/* Sidebar */} +
目标
-
-
+
{/* Main Content */}
); }); diff --git a/yarn.lock b/yarn.lock index 4f8ff2b6..ee058c5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,6 +42,18 @@ dependencies: purgecss "^4.0.3" +"@iconify/iconify@^2.0.2": + version "2.0.2" + resolved "http://npm.gllue.net/@iconify%2ficonify/-/iconify-2.0.2.tgz#8e8be6c8f20042ab69324bc6db6fc884be98b418" + integrity sha1-jovmyPIAQqtpMkvG22/IhL6YtBg= + dependencies: + cross-fetch "^3.0.6" + +"@iconify/react@^3.0.0-alpha.1": + version "3.0.0-alpha.1" + resolved "http://npm.gllue.net/@iconify%2freact/-/react-3.0.0-alpha.1.tgz#cdb16cf4f651a8e781e3ea363c4a842077baf10f" + integrity sha1-zbFs9PZRqOeB4+o2PEqEIHe68Q8= + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "http://npm.gllue.net/@nodelib%2ffs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1111,6 +1123,13 @@ create-require@^1.1.0: resolved "http://npm.gllue.net/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha1-wdfo8eX2z8n/ZfnNNS03NIdWwzM= +cross-fetch@^3.0.6: + version "3.1.4" + resolved "http://npm.gllue.net/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39" + integrity sha1-lyPzo6JHv4uJA586OAqSROj6Lzk= + dependencies: + node-fetch "2.6.1" + cross-spawn@^6.0.0: version "6.0.5" resolved "http://npm.gllue.net/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -2861,6 +2880,11 @@ node-emoji@^1.8.1: dependencies: lodash.toarray "^4.4.0" +node-fetch@2.6.1: + version "2.6.1" + resolved "http://npm.gllue.net/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha1-BFvTI2Mfdu0uK1VXM5RBa2OaAFI= + node-forge@^0.10.0: version "0.10.0" resolved "http://npm.gllue.net/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"