@@ -5,19 +5,19 @@ import { NavLink, Link, useLocation } from 'react-router-dom';
55import { motion } from 'framer-motion' ;
66
77import {
8- HouseIcon ,
9- UserIcon ,
10- BookOpenIcon ,
11- WrenchIcon ,
12- ArticleIcon ,
13- CaretDownIcon ,
14- GameControllerIcon ,
15- ListIcon ,
16- GithubLogoIcon ,
17- GlobeSimpleIcon ,
18- SwordIcon ,
19- AlienIcon ,
20- AnchorIcon , JoystickIcon , BooksIcon , AsteriskSimpleIcon , LinkIcon , ArrowSquareOutIcon , ShuffleIcon , EnvelopeSimpleIcon , RssIcon
8+ House as HouseIcon ,
9+ User as UserIcon ,
10+ BookOpen as BookOpenIcon ,
11+ Wrench as WrenchIcon ,
12+ Article as ArticleIcon ,
13+ CaretDown as CaretDownIcon ,
14+ GameController as GameControllerIcon ,
15+ List as ListIcon ,
16+ GithubLogo as GithubLogoIcon ,
17+ GlobeSimple as GlobeSimpleIcon ,
18+ Sword as SwordIcon ,
19+ Alien as AlienIcon ,
20+ Anchor as AnchorIcon , Joystick as JoystickIcon , Books as BooksIcon , AsteriskSimple as AsteriskSimpleIcon , Link as LinkIcon , ArrowSquareOut as ArrowSquareOutIcon , Shuffle as ShuffleIcon , EnvelopeSimple as EnvelopeSimpleIcon , Rss as RssIcon , SquaresFour as SquaresFourIcon , ComputerTower as ComputerTowerIcon
2121} from '@phosphor-icons/react' ;
2222
2323import Fez from './Fez' ;
@@ -27,6 +27,7 @@ import { version } from '../version';
2727const Sidebar = ( { isOpen, toggleSidebar, toggleModal } ) => {
2828 const [ isMainOpen , setIsMainOpen ] = useState ( true ) ;
2929 const [ isContentOpen , setIsContentOpen ] = useState ( true ) ;
30+ const [ isAppsOpen , setIsAppsOpen ] = useState ( true ) ;
3031 const [ isExtrasOpen , setIsExtrasOpen ] = useState ( false ) ;
3132 const [ isGamesOpen , setIsGamesOpen ] = useState ( false ) ;
3233 const [ isExternalLinksOpen , setIsExternalLinksOpen ] = useState ( false ) ;
@@ -37,15 +38,16 @@ const Sidebar = ({ isOpen, toggleSidebar, toggleModal }) => {
3738 // Effect to update allSectionsOpen when individual sections change
3839 useEffect ( ( ) => {
3940 setAllSectionsOpen (
40- isMainOpen && isContentOpen && isExtrasOpen && isGamesOpen && isExternalLinksOpen ,
41+ isMainOpen && isContentOpen && isAppsOpen && isExtrasOpen && isGamesOpen && isExternalLinksOpen ,
4142 ) ;
42- } , [ isMainOpen , isContentOpen , isGamesOpen , isExtrasOpen , isExternalLinksOpen ] ) ;
43+ } , [ isMainOpen , isContentOpen , isAppsOpen , isGamesOpen , isExtrasOpen , isExternalLinksOpen ] ) ;
4344
4445 const toggleAllSections = ( ) => {
4546 const newState = ! allSectionsOpen ;
4647 setAllSectionsOpen ( newState ) ;
4748 setIsMainOpen ( newState ) ;
4849 setIsContentOpen ( newState ) ;
50+ setIsAppsOpen ( newState ) ;
4951 setIsExtrasOpen ( newState ) ;
5052 setIsGamesOpen ( newState ) ;
5153 setIsExternalLinksOpen ( newState ) ;
@@ -66,6 +68,8 @@ const Sidebar = ({ isOpen, toggleSidebar, toggleModal }) => {
6668 location . pathname . startsWith ( '/projects' ) ||
6769 location . pathname . startsWith ( '/logs' ) ;
6870
71+ const isAppsActive = location . pathname . startsWith ( '/apps' ) ;
72+
6973 const variants = {
7074 open : { x : 0 } ,
7175
@@ -179,6 +183,34 @@ const Sidebar = ({ isOpen, toggleSidebar, toggleModal }) => {
179183 ) }
180184 </ div >
181185
186+ < div className = "mt-8" >
187+ < button
188+ onClick = { ( ) => setIsAppsOpen ( ! isAppsOpen ) }
189+ className = { `flex items-center justify-between w-full text-sm font-normal uppercase tracking-wider mb-4 focus:outline-none ${
190+ isAppsActive ? 'text-red-400' : 'text-gray-100'
191+ } `}
192+ >
193+ < span className = { `flex items-center gap-2 font-sans ${ isAppsActive ? 'text-rose-400' : 'text-white' } ` } >
194+ < SquaresFourIcon size = { 16 } />
195+ < span > Apps</ span >
196+ </ span >
197+
198+ < CaretDownIcon
199+ size = { 20 }
200+ className = { `transition-transform ${ isAppsOpen ? 'transform rotate-180' : '' } ` }
201+ />
202+ </ button >
203+
204+ { isAppsOpen && (
205+ < nav className = "space-y-2 border-l-2 border-gray-700 ml-3 pl-3" >
206+ < NavLink to = "/apps" className = { getLinkClass } >
207+ < SquaresFourIcon size = { 24 } />
208+ < span > All Apps</ span >
209+ </ NavLink >
210+ </ nav >
211+ ) }
212+ </ div >
213+
182214 < div className = "mt-8" >
183215 < button
184216 onClick = { ( ) => setIsExtrasOpen ( ! isExtrasOpen ) }
0 commit comments