Skip to content

Commit 7188677

Browse files
added dark mode for sidebar/mobile menu (wasp-lang#17)
* added dark mode for sidebar * fixed menu behavior * removed lucide icons, replaced with react-icons icon
1 parent 962644a commit 7188677

File tree

4 files changed

+125
-49
lines changed

4 files changed

+125
-49
lines changed

app/main.wasp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ app SaaSTemplate {
8383
("@faker-js/faker", "8.3.1"),
8484
("@google-analytics/data", "4.1.0"),
8585
("openai", "^4.24.1"),
86-
("lucide-react", "0.306.0"),
8786
("prettier", "3.1.1"),
8887
("prettier-plugin-tailwindcss", "0.5.11"),
8988
("zod", "3.22.4")

app/src/client/app/DemoAppPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { useQuery } from '@wasp/queries';
77
import getAllTasksByUser from '@wasp/queries/getAllTasksByUser';
88
import { Task } from '@wasp/entities';
99
import { CgSpinner } from 'react-icons/cg';
10-
import { XSquare } from 'lucide-react';
10+
import { TiDelete } from 'react-icons/ti';
1111

1212
export default function DemoAppPage() {
1313
return (
@@ -97,7 +97,7 @@ function Todo({ id, isDone, description, time }: TodoProps) {
9797
</div>
9898
<div className='flex items-center justify-end w-15'>
9999
<button className='p-1' onClick={handleDeleteClick} title='Remove task'>
100-
<XSquare size='20' className='text-red-600 hover:text-red-700' />
100+
<TiDelete size='20' className='text-red-600 hover:text-red-700' />
101101
</button>
102102
</div>
103103
</div>

app/src/client/components/AppNavBar.tsx

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,25 @@ import { Link } from '@wasp/router';
1313

1414
const navigation = [
1515
{ name: 'AI Scheduler (Demo App)', href: '/demo-app' },
16-
{ name: 'Pricing', href: '/pricing'},
17-
{ name: 'Documentation', href: DOCS_URL },
18-
{ name: 'Blog', href: BLOG_URL },
19-
];
16+
{ name: 'Pricing', href: '/pricing' },
17+
{ name: 'Documentation', href: DOCS_URL },
18+
{ name: 'Blog', href: BLOG_URL },
19+
];
2020

21-
const NavLogo = () => <img className='h-8 w-8' src={logo} alt='Your SaaS App' />;
21+
const NavLogo = () => (
22+
<img className='h-8 w-8' src={logo} alt='Your SaaS App' />
23+
);
2224

2325
export default function AppNavBar() {
2426
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
2527

2628
const { data: user, isLoading: isUserLoading } = useAuth();
2729
return (
2830
<header className='absolute inset-x-0 top-0 z-50 shadow sticky bg-white bg-opacity-50 backdrop-blur-lg backdrop-filter dark:border-strokedark dark:bg-boxdark-2'>
29-
<nav className='flex items-center justify-between p-6 lg:px-8' aria-label='Global'>
31+
<nav
32+
className='flex items-center justify-between p-6 lg:px-8'
33+
aria-label='Global'
34+
>
3035
<div className='flex lg:flex-1'>
3136
<a href='/' className='-m-1.5 p-1.5'>
3237
<img className='h-8 w-8' src={logo} alt='My SaaS App' />
@@ -35,7 +40,7 @@ export default function AppNavBar() {
3540
<div className='flex lg:hidden'>
3641
<button
3742
type='button'
38-
className='-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700'
43+
className='-m-2.5 inline-flex items-center justify-center rounded-md p-2.5 text-gray-700 dark:text-white'
3944
onClick={() => setMobileMenuOpen(true)}
4045
>
4146
<span className='sr-only'>Open main menu</span>
@@ -60,7 +65,10 @@ export default function AppNavBar() {
6065
</ul>
6166
</div>
6267
{isUserLoading ? null : !user ? (
63-
<a href={!user ? '/login' : '/account'} className='text-sm font-semibold leading-6 ml-4'>
68+
<a
69+
href={!user ? '/login' : '/account'}
70+
className='text-sm font-semibold leading-6 ml-4'
71+
>
6472
<div className='flex items-center duration-300 ease-in-out text-gray-900 hover:text-yellow-500 dark:text-white'>
6573
Log in <BiLogIn size='1.1rem' className='ml-1 mt-[0.1rem]' />
6674
</div>
@@ -72,17 +80,22 @@ export default function AppNavBar() {
7280
)}
7381
</div>
7482
</nav>
75-
<Dialog as='div' className='lg:hidden' open={mobileMenuOpen} onClose={setMobileMenuOpen}>
83+
<Dialog
84+
as='div'
85+
className='lg:hidden'
86+
open={mobileMenuOpen}
87+
onClose={setMobileMenuOpen}
88+
>
7689
<div className='fixed inset-0 z-50' />
77-
<Dialog.Panel className='fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-white px-6 py-6 sm:max-w-sm sm:ring-1 sm:ring-gray-900/10'>
90+
<Dialog.Panel className='fixed inset-y-0 right-0 z-50 w-full overflow-y-auto bg-white dark:text-white dark:bg-boxdark px-6 py-6 sm:max-w-sm sm:ring-1 sm:ring-gray-900/10'>
7891
<div className='flex items-center justify-between'>
7992
<a href='/' className='-m-1.5 p-1.5'>
8093
<span className='sr-only'>Your SaaS</span>
8194
<NavLogo />
8295
</a>
8396
<button
8497
type='button'
85-
className='-m-2.5 rounded-md p-2.5 text-gray-700'
98+
className='-m-2.5 rounded-md p-2.5 text-gray-700 dark:text-gray-50'
8699
onClick={() => setMobileMenuOpen(false)}
87100
>
88101
<span className='sr-only'>Close menu</span>
@@ -96,7 +109,7 @@ export default function AppNavBar() {
96109
<a
97110
key={item.name}
98111
href={item.href}
99-
className='-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50'
112+
className='-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50 dark:text-white hover:dark:bg-boxdark-2'
100113
>
101114
{item.name}
102115
</a>
@@ -105,7 +118,7 @@ export default function AppNavBar() {
105118
<div className='py-6'>
106119
{isUserLoading ? null : !user ? (
107120
<Link to='/login'>
108-
<div className='flex justify-end items-center duration-300 ease-in-out text-gray-900 hover:text-yellow-500'>
121+
<div className='flex justify-end items-center duration-300 ease-in-out text-gray-900 hover:text-yellow-500 dark:text-white'>
109122
Log in <BiLogIn size='1.1rem' className='ml-1' />
110123
</div>
111124
</Link>
@@ -119,4 +132,4 @@ export default function AppNavBar() {
119132
</Dialog>
120133
</header>
121134
);
122-
}
135+
}

0 commit comments

Comments
 (0)