kaze 0.4.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kaze/commands/install_command.rb +25 -13
  3. data/lib/kaze/commands/installs_hotwire_stack.rb +11 -8
  4. data/lib/kaze/commands/installs_inertia_stacks.rb +34 -24
  5. data/lib/kaze/commands/version_command.rb +6 -0
  6. data/lib/kaze/version.rb +1 -1
  7. data/lib/kaze.rb +1 -3
  8. data/stubs/default/app/forms/auth/login_form.rb +2 -8
  9. data/stubs/default/app/forms/auth/new_password_form.rb +1 -1
  10. data/stubs/default/app/forms/update_profile_information_form.rb +1 -1
  11. data/stubs/default/app/mailers/application_mailer.rb +4 -4
  12. data/stubs/default/app/mailers/user_mailer.rb +1 -1
  13. data/stubs/default/app/models/auth.rb +57 -0
  14. data/stubs/default/app/models/current.rb +1 -1
  15. data/stubs/default/app/validators/current_password_validator.rb +1 -1
  16. data/stubs/default/app/validators/email_validator.rb +1 -1
  17. data/stubs/default/app/validators/lowercase_validator.rb +2 -2
  18. data/stubs/default/app/views/layouts/mailer.html.erb +367 -372
  19. data/stubs/default/app/views/layouts/mailer.text.erb +1 -4
  20. data/stubs/default/app/views/user_mailer/reset_password.html.erb +21 -26
  21. data/stubs/default/config/routes.rb +16 -16
  22. data/stubs/default/db/migrate/20240101000001_create_delayed_jobs.rb +1 -1
  23. data/stubs/default/test/factories/users.rb +7 -0
  24. data/stubs/default/test/integration/auth/authentication_test.rb +43 -0
  25. data/stubs/default/test/integration/auth/password_reset_test.rb +41 -0
  26. data/stubs/default/test/integration/auth/registration_test.rb +21 -0
  27. data/stubs/default/test/integration/password_update_test.rb +28 -0
  28. data/stubs/default/test/integration/profile_test.rb +51 -0
  29. data/stubs/default/test/test_helper.rb +38 -0
  30. data/stubs/hotwire/app/components/danger_button_component.rb +1 -1
  31. data/stubs/hotwire/app/components/dropdown_component.html.erb +17 -18
  32. data/stubs/hotwire/app/components/dropdown_component.rb +7 -7
  33. data/stubs/hotwire/app/components/modal_component.html.erb +55 -59
  34. data/stubs/hotwire/app/components/modal_component.rb +6 -6
  35. data/stubs/hotwire/app/components/primary_button_component.rb +1 -1
  36. data/stubs/hotwire/app/components/secondary_button_component.rb +1 -1
  37. data/stubs/hotwire/app/controllers/application_controller.rb +1 -0
  38. data/stubs/hotwire/app/controllers/auth/authenticated_session_controller.rb +12 -9
  39. data/stubs/hotwire/app/controllers/auth/new_password_controller.rb +7 -5
  40. data/stubs/hotwire/app/controllers/auth/password_reset_link_controller.rb +7 -5
  41. data/stubs/hotwire/app/controllers/auth/registered_user_controller.rb +7 -5
  42. data/stubs/hotwire/app/controllers/concerns/authenticate.rb +5 -20
  43. data/stubs/hotwire/app/controllers/concerns/redirect_if_authenticated.rb +19 -0
  44. data/stubs/hotwire/app/controllers/concerns/set_current_auth.rb +9 -0
  45. data/stubs/hotwire/app/controllers/password_controller.rb +3 -3
  46. data/stubs/hotwire/app/controllers/profile_controller.rb +11 -9
  47. data/stubs/hotwire/app/controllers/welcome_controller.rb +1 -1
  48. data/stubs/hotwire/app/javascript/application.js +3 -3
  49. data/stubs/hotwire/app/views/auth/forgot_password.html.erb +12 -17
  50. data/stubs/hotwire/app/views/auth/login.html.erb +0 -9
  51. data/stubs/hotwire/app/views/auth/register.html.erb +0 -13
  52. data/stubs/hotwire/app/views/auth/reset_password.html.erb +0 -7
  53. data/stubs/hotwire/app/views/dashboard/index.html.erb +9 -10
  54. data/stubs/hotwire/app/views/layouts/_navigation.html.erb +77 -87
  55. data/stubs/hotwire/app/views/layouts/application.html.erb +0 -9
  56. data/stubs/hotwire/app/views/layouts/guest.html.erb +0 -6
  57. data/stubs/hotwire/app/views/profile/edit.html.erb +19 -22
  58. data/stubs/hotwire/app/views/profile/partials/_delete_user_form.html.erb +32 -42
  59. data/stubs/hotwire/app/views/profile/partials/_update_password_form.html.erb +42 -55
  60. data/stubs/hotwire/app/views/profile/partials/_update_profile_information_form.html.erb +36 -46
  61. data/stubs/hotwire/app/views/welcome/index.html.erb +34 -46
  62. data/stubs/hotwire/config/importmap.rb +3 -3
  63. data/stubs/hotwire/config/tailwind.config.js +2 -2
  64. data/stubs/inertia-common/app/controllers/application_controller.rb +1 -0
  65. data/stubs/inertia-common/app/controllers/auth/authenticated_session_controller.rb +11 -8
  66. data/stubs/inertia-common/app/controllers/auth/new_password_controller.rb +5 -3
  67. data/stubs/inertia-common/app/controllers/auth/password_reset_link_controller.rb +5 -3
  68. data/stubs/inertia-common/app/controllers/auth/registered_user_controller.rb +5 -3
  69. data/stubs/inertia-common/app/controllers/concerns/authenticate.rb +5 -20
  70. data/stubs/inertia-common/app/controllers/concerns/handle_inertia_requests.rb +1 -1
  71. data/stubs/inertia-common/app/controllers/concerns/redirect_if_authenticated.rb +19 -0
  72. data/stubs/inertia-common/app/controllers/concerns/set_current_auth.rb +9 -0
  73. data/stubs/inertia-common/app/controllers/concerns/verify_csrf_token.rb +4 -4
  74. data/stubs/inertia-common/app/controllers/dashboard_controller.rb +1 -1
  75. data/stubs/inertia-common/app/controllers/password_controller.rb +1 -1
  76. data/stubs/inertia-common/app/controllers/profile_controller.rb +7 -5
  77. data/stubs/inertia-common/app/controllers/welcome_controller.rb +2 -2
  78. data/stubs/inertia-common/bin/vite +6 -6
  79. data/stubs/inertia-common/test/integration/password_update_test.rb +28 -0
  80. data/stubs/inertia-common/test/integration/profile_test.rb +51 -0
  81. data/stubs/inertia-react-ts/app/javascript/Components/ApplicationLogo.tsx +13 -9
  82. data/stubs/inertia-react-ts/app/javascript/Components/Checkbox.tsx +15 -12
  83. data/stubs/inertia-react-ts/app/javascript/Components/DangerButton.tsx +20 -15
  84. data/stubs/inertia-react-ts/app/javascript/Components/Dropdown.tsx +119 -87
  85. data/stubs/inertia-react-ts/app/javascript/Components/InputError.tsx +14 -7
  86. data/stubs/inertia-react-ts/app/javascript/Components/InputLabel.tsx +18 -7
  87. data/stubs/inertia-react-ts/app/javascript/Components/Modal.tsx +60 -60
  88. data/stubs/inertia-react-ts/app/javascript/Components/NavLink.tsx +21 -16
  89. data/stubs/inertia-react-ts/app/javascript/Components/PrimaryButton.tsx +20 -15
  90. data/stubs/inertia-react-ts/app/javascript/Components/ResponsiveNavLink.tsx +19 -14
  91. data/stubs/inertia-react-ts/app/javascript/Components/SecondaryButton.tsx +22 -16
  92. data/stubs/inertia-react-ts/app/javascript/Components/TextInput.tsx +35 -24
  93. data/stubs/inertia-react-ts/app/javascript/Layouts/AuthenticatedLayout.tsx +157 -117
  94. data/stubs/inertia-react-ts/app/javascript/Layouts/GuestLayout.tsx +15 -15
  95. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/ForgotPassword.tsx +52 -49
  96. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/Login.tsx +90 -82
  97. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/Register.tsx +118 -115
  98. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/ResetPassword.tsx +63 -60
  99. data/stubs/inertia-react-ts/app/javascript/Pages/Dashboard.tsx +23 -17
  100. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Edit.tsx +31 -27
  101. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/DeleteUserForm.tsx +109 -99
  102. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/UpdatePasswordForm.tsx +121 -113
  103. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.tsx +76 -69
  104. data/stubs/inertia-react-ts/app/javascript/Pages/Welcome.tsx +87 -63
  105. data/stubs/inertia-react-ts/app/javascript/entrypoints/application.tsx +32 -25
  106. data/stubs/inertia-react-ts/app/views/layouts/application.html.erb +0 -4
  107. data/stubs/inertia-react-ts/config/tailwind.config.js +2 -2
  108. data/stubs/inertia-react-ts/vite.config.ts +2 -5
  109. data/stubs/inertia-vue-ts/app/javascript/Components/ApplicationLogo.vue +10 -6
  110. data/stubs/inertia-vue-ts/app/javascript/Components/Checkbox.vue +18 -18
  111. data/stubs/inertia-vue-ts/app/javascript/Components/DangerButton.vue +5 -5
  112. data/stubs/inertia-vue-ts/app/javascript/Components/Dropdown.vue +60 -57
  113. data/stubs/inertia-vue-ts/app/javascript/Components/DropdownLink.vue +9 -9
  114. data/stubs/inertia-vue-ts/app/javascript/Components/InputError.vue +7 -7
  115. data/stubs/inertia-vue-ts/app/javascript/Components/InputLabel.vue +6 -6
  116. data/stubs/inertia-vue-ts/app/javascript/Components/Modal.vue +84 -74
  117. data/stubs/inertia-vue-ts/app/javascript/Components/NavLink.vue +12 -12
  118. data/stubs/inertia-vue-ts/app/javascript/Components/PrimaryButton.vue +5 -5
  119. data/stubs/inertia-vue-ts/app/javascript/Components/ResponsiveNavLink.vue +12 -12
  120. data/stubs/inertia-vue-ts/app/javascript/Components/SecondaryButton.vue +13 -13
  121. data/stubs/inertia-vue-ts/app/javascript/Components/TextInput.vue +13 -13
  122. data/stubs/inertia-vue-ts/app/javascript/Layouts/AuthenticatedLayout.vue +168 -136
  123. data/stubs/inertia-vue-ts/app/javascript/Layouts/GuestLayout.vue +15 -13
  124. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/ForgotPassword.vue +56 -49
  125. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/Login.vue +78 -72
  126. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/Register.vue +101 -97
  127. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/ResetPassword.vue +71 -68
  128. data/stubs/inertia-vue-ts/app/javascript/Pages/Dashboard.vue +22 -14
  129. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Edit.vue +34 -30
  130. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/DeleteUserForm.vue +87 -83
  131. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/UpdatePasswordForm.vue +105 -98
  132. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.vue +69 -59
  133. data/stubs/inertia-vue-ts/app/javascript/Pages/Welcome.vue +74 -47
  134. data/stubs/inertia-vue-ts/app/views/layouts/application.html.erb +0 -4
  135. data/stubs/inertia-vue-ts/config/tailwind.config.js +2 -2
  136. data/stubs/inertia-vue-ts/vite.config.ts +2 -5
  137. metadata +19 -6
  138. data/stubs/hotwire/bin/vite +0 -27
  139. data/stubs/inertia-common/Procfile.dev +0 -3
  140. /data/stubs/{hotwire → default}/Procfile.dev +0 -0
  141. /data/stubs/hotwire/app/javascript/{alpinejs.js → alpinejs.stub} +0 -0
