Skip to content

Commit 03867d9

Browse files
authored
Merge pull request #294 from connorabbas/develop
Flash messages, updated auth cards, fixes
2 parents d9a9783 + 65e569c commit 03867d9

21 files changed

+379
-183
lines changed

app/Http/Controllers/Settings/ProfileController.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use Illuminate\Http\RedirectResponse;
99
use Illuminate\Http\Request;
1010
use Illuminate\Support\Facades\Auth;
11-
use Illuminate\Support\Facades\Redirect;
1211
use Inertia\Inertia;
1312
use Inertia\Response;
1413

@@ -40,7 +39,7 @@ public function update(ProfileUpdateRequest $request): RedirectResponse
4039

4140
$user?->save();
4241

43-
return Redirect::route('profile.edit');
42+
return redirect()->route('profile.edit');
4443
}
4544

4645
/**

app/Http/Middleware/HandleInertiaRequests.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ public function share(Request $request): array
4646
'auth' => [
4747
'user' => $request->user(),
4848
],
49+
'flash' => [
50+
'success' => fn () => $request->session()->get('flash_success'),
51+
'info' => fn () => $request->session()->get('flash_info'),
52+
'warn' => fn () => $request->session()->get('flash_warn'),
53+
'error' => fn () => $request->session()->get('flash_error'),
54+
'message' => fn () => $request->session()->get('flash_message'),
55+
],
4956
];
5057
}
5158
}

app/Models/User.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
namespace App\Models;
44

55
//use Illuminate\Contracts\Auth\MustVerifyEmail;
6-
use Database\Factories\UserFactory;
76
use Illuminate\Database\Eloquent\Factories\HasFactory;
87
use Illuminate\Foundation\Auth\User as Authenticatable;
98
use Illuminate\Notifications\Notifiable;
109

1110
class User extends Authenticatable //implements MustVerifyEmail
1211
{
13-
/** @use HasFactory<UserFactory> */
12+
/** @use HasFactory<\Database\Factories\UserFactory> */
1413
use HasFactory;
1514
use Notifiable;
1615

bootstrap/app.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
->setStatusCode($response->getStatusCode());
4343
} elseif ($response->getStatusCode() === 419) {
4444
return back()->with([
45-
'message' => 'The page expired, please try again.',
45+
'flash_message' => 'The page expired, please try again.',
4646
]);
4747
}
4848

