style: apply Pint formatting to modal files and tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main
boban 2026-05-16 12:42:16 +02:00
parent fa9985cc33
commit 5748dd3443
27 changed files with 90 additions and 34 deletions

View File

@ -8,6 +8,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Webhook extends Model
{
/** @use HasFactory<WebhookFactory> */

View File

@ -2,16 +2,23 @@
namespace App\Livewire\Modals;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class ConfirmAction extends ModalComponent
{
public string $title = 'Confirm';
public string $message = 'Are you sure?';
public string $confirmLabel = 'Confirm';
public string $cancelLabel = 'Cancel';
public string $confirmEvent = '';
public array $confirmEventParams = [];
public bool $danger = false;
public function confirm(): void
@ -28,7 +35,7 @@ class ConfirmAction extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.confirm-action');
}

View File

@ -2,11 +2,13 @@
namespace App\Livewire\Modals;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class CreateApiToken extends ModalComponent
{
public string $name = '';
public ?string $plainTextToken = null;
protected function rules(): array
@ -31,7 +33,7 @@ class CreateApiToken extends ModalComponent
return false;
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.create-api-token');
}

View File

@ -4,12 +4,15 @@ namespace App\Livewire\Modals;
use App\Domains\Link\Models\Link;
use Illuminate\Support\Str;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class CreateLink extends ModalComponent
{
public string $targetUrl = '';
public string $slug = '';
public string $title = '';
protected $rules = [
@ -46,7 +49,7 @@ class CreateLink extends ModalComponent
$this->closeModal();
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.create-link');
}

View File

@ -4,12 +4,15 @@ namespace App\Livewire\Modals;
use App\Domains\Webhook\Models\Webhook;
use Illuminate\Support\Str;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class CreateWebhook extends ModalComponent
{
public string $url = '';
public string $secret = '';
public array $selectedEvents = [];
public array $availableEvents = [
@ -46,7 +49,7 @@ class CreateWebhook extends ModalComponent
$this->closeModal();
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.create-webhook');
}

View File

@ -3,6 +3,7 @@
namespace App\Livewire\Modals;
use App\Domains\Workspace\Actions\CreateWorkspace as CreateWorkspaceAction;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class CreateWorkspace extends ModalComponent
@ -31,7 +32,7 @@ class CreateWorkspace extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.create-workspace');
}

View File

@ -3,11 +3,13 @@
namespace App\Livewire\Modals;
use App\Domains\Link\Models\Link;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class DeleteLink extends ModalComponent
{
public string $linkUlid = '';
public string $linkTitle = '';
public function mount(string $linkUlid): void
@ -39,7 +41,7 @@ class DeleteLink extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.delete-link');
}

View File

@ -3,11 +3,13 @@
namespace App\Livewire\Modals;
use App\Domains\Webhook\Models\Webhook;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class DeleteWebhook extends ModalComponent
{
public int $webhookId = 0;
public string $webhookUrl = '';
public function mount(int $webhookId): void
@ -39,7 +41,7 @@ class DeleteWebhook extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.delete-webhook');
}

View File

@ -3,12 +3,15 @@
namespace App\Livewire\Modals;
use App\Domains\Workspace\Models\Workspace;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class DeleteWorkspace extends ModalComponent
{
public string $workspaceUlid = '';
public string $workspaceName = '';
public string $confirmation = '';
public function mount(string $workspaceUlid): void
@ -53,7 +56,7 @@ class DeleteWorkspace extends ModalComponent
return false;
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.delete-workspace');
}

View File

@ -3,15 +3,21 @@
namespace App\Livewire\Modals;
use App\Domains\Link\Models\Link;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class EditLink extends ModalComponent
{
public string $linkUlid = '';
public int $linkId = 0;
public string $targetUrl = '';
public string $slug = '';
public string $title = '';
public string $status = 'active';
public function mount(string $linkUlid): void
@ -59,7 +65,7 @@ class EditLink extends ModalComponent
$this->closeModal();
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.edit-link');
}

View File

@ -3,12 +3,15 @@
namespace App\Livewire\Modals;
use App\Domains\Workspace\Models\WorkspaceMember;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class EditMemberRole extends ModalComponent
{
public int $memberId = 0;
public string $memberName = '';
public string $role = 'editor';
protected function rules(): array
@ -50,7 +53,7 @@ class EditMemberRole extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.edit-member-role');
}

View File

@ -4,11 +4,13 @@ namespace App\Livewire\Modals;
use App\Domains\Workspace\Models\WorkspaceInvitation;
use Illuminate\Support\Str;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class InviteMember extends ModalComponent
{
public string $email = '';
public string $role = 'editor';
protected function rules(): array
@ -42,7 +44,7 @@ class InviteMember extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.invite-member');
}

View File

@ -3,11 +3,13 @@
namespace App\Livewire\Modals;
use App\Domains\Workspace\Models\WorkspaceMember;
use Illuminate\View\View;
use LivewireUI\Modal\ModalComponent;
class RemoveMember extends ModalComponent
{
public int $memberId = 0;
public string $memberName = '';
public function mount(int $memberId): void
@ -39,7 +41,7 @@ class RemoveMember extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.remove-member');
}

View File

@ -2,12 +2,14 @@
namespace App\Livewire\Modals;
use Illuminate\View\View;
use Laravel\Sanctum\PersonalAccessToken;
use LivewireUI\Modal\ModalComponent;
class RevokeApiToken extends ModalComponent
{
public int $tokenId = 0;
public string $tokenName = '';
public function mount(int $tokenId): void
@ -38,7 +40,7 @@ class RevokeApiToken extends ModalComponent
return 'sm';
}
public function render(): \Illuminate\View\View
public function render(): View
{
return view('livewire.modals.revoke-api-token');
}

View File

@ -8,6 +8,7 @@ use Livewire\Component;
class PersonalInfo extends Component
{
public string $name = '';
public string $email = '';
public function mount(): void

View File

@ -8,6 +8,7 @@ use Livewire\Component;
class Preferences extends Component
{
public string $locale = 'de';
public string $theme = 'dark';
public function mount(): void

View File

@ -2,14 +2,16 @@
namespace App\Livewire\Pages\Profile;
use Illuminate\Support\Facades\Hash;
use Illuminate\View\View;
use Livewire\Component;
use Illuminate\Support\Facades\Hash;
class Security extends Component
{
public string $currentPassword = '';
public string $newPassword = '';
public string $newPasswordConfirmation = '';
public function changePassword(): void
@ -21,6 +23,7 @@ class Security extends Component
if (! Hash::check($this->currentPassword, auth()->user()->password)) {
$this->addError('currentPassword', 'Current password is incorrect.');
return;
}

View File

@ -4,11 +4,11 @@ namespace App\Livewire\Pages\Settings;
use Illuminate\View\View;
use Livewire\Component;
use Laravel\Sanctum\PersonalAccessToken;
class ApiTokens extends Component
{
public string $tokenName = '';
public ?string $newToken = null;
public function createToken(): void

View File

@ -8,6 +8,7 @@ use Livewire\Component;
class Index extends Component
{
public string $workspaceName = '';
public string $workspaceSlug = '';
public function mount(): void

View File

@ -2,7 +2,6 @@
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

View File

@ -8,7 +8,6 @@ use App\Domains\Workspace\Models\Workspace;
use App\Domains\Workspace\Models\WorkspaceMember;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Carbon;
use Illuminate\Support\Str;
class DemoDataSeeder extends Seeder

View File

@ -24,6 +24,7 @@ Route::post('logout', function (Request $request, Logout $logout) {
$logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
})->middleware('auth')->name('logout');

View File

@ -3,7 +3,14 @@
use App\Http\Controllers\BioPageController;
use App\Http\Controllers\RedirectController;
use App\Http\Middleware\ResolveWorkspace;
use App\Livewire\Pages\Dashboard\Overview;
use App\Livewire\Pages\Links\Index;
use App\Livewire\Pages\Profile\PersonalInfo;
use App\Livewire\Pages\Profile\Preferences;
use App\Livewire\Pages\Profile\Security;
use App\Livewire\Pages\Settings\ApiTokens;
use App\Livewire\Pages\Settings\Webhooks;
use App\Livewire\Pages\Team\Members;
use Illuminate\Support\Facades\Route;
Route::get('/health', function () {
@ -19,15 +26,16 @@ Route::get('dashboard', function () {
if ($workspace) {
return redirect()->route('w.dashboard', $workspace->ulid);
}
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::get('profile', fn () => redirect()->route('profile.personal'))->middleware(['auth'])->name('profile');
Route::middleware(['auth'])->group(function () {
Route::get('/profile/personal', App\Livewire\Pages\Profile\PersonalInfo::class)->name('profile.personal');
Route::get('/profile/preferences', App\Livewire\Pages\Profile\Preferences::class)->name('profile.preferences');
Route::get('/profile/security', App\Livewire\Pages\Profile\Security::class)->name('profile.security');
Route::get('/profile/personal', PersonalInfo::class)->name('profile.personal');
Route::get('/profile/preferences', Preferences::class)->name('profile.preferences');
Route::get('/profile/security', Security::class)->name('profile.security');
});
// Workspace-scoped routes — placed before slug catch-all
@ -35,17 +43,17 @@ Route::middleware(['auth', 'verified', ResolveWorkspace::class])
->prefix('w/{workspace}')
->name('w.')
->group(function () {
Route::get('/', App\Livewire\Pages\Dashboard\Overview::class)->name('dashboard');
Route::get('/', Overview::class)->name('dashboard');
Route::get('/links', Index::class)->name('links.index');
Route::get('/qr', App\Livewire\Pages\QrCodes\Index::class)->name('qr.index');
Route::get('/bio', App\Livewire\Pages\Bio\Index::class)->name('bio.index');
Route::get('/analytics', App\Livewire\Pages\Analytics\Index::class)->name('analytics.index');
Route::get('/domains', App\Livewire\Pages\Domains\Index::class)->name('domains.index');
Route::get('/settings', App\Livewire\Pages\Settings\Index::class)->name('settings.index');
Route::get('/settings/api-tokens', App\Livewire\Pages\Settings\ApiTokens::class)->name('settings.api-tokens');
Route::get('/settings/webhooks', App\Livewire\Pages\Settings\Webhooks::class)->name('settings.webhooks');
Route::get('/settings/api-tokens', ApiTokens::class)->name('settings.api-tokens');
Route::get('/settings/webhooks', Webhooks::class)->name('settings.webhooks');
Route::get('/billing', App\Livewire\Pages\Billing\Index::class)->name('billing.index');
Route::get('/team', App\Livewire\Pages\Team\Members::class)->name('team.index');
Route::get('/team', Members::class)->name('team.index');
});
// Bio page route — must be before the slug catch-all

View File

@ -1,8 +1,8 @@
<?php
use App\Models\User;
use App\Domains\Workspace\Models\Workspace;
use App\Domains\Workspace\Models\WorkspaceMember;
use App\Models\User;
use Livewire\Volt\Volt;
test('login screen can be rendered', function () {

View File

@ -20,6 +20,7 @@ function makeUserWithWs(): array
'role' => 'owner',
'joined_at' => now(),
]);
return [$user, $ws];
}

View File

@ -16,6 +16,7 @@ use App\Livewire\Modals\RemoveMember;
use App\Livewire\Modals\RevokeApiToken;
use App\Models\User;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Laravel\Sanctum\PersonalAccessToken;
use Livewire\Livewire;
function makeWsUser(): array
@ -28,6 +29,7 @@ function makeWsUser(): array
'role' => 'owner',
'joined_at' => now(),
]);
return [$user, $ws];
}
@ -183,7 +185,7 @@ it('revokes token and dispatches apiTokenRevoked', function () {
->call('revoke')
->assertDispatched('apiTokenRevoked');
expect(\Laravel\Sanctum\PersonalAccessToken::find($pat->id))->toBeNull();
expect(PersonalAccessToken::find($pat->id))->toBeNull();
});
// CreateWebhook

View File

@ -1,8 +1,8 @@
<?php
use App\Models\User;
use App\Domains\Workspace\Models\Workspace;
use App\Domains\Workspace\Models\WorkspaceMember;
use App\Models\User;
function makeUserWithWorkspace(): array
{
@ -14,6 +14,7 @@ function makeUserWithWorkspace(): array
'role' => 'owner',
'joined_at' => now(),
]);
return [$user, $ws];
}