@@ -1,118 +1,121 @@
1
- import { useEffect, FormEventHandler } from 'react';
2
- import GuestLayout from '@/Layouts/GuestLayout';
3
- import InputError from '@/Components/InputError';
4
- import InputLabel from '@/Components/InputLabel';
5
- import PrimaryButton from '@/Components/PrimaryButton';
6
- import TextInput from '@/Components/TextInput';
7
- import { Head, Link, useForm } from '@inertiajs/react';
8
- import { login_path, register_path } from '@/routes';
1
+ import { useEffect, FormEventHandler } from 'react'
2
+ import GuestLayout from '@/Layouts/GuestLayout'
3
+ import InputError from '@/Components/InputError'
4
+ import InputLabel from '@/Components/InputLabel'
5
+ import PrimaryButton from '@/Components/PrimaryButton'
6
+ import TextInput from '@/Components/TextInput'
7
+ import { Head, Link, useForm } from '@inertiajs/react'
8
+ import { login_path, register_path } from '@/routes'
9
9
 
10
10
  export default function Register() {
11
- const { data, setData, post, processing, errors, reset } = useForm({
12
- name: '',
13
- email: '',
14
- password: '',
15
- password_confirmation: '',
16
- });
17
-
18
- useEffect(() => {
19
- return () => {
20
- reset('password', 'password_confirmation');
21
- };
22
- }, []);
23
-
24
- const submit: FormEventHandler = (e) => {
25
- e.preventDefault();
26
-
27
- post(register_path());
28
- };
29
-
30
- return (
31
- <GuestLayout>
32
- <Head title="Register" />
33
-
34
- <form onSubmit={submit}>
35
- <div>
36
- <InputLabel htmlFor="name" value="Name" />
37
-
38
- <TextInput
39
- id="name"
40
- name="name"
41
- value={data.name}
42
- className="mt-1 block w-full"
43
- autoComplete="name"
44
- isFocused={true}
45
- onChange={(e) => setData('name', e.target.value)}
46
- required
47
- />
48
-
49
- <InputError message={errors.name} className="mt-2" />
50
- </div>
51
-
52
- <div className="mt-4">
53
- <InputLabel htmlFor="email" value="Email" />
54
-
55
- <TextInput
56
- id="email"
57
- type="email"
58
- name="email"
59
- value={data.email}
60
- className="mt-1 block w-full"
61
- autoComplete="username"
62
- onChange={(e) => setData('email', e.target.value)}
63
- required
64
- />
65
-
66
- <InputError message={errors.email} className="mt-2" />
67
- </div>
68
-
69
- <div className="mt-4">
70
- <InputLabel htmlFor="password" value="Password" />
71
-
72
- <TextInput
73
- id="password"
74
- type="password"
75
- name="password"
76
- value={data.password}
77
- className="mt-1 block w-full"
78
- autoComplete="new-password"
79
- onChange={(e) => setData('password', e.target.value)}
80
- required
81
- />
82
-
83
- <InputError message={errors.password} className="mt-2" />
84
- </div>
85
-
86
- <div className="mt-4">
87
- <InputLabel htmlFor="password_confirmation" value="Confirm Password" />
88
-
89
- <TextInput
90
- id="password_confirmation"
91
- type="password"
92
- name="password_confirmation"
93
- value={data.password_confirmation}
94
- className="mt-1 block w-full"
95
- autoComplete="new-password"
96
- onChange={(e) => setData('password_confirmation', e.target.value)}
97
- required
98
- />
99
-
100
- <InputError message={errors.password_confirmation} className="mt-2" />
101
- </div>
102
-
103
- <div className="flex items-center justify-end mt-4">
104
- <Link
105
- href={login_path()}
106
- className="underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
107
- >
108
- Already registered?
109
- </Link>
110
-
111
- <PrimaryButton className="ms-4" disabled={processing}>
112
- Register
113
- </PrimaryButton>
114
- </div>
115
- </form>
116
- </GuestLayout>
117
- );
11
+ const { data, setData, post, processing, errors, reset } = useForm({
12
+ name: '',
13
+ email: '',
14
+ password: '',
15
+ password_confirmation: '',
16
+ })
17
+
18
+ useEffect(() => {
19
+ return () => {
20
+ reset('password', 'password_confirmation')
21
+ }
22
+ }, [])
23
+
24
+ const submit: FormEventHandler = (e) => {
25
+ e.preventDefault()
26
+
27
+ post(register_path())
28
+ }
29
+
30
+ return (
31
+ <GuestLayout>
32
+ <Head title="Register" />
33
+
34
+ <form onSubmit={submit}>
35
+ <div>
36
+ <InputLabel htmlFor="name" value="Name" />
37
+
38
+ <TextInput
39
+ id="name"
40
+ name="name"
41
+ value={data.name}
42
+ className="mt-1 block w-full"
43
+ autoComplete="name"
44
+ isFocused={true}
45
+ onChange={(e) => setData('name', e.target.value)}
46
+ required
47
+ />
48
+
49
+ <InputError message={errors.name} className="mt-2" />
50
+ </div>
51
+
52
+ <div className="mt-4">
53
+ <InputLabel htmlFor="email" value="Email" />
54
+
55
+ <TextInput
56
+ id="email"
57
+ type="email"
58
+ name="email"
59
+ value={data.email}
60
+ className="mt-1 block w-full"
61
+ autoComplete="username"
62
+ onChange={(e) => setData('email', e.target.value)}
63
+ required
64
+ />
65
+
66
+ <InputError message={errors.email} className="mt-2" />
67
+ </div>
68
+
69
+ <div className="mt-4">
70
+ <InputLabel htmlFor="password" value="Password" />
71
+
72
+ <TextInput
73
+ id="password"
74
+ type="password"
75
+ name="password"
76
+ value={data.password}
77
+ className="mt-1 block w-full"
78
+ autoComplete="new-password"
79
+ onChange={(e) => setData('password', e.target.value)}
80
+ required
81
+ />
82
+
83
+ <InputError message={errors.password} className="mt-2" />
84
+ </div>
85
+
86
+ <div className="mt-4">
87
+ <InputLabel
88
+ htmlFor="password_confirmation"
89
+ value="Confirm Password"
90
+ />
91
+
92
+ <TextInput
93
+ id="password_confirmation"
94
+ type="password"
95
+ name="password_confirmation"
96
+ value={data.password_confirmation}
97
+ className="mt-1 block w-full"
98
+ autoComplete="new-password"
99
+ onChange={(e) => setData('password_confirmation', e.target.value)}
100
+ required
101
+ />
102
+
103
+ <InputError message={errors.password_confirmation} className="mt-2" />
104
+ </div>
105
+
106
+ <div className="flex items-center justify-end mt-4">
107
+ <Link
108
+ href={login_path()}
109
+ className="underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
110
+ >
111
+ Already registered?
112
+ </Link>
113
+
114
+ <PrimaryButton className="ms-4" disabled={processing}>
115
+ Register
116
+ </PrimaryButton>
117
+ </div>
118
+ </form>
119
+ </GuestLayout>
120
+ )
118
121
  }