resources/js/components/DeleteUserModal.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ const deleteUser = () => {
7979
/>
8080
<Button
8181
:loading="form.processing"
82-
label="Delete Account"
82+
label="Delete account"
8383
severity="danger"
8484
@click="deleteUser"
8585
/>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<script setup>
2+
import { Check, Info, TriangleAlert, CircleAlert, Megaphone } from 'lucide-vue-next';
3+
</script>
4+
5+
<template>
6+
<div class="m-0">
7+
<Message
8+
v-if="$page.props.flash.success"
9+
class="mb-6"
10+
severity="success"
11+
closable
12+
>
13+
<template #icon>
14+
<Check />
15+
</template>
16+
{{ $page.props.flash.success }}
17+
</Message>
18+
<Message
19+
v-if="$page.props.flash.info"
20+
class="mb-6"
21+
severity="info"
22+
closable
23+
>
24+
<template #icon>
25+
<Info />
26+
</template>
27+
{{ $page.props.flash.info }}
28+
</Message>
29+
<Message
30+
v-if="$page.props.flash.warn"
31+
class="mb-6"
32+
severity="warn"
33+
closable
34+
>
35+
<template #icon>
36+
<TriangleAlert />
37+
</template>
38+
{{ $page.props.flash.warn }}
39+
</Message>
40+
<Message
41+
v-if="$page.props.flash.error"
42+
class="mb-6"
43+
severity="error"
44+
closable
45+
>
46+
<template #icon>
47+
<CircleAlert />
48+
</template>
49+
{{ $page.props.flash.error }}
50+
</Message>
51+
<Message
52+
v-if="$page.props.flash.message"
53+
class="mb-6"
54+
severity="secondary"
55+
closable
56+
>
57+
<template #icon>
58+
<Megaphone />
59+
</template>
60+
{{ $page.props.flash.message }}
61+
</Message>
62+
</div>
63+
</template>

resources/js/composables/useAppLayout.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export function useAppLayout() {
6565
separator: true
6666
},
6767
{
68-
label: 'Log Out',
68+
label: 'Log out',
6969
lucideIcon: LogOut,
7070
command: () => logout(),
7171
},

resources/js/layouts/GuestAuthLayout.vue

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,50 @@ import ApplicationLogo from '@/components/ApplicationLogo.vue';
44

55
<template>
66
<Container>
7-
<div class="min-h-screen flex flex-col sm:justify-center items-center pt-6 sm:pt-0">
7+
<div class="min-h-screen flex flex-col justify-center items-center pt-6 sm:pt-0">
88
<div>
99
<InertiaLink href="/">
10-
<ApplicationLogo class="w-15 h-15 fill-current text-surface-900 dark:text-surface-0" />
10+
<ApplicationLogo class="w-12 h-12 fill-current text-surface-900 dark:text-surface-0" />
1111
</InertiaLink>
1212
</div>
1313
<div
1414
v-if="$slots.message"
15-
class="w-full sm:max-w-md mt-6 px-4 sm:px-0"
15+
class="w-full sm:max-w-lg mt-6 px-4 sm:px-0"
1616
>
1717
<slot name="message" />
1818
</div>
19-
<div class="w-full sm:max-w-md mt-6">
20-
<Card>
19+
<div class="w-full sm:max-w-lg mt-6">
20+
<Card
21+
pt:caption:class="space-y-2"
22+
pt:body:class="p-6 sm:p-8 space-y-6"
23+
>
24+
<template
25+
v-if="$slots.header"
26+
#header
27+
>
28+
<slot name="header" />
29+
</template>
30+
<template
31+
v-if="$slots.title"
32+
#title
33+
>
34+
<slot name="title" />
35+
</template>
36+
<template
37+
v-if="$slots.subtitle"
38+
#subtitle
39+
>
40+
<slot name="subtitle" />
41+
</template>
2142
<template #content>
2243
<slot />
2344
</template>
45+
<template
46+
v-if="$slots.footer"
47+
#footer
48+
>
49+
<slot name="footer" />
50+
</template>
2451
</Card>
2552
</div>
2653
</div>

resources/js/layouts/app/HeaderLayout.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { useAppLayout } from '@/composables/useAppLayout';
55
import { ChevronsUpDown, ChevronDown, Menu as MenuIcon } from 'lucide-vue-next';
66
import ApplicationLogo from '@/components/ApplicationLogo.vue';
77
import ClientOnly from '@/components/ClientOnly.vue';
8+
import FlashMessages from '@/components/FlashMessages.vue';
89
import Menu from '@/components/primevue/menu/Menu.vue';
910
import Menubar from '@/components/primevue/menu/Menubar.vue';
1011
import PanelMenu from '@/components/primevue/menu/PanelMenu.vue';
@@ -149,6 +150,9 @@ const toggleMobileUserMenu = (event) => {
149150

150151
<main>
151152
<Container vertical>
153+
<!-- Session-based Flash Messages -->
154+
<FlashMessages />
155+
152156
<!-- Breadcrumbs -->
153157
<Breadcrumb
154158
v-if="props.breadcrumbs.length"

resources/js/layouts/app/SidebarLayout.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { ChevronsUpDown, Menu as MenuIcon } from 'lucide-vue-next';
55
import { useAppLayout } from '@/composables/useAppLayout';
66
import ApplicationLogo from '@/components/ApplicationLogo.vue';
77
import ClientOnly from '@/components/ClientOnly.vue';
8+
import FlashMessages from '@/components/FlashMessages.vue';
89
import Menu from '@/components/primevue/menu/Menu.vue';
910
import PanelMenu from '@/components/primevue/menu/PanelMenu.vue';
1011
import Breadcrumb from '@/components/primevue/menu/Breadcrumb.vue';
@@ -154,6 +155,9 @@ const toggleMobileUserMenu = (event) => {
154155
vertical
155156
fluid
156157
>
158+
<!-- Session-based Flash Messages -->
159+
<FlashMessages />
160+
157161
<!-- Breadcrumbs -->
158162
<Breadcrumb
159163
v-if="props.breadcrumbs.length"

0 commit comments

Comments
 (0)