Skip to content

Commit 856d9bd

Browse files
authored
Merge pull request #94 from connorabbas/develop
Improved dark mode toggle
2 parents 76ff1a3 + f9b8d67 commit 856d9bd

File tree

11 files changed

+66
-77
lines changed

11 files changed

+66
-77
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Do you need a separate Vue SPA front-end instead of using Inertia.js? Consider u
1313
- Need SSR support? [There's a branch for that.](https://github.com/connorabbas/laravel-inertia-primevue/tree/feature/ssr)
1414
- Pre-configured [Auto Import](https://primevue.org/autoimport/) PrimeVue components
1515
- Wrapper components for PrimeVue's `Menu`, `MenuBar`, & `PanelMenu` utilizing Inertia's `Link` component
16-
- Light/Dark mode toggle with custom component & composable
16+
- Light/Dark mode toggle
1717
- `useLazyDataTable()` composable for use with PrimeVue's `DataTable` component for easy filtering/sorting (example usage in `feature/admin-panel` branch)
1818
- Easily customizable theming
1919

package-lock.json

Lines changed: 43 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"vue": "^3.5.0"
2525
},
2626
"dependencies": {
27+
"@vueuse/core": "^12.2.0",
2728
"lodash": "^4.17.21"
2829
}
2930
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script setup>
2+
import { useDark, useToggle } from '@vueuse/core';
3+
4+
const isDark = useDark();
5+
const toggleDark = useToggle(isDark);
6+
</script>
7+
8+
<template>
9+
<Button
10+
title="Toggle Light/Dark Mode"
11+
:icon="isDark ? 'pi pi-moon' : 'pi pi-sun'"
12+
@click="toggleDark()"
13+
/>
14+
</template>

resources/js/Components/ToggleThemeButton.vue

Lines changed: 0 additions & 18 deletions
This file was deleted.

resources/js/Composables/useTheme.js

Lines changed: 0 additions & 22 deletions
This file was deleted.

resources/js/Layouts/AuthenticatedLayout.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Container from '@/Components/Container.vue';
66
import LinksMenu from '@/Components/PrimeVue/LinksMenu.vue';
77
import LinksMenuBar from '@/Components/PrimeVue/LinksMenuBar.vue';
88
import LinksPanelMenu from '@/Components/PrimeVue/LinksPanelMenu.vue';
9-
import ToggleThemeButton from '@/Components/ToggleThemeButton.vue';
9+
import ToggleDarkModeButton from '@/Components/ToggleDarkModeButton.vue';
1010
1111
const currentRoute = route().current();
1212
const logoutForm = useForm({});
@@ -111,7 +111,7 @@ watchEffect(() => {
111111
class="hidden lg:flex items-center ms-6 space-x-3"
112112
>
113113
<div>
114-
<ToggleThemeButton
114+
<ToggleDarkModeButton
115115
text
116116
severity="secondary"
117117
rounded
@@ -169,7 +169,7 @@ watchEffect(() => {
169169
<!-- Mobile drawer menu -->
170170
<Drawer v-model:visible="mobileMenuOpen" position="right">
171171
<template #header>
172-
<ToggleThemeButton text severity="secondary" rounded />
172+
<ToggleDarkModeButton text severity="secondary" rounded />
173173
</template>
174174
<div>
175175
<div>

resources/js/Pages/Welcome.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script setup>
2-
import ToggleThemeButton from '@/Components/ToggleThemeButton.vue';
2+
import ToggleDarkModeButton from '@/Components/ToggleDarkModeButton.vue';
33
44
defineProps({
55
canLogin: {
@@ -91,7 +91,7 @@ defineProps({
9191
/>
9292
</Link>
9393
</template>
94-
<ToggleThemeButton outlined />
94+
<ToggleDarkModeButton outlined />
9595
<div class="mt-6">
9696
<p class="m-0 text-sm text-muted-color">
9797
Laravel v{{ laravelVersion }} (PHP v{{

resources/js/app.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { ZiggyVue } from '../../vendor/tightenco/ziggy';
1010
import PrimeVue from 'primevue/config';
1111
import ToastService from 'primevue/toastservice';
1212

13-
import { useTheme } from '@/Composables/useTheme.js';
1413
import customThemePreset from '@/theme-preset.js';
1514

1615
const appName = import.meta.env.VITE_APP_NAME || 'Laravel';
@@ -23,11 +22,6 @@ createInertiaApp({
2322
import.meta.glob('./Pages/**/*.vue')
2423
),
2524
setup({ el, App, props, plugin }) {
26-
// set site theme (light/dark mode)
27-
const { initSiteTheme } = useTheme();
28-
initSiteTheme();
29-
30-
// start the app
3125
return createApp({ render: () => h(App, props) })
3226
.use(plugin)
3327
.use(ZiggyVue, Ziggy)

resources/js/theme-preset.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const customThemePreset = definePreset(Preset, {
5454
export default {
5555
preset: customThemePreset,
5656
options: {
57-
darkModeSelector: '.dark-mode',
57+
darkModeSelector: '.dark',
5858
cssLayer: {
5959
name: 'primevue',
6060
order: 'tailwind-base, primevue, tailwind-utilities',

tailwind.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ module.exports = {
1414
},
1515
},
1616
plugins: [require('postcss-import'), require('tailwindcss-primeui')],
17-
darkMode: ['selector', '[class*="dark-mode"]'],
17+
darkMode: ['selector'],
1818
};

0 commit comments

Comments
 (0)