@@ -1,74 +1,77 @@
1
- import { useEffect, FormEventHandler } from 'react';
2
- import GuestLayout from '@/Layouts/GuestLayout';
3
- import InputError from '@/Components/InputError';
4
- import InputLabel from '@/Components/InputLabel';
5
- import PrimaryButton from '@/Components/PrimaryButton';
6
- import TextInput from '@/Components/TextInput';
7
- import { Head, useForm } from '@inertiajs/react';
8
- import { password_store_path } from '@/routes';
1
+ import { useEffect, FormEventHandler } from 'react'
2
+ import GuestLayout from '@/Layouts/GuestLayout'
3
+ import InputError from '@/Components/InputError'
4
+ import InputLabel from '@/Components/InputLabel'
5
+ import PrimaryButton from '@/Components/PrimaryButton'
6
+ import TextInput from '@/Components/TextInput'
7
+ import { Head, useForm } from '@inertiajs/react'
8
+ import { password_store_path } from '@/routes'
9
9
 
10
10
  export default function ResetPassword({ token }: { token: string }) {
11
- const { data, setData, post, processing, errors, reset } = useForm({
12
- token: token,
13
- password: '',
14
- password_confirmation: '',
15
- });
11
+ const { data, setData, post, processing, errors, reset } = useForm({
12
+ token: token,
13
+ password: '',
14
+ password_confirmation: '',
15
+ })
16
16
 
17
- useEffect(() => {
18
- return () => {
19
- reset('password', 'password_confirmation');
20
- };
21
- }, []);
17
+ useEffect(() => {
18
+ return () => {
19
+ reset('password', 'password_confirmation')
20
+ }
21
+ }, [])
22
22
 
23
- const submit: FormEventHandler = (e) => {
24
- e.preventDefault();
23
+ const submit: FormEventHandler = (e) => {
24
+ e.preventDefault()
25
25
 
26
- post(password_store_path());
27
- };
26
+ post(password_store_path())
27
+ }
28
28
 
29
- return (
30
- <GuestLayout>
31
- <Head title="Reset Password" />
29
+ return (
30
+ <GuestLayout>
31
+ <Head title="Reset Password" />
32
32
 
33
- <form onSubmit={submit}>
34
- <div className="mt-4">
35
- <InputLabel htmlFor="password" value="Password" />
33
+ <form onSubmit={submit}>
34
+ <div className="mt-4">
35
+ <InputLabel htmlFor="password" value="Password" />
36
36
 
37
- <TextInput
38
- id="password"
39
- type="password"
40
- name="password"
41
- value={data.password}
42
- className="mt-1 block w-full"
43
- autoComplete="new-password"
44
- isFocused={true}
45
- onChange={(e) => setData('password', e.target.value)}
46
- />
37
+ <TextInput
38
+ id="password"
39
+ type="password"
40
+ name="password"
41
+ value={data.password}
42
+ className="mt-1 block w-full"
43
+ autoComplete="new-password"
44
+ isFocused={true}
45
+ onChange={(e) => setData('password', e.target.value)}
46
+ />
47
47
 
48
- <InputError message={errors.password} className="mt-2" />
49
- </div>
48
+ <InputError message={errors.password} className="mt-2" />
49
+ </div>
50
50
 
51
- <div className="mt-4">
52
- <InputLabel htmlFor="password_confirmation" value="Confirm Password" />
51
+ <div className="mt-4">
52
+ <InputLabel
53
+ htmlFor="password_confirmation"
54
+ value="Confirm Password"
55
+ />
53
56
 
54
- <TextInput
55
- type="password"
56
- name="password_confirmation"
57
- value={data.password_confirmation}
58
- className="mt-1 block w-full"
59
- autoComplete="new-password"
60
- onChange={(e) => setData('password_confirmation', e.target.value)}
61
- />
57
+ <TextInput
58
+ type="password"
59
+ name="password_confirmation"
60
+ value={data.password_confirmation}
61
+ className="mt-1 block w-full"
62
+ autoComplete="new-password"
63
+ onChange={(e) => setData('password_confirmation', e.target.value)}
64
+ />
62
65
 
63
- <InputError message={errors.password_confirmation} className="mt-2" />
64
- </div>
66
+ <InputError message={errors.password_confirmation} className="mt-2" />
67
+ </div>
65
68
 
66
- <div className="flex items-center justify-end mt-4">
67
- <PrimaryButton className="ms-4" disabled={processing}>
68
- Reset Password
69
- </PrimaryButton>
70
- </div>
71
- </form>
72
- </GuestLayout>
73
- );
69
+ <div className="flex items-center justify-end mt-4">
70
+ <PrimaryButton className="ms-4" disabled={processing}>
71
+ Reset Password
72
+ </PrimaryButton>
73
+ </div>
74
+ </form>
75
+ </GuestLayout>
76
+ )
74
77
  }
@@ -1,22 +1,28 @@
1
- import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
2
- import { Head } from '@inertiajs/react';
3
- import { PageProps } from '@/types';
1
+ import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout'
2
+ import { Head } from '@inertiajs/react'
3
+ import { PageProps } from '@/types'
4
4
 
5
5
  export default function Dashboard({ auth }: PageProps) {
6
- return (
7
- <AuthenticatedLayout
8
- user={auth.user}
9
- header={<h2 className="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">Dashboard</h2>}
10
- >
11
- <Head title="Dashboard" />
6
+ return (
7
+ <AuthenticatedLayout
8
+ user={auth.user}
9
+ header={
10
+ <h2 className="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
11
+ Dashboard
12
+ </h2>
13
+ }
14
+ >
15
+ <Head title="Dashboard" />
12
16
 
13
- <div className="py-12">
14
- <div className="max-w-7xl mx-auto sm:px-6 lg:px-8">
15
- <div className="bg-white dark:bg-gray-800 overflow-hidden shadow-sm sm:rounded-lg">
16
- <div className="p-6 text-gray-900 dark:text-gray-100">You're logged in!</div>
17
- </div>
18
- </div>
17
+ <div className="py-12">
18
+ <div className="max-w-7xl mx-auto sm:px-6 lg:px-8">
19
+ <div className="bg-white dark:bg-gray-800 overflow-hidden shadow-sm sm:rounded-lg">
20
+ <div className="p-6 text-gray-900 dark:text-gray-100">
21
+ You're logged in!
19
22
  </div>
20
- </AuthenticatedLayout>
21
- );
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </AuthenticatedLayout>
27
+ )
22
28
  }
@@ -1,33 +1,37 @@
1
- import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
2
- import DeleteUserForm from './Partials/DeleteUserForm';
3
- import UpdatePasswordForm from './Partials/UpdatePasswordForm';
4
- import UpdateProfileInformationForm from './Partials/UpdateProfileInformationForm';
5
- import { Head } from '@inertiajs/react';
6
- import { PageProps } from '@/types';
1
+ import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout'
2
+ import DeleteUserForm from './Partials/DeleteUserForm'
3
+ import UpdatePasswordForm from './Partials/UpdatePasswordForm'
4
+ import UpdateProfileInformationForm from './Partials/UpdateProfileInformationForm'
5
+ import { Head } from '@inertiajs/react'
6
+ import { PageProps } from '@/types'
7
7
 
8
8
  export default function Edit({ auth }: PageProps) {
9
- return (
10
- <AuthenticatedLayout
11
- user={auth.user}
12
- header={<h2 className="font-semibold text-xl text-gray-800 leading-tight">Profile</h2>}
13
- >
14
- <Head title="Profile" />
9
+ return (
10
+ <AuthenticatedLayout
11
+ user={auth.user}
12
+ header={
13
+ <h2 className="font-semibold text-xl text-gray-800 leading-tight">
14
+ Profile
15
+ </h2>
16
+ }
17
+ >
18
+ <Head title="Profile" />
15
19
 
16
- <div className="py-12">
17
- <div className="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-6">
18
- <div className="p-4 sm:p-8 bg-white shadow sm:rounded-lg">
19
- <UpdateProfileInformationForm className="max-w-xl" />
20
- </div>
20
+ <div className="py-12">
21
+ <div className="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-6">
22
+ <div className="p-4 sm:p-8 bg-white shadow sm:rounded-lg">
23
+ <UpdateProfileInformationForm className="max-w-xl" />
24
+ </div>
21
25
 
22
- <div className="p-4 sm:p-8 bg-white shadow sm:rounded-lg">
23
- <UpdatePasswordForm className="max-w-xl" />
24
- </div>
26
+ <div className="p-4 sm:p-8 bg-white shadow sm:rounded-lg">
27
+ <UpdatePasswordForm className="max-w-xl" />
28
+ </div>
25
29
 
26
- <div className="p-4 sm:p-8 bg-white shadow sm:rounded-lg">
27
- <DeleteUserForm className="max-w-xl" />
28
- </div>
29
- </div>
30
- </div>
31
- </AuthenticatedLayout>
32
- );
30
+ <div className="p-4 sm:p-8 bg-white shadow sm:rounded-lg">
31
+ <DeleteUserForm className="max-w-xl" />
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </AuthenticatedLayout>
36
+ )
33
37
  }