fixed user registration issue
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run

This commit is contained in:
Edward Tirado Jr 2025-12-14 13:23:46 -06:00
parent 908d877cfb
commit f5664ce84b
9 changed files with 203 additions and 30 deletions

View file

@ -33,6 +33,7 @@ class RegisterUser extends Component
public function render() public function render()
{ {
return view('pages.auth.register'); return view('pages.auth.register')
->layout('components.layouts.auth');
} }
} }

View file

@ -130,7 +130,7 @@ return [
| |
*/ */
'views' => true, 'views' => false,
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
@ -144,7 +144,7 @@ return [
*/ */
'features' => [ 'features' => [
Features::registration(), // Features::registration(),
Features::resetPasswords(), Features::resetPasswords(),
Features::emailVerification(), Features::emailVerification(),
Features::twoFactorAuthentication([ Features::twoFactorAuthentication([

173
config/livewire.php Normal file
View file

@ -0,0 +1,173 @@
<?php
return [
/*
|---------------------------------------------------------------------------
| Class Namespace
|---------------------------------------------------------------------------
|
| This value sets the root class namespace for Livewire component classes in
| your application. This value will change where component auto-discovery
| finds components. It's also referenced by the file creation commands.
|
*/
'class_namespace' => 'App\\Livewire',
/*
|---------------------------------------------------------------------------
| View Path
|---------------------------------------------------------------------------
|
| This value is used to specify where Livewire component Blade templates are
| stored when running file creation commands like `artisan make:livewire`.
| It is also used if you choose to omit a component's render() method.
|
*/
'view_path' => resource_path('views/livewire'),
/*
|---------------------------------------------------------------------------
| Layout
|---------------------------------------------------------------------------
| The view that will be used as the layout when rendering a single component
| as an entire page via `Route::get('/post/create', CreatePost::class);`.
| In this case, the view returned by CreatePost will render into $slot.
|
*/
'layout' => 'components.layouts.app',
/*
|---------------------------------------------------------------------------
| Lazy Loading Placeholder
|---------------------------------------------------------------------------
| Livewire allows you to lazy load components that would otherwise slow down
| the initial page load. Every component can have a custom placeholder or
| you can define the default placeholder view for all components below.
|
*/
'lazy_placeholder' => null,
/*
|---------------------------------------------------------------------------
| Temporary File Uploads
|---------------------------------------------------------------------------
|
| Livewire handles file uploads by storing uploads in a temporary directory
| before the file is stored permanently. All file uploads are directed to
| a global endpoint for temporary storage. You may configure this below:
|
*/
'temporary_file_upload' => [
'disk' => null, // Example: 'local', 's3' | Default: 'default'
'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp'
'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1'
'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs...
'png',
'gif',
'bmp',
'svg',
'wav',
'mp4',
'mov',
'avi',
'wmv',
'mp3',
'm4a',
'jpg',
'jpeg',
'mpga',
'webp',
'wma',
],
'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
'cleanup' => true, // Should cleanup temporary uploads older than 24 hrs...
],
/*
|---------------------------------------------------------------------------
| Render On Redirect
|---------------------------------------------------------------------------
|
| This value determines if Livewire will run a component's `render()` method
| after a redirect has been triggered using something like `redirect(...)`
| Setting this to true will render the view once more before redirecting
|
*/
'render_on_redirect' => false,
/*
|---------------------------------------------------------------------------
| Eloquent Model Binding
|---------------------------------------------------------------------------
|
| Previous versions of Livewire supported binding directly to eloquent model
| properties using wire:model by default. However, this behavior has been
| deemed too "magical" and has therefore been put under a feature flag.
|
*/
'legacy_model_binding' => false,
/*
|---------------------------------------------------------------------------
| Auto-inject Frontend Assets
|---------------------------------------------------------------------------
|
| By default, Livewire automatically injects its JavaScript and CSS into the
| <head> and <body> of pages containing Livewire components. By disabling
| this behavior, you need to use @livewireStyles and @livewireScripts.
|
*/
'inject_assets' => true,
/*
|---------------------------------------------------------------------------
| Navigate (SPA mode)
|---------------------------------------------------------------------------
|
| By adding `wire:navigate` to links in your Livewire application, Livewire
| will prevent the default link handling and instead request those pages
| via AJAX, creating an SPA-like effect. Configure this behavior here.
|
*/
'navigate' => [
'show_progress_bar' => true,
'progress_bar_color' => '#2299dd',
],
/*
|---------------------------------------------------------------------------
| HTML Morph Markers
|---------------------------------------------------------------------------
|
| Livewire intelligently "morphs" existing HTML into the newly rendered HTML
| after each update. To make this process more reliable, Livewire injects
| "markers" into the rendered Blade surrounding @if, @class & @foreach.
|
*/
'inject_morph_markers' => true,
/*
|---------------------------------------------------------------------------
| Pagination Theme
|---------------------------------------------------------------------------
|
| When enabling Livewire's pagination feature by using the `WithPagination`
| trait, Livewire will use Tailwind templates to render pagination views
| on the page. If you want Bootstrap CSS, you can specify: "bootstrap"
|
*/
'pagination_theme' => 'tailwind',
];

View file

@ -12,7 +12,7 @@ return new class extends Migration {
{ {
Schema::create('users', function (Blueprint $table) { Schema::create('users', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('username'); $table->string('username')->unique();
$table->string('email')->unique(); $table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable(); $table->timestamp('email_verified_at')->nullable();
$table->string('password')->nullable(); $table->string('password')->nullable();

View file

@ -0,0 +1 @@

View file

@ -3,4 +3,5 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ $title ?? 'Movie Night' }}</title> <title>{{ $title ?? 'Movie Night' }}</title>
@vite(['resources/css/app.css', 'resources/js/app.js']) @vite(['resources/css/app.css', 'resources/js/app.js'])
@livewireStyles
</head> </head>

View file

@ -3,6 +3,6 @@
<x-head/> <x-head/>
<body class="bg-blue-600"> <body class="bg-blue-600">
{{ $slot }} {{ $slot }}
@livewireScriptConfig @livewireScripts
</body> </body>
</html> </html>

View file

@ -1,9 +1,7 @@
<x-layouts.auth>
<div class="text-2xl"> <div class="text-2xl">
<h1 class="text-center m-5">Create Account</h1> <h1 class="text-center m-5">Create Account</h1>
<form class="flex flex-col gap-5" wire:submit.prevent="register"> <form class="flex flex-col gap-5" wire:submit.prevent="register">
@csrf
@if($errors->any()) @if($errors->any())
<div class="text-red-500"> <div class="text-red-500">
@foreach($errors->all() as $error) @foreach($errors->all() as $error)
@ -14,13 +12,12 @@
<div class="flex flex-col"> <div class="flex flex-col">
<label class="py-5" for="username">Username</label> <label class="py-5" for="username">Username</label>
<input class="bg-white" type="text" name="username" wire:model="form.username"/> <input class="bg-white" type="text" wire:model="form.username"/>
</div> </div>
<div class="flex flex-col"> <div class="flex flex-col">
<label class="py-5" for="email">Email</label> <label class="py-5" for="email">Email</label>
<input class="bg-white" type="email" name="email" wire:model="form.email"/> <input class="bg-white" type="email" wire:model="form.email"/>
</div> </div>
<button type="submit" class="bg-green-400 text-white px-4 py-2 rounded">Submit</button> <button type="submit" class="bg-green-400 text-white px-4 py-2 rounded">Submit</button>
</form> </form>
</div> </div>
</x-layouts.auth>

View file

@ -11,7 +11,7 @@ Route::get('/register', RegisterUser::class)->name('register');
Route::get('/reset-password/{token}', PasswordReset::class)->name('reset-password'); Route::get('/reset-password/{token}', PasswordReset::class)->name('reset-password');
Route::view('/', 'pages.auth.login'); Route::view('/login', 'pages.auth.login')->name('login');
/* AUTH */ /* AUTH */
Route::middleware(['auth'])->group(function () { Route::middleware(['auth'])->group(function () {