Skip to content

Commit bc89915

Browse files
committed
wip
1 parent 0c4a7b9 commit bc89915

7 files changed

Lines changed: 40 additions & 18 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<div wire:click="toggleSubNavigationType" class="cursor-pointer">
22
<x-filament::icon :icon="$icon" class="w-6 h-auto fi-icon-btn-icon text-gray-400"
3-
x-tooltip.raw="{{ __('Toggle subnavigation, current: :current', ['current' => $current])}}"/>
3+
x-tooltip.raw="{{ __('Toggle subnavigation type') }}"/>
44
</div>

src/Components/ToggleSubNavigationType.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function render()
2222
{
2323
$this->current = $this->getCurrentSubNavigationType();
2424

25-
return view('backstage.users::components.toggle-sub-navigation-type');
25+
return view('backstage/users::components.toggle-sub-navigation-type');
2626
}
2727

2828
public function getCurrentSubNavigationType()
@@ -32,6 +32,18 @@ public function getCurrentSubNavigationType()
3232

3333
public function toggleSubNavigationType()
3434
{
35-
dd();
35+
if ($this->current === 'top') {
36+
$this->current = 'end';
37+
} elseif ($this->current === 'end') {
38+
$this->current = 'top';
39+
}
40+
41+
$user = Filament::auth()->user();
42+
43+
$user->sub_navigation_preference = $this->current;
44+
45+
$user->save();
46+
47+
$this->redirect(request()->headers->get('referer'));
3648
}
3749
}

src/Concerns/Conditionals/HasSubNavigationPreference.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,4 @@ public function getSubNavigationPreference()
1717

1818
return '';
1919
}
20-
21-
public function isSubNavigationPreference($type)
22-
{
23-
return $this->getSubNavigationPreference() === $type;
24-
}
2520
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
namespace Backstage\Users\Concerns\Resources;
4+
5+
use Filament\Facades\Filament;
6+
use Filament\Pages\SubNavigationPosition;
7+
8+
trait HasSubNavigationPosition
9+
{
10+
public static function getSubNavigationPosition(): SubNavigationPosition
11+
{
12+
return Filament::auth()->user()->getSubNavigationPreference();
13+
}
14+
}

src/Models/User.php

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,7 @@ public function getTable()
3939
*
4040
* @var list<string>
4141
*/
42-
protected $fillable = [
43-
'name',
44-
'email',
45-
'password',
46-
'sub_navigation_preference',
47-
];
42+
protected $guarded = [];
4843

4944
/**
5045
* The attributes that should be hidden for serialization.
@@ -66,7 +61,6 @@ protected function casts(): array
6661
return [
6762
'email_verified_at' => 'datetime',
6863
'password' => 'hashed',
69-
'sub_navigation_preference' => 'string',
7064
];
7165
}
7266

src/UsersPlugin.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public static function get(): static
7878
protected function initSubNavigationToggle(Panel $panel)
7979
{
8080
$panel->renderHook(PanelsRenderHook::GLOBAL_SEARCH_AFTER, function () {
81-
return Livewire::mount(ToggleSubNavigationType::class);
81+
return Livewire::mount(ToggleSubNavigationType::class, []);
8282
});
8383
}
8484
}

src/UsersServiceProvider.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Backstage\Users;
44

5+
use Livewire\Livewire;
56
use Filament\Support\Assets\Js;
67
use Backstage\Users\Models\User;
78
use Filament\Support\Assets\Css;
@@ -11,6 +12,7 @@
1112
use Illuminate\Filesystem\Filesystem;
1213
use Illuminate\Support\Facades\Event;
1314
use Backstage\Users\Events\UserCreated;
15+
use Backstage\Users\Testing\TestsUsers;
1416
use Spatie\LaravelPackageTools\Package;
1517
use Backstage\Users\Listeners\UserLogin;
1618
use Backstage\Users\Listeners\UserLogout;
@@ -20,20 +22,22 @@
2022
use Filament\Support\Assets\AlpineComponent;
2123
use Backstage\Users\Events\WebTrafficDetected;
2224
use Livewire\Features\SupportTesting\Testable;
23-
use Backstage\Users\Testing\TestsUsers;
2425
use Backstage\Users\Listeners\SendInvitationMail;
2526
use Spatie\Permission\Events as PermissionEvents;
2627
use Backstage\Users\Listeners\RecordUserMovements;
2728
use Spatie\LaravelPackageTools\PackageServiceProvider;
29+
use Backstage\Users\Components\ToggleSubNavigationType;
2830
use Spatie\LaravelPackageTools\Commands\InstallCommand;
2931
use Backstage\Users\Listeners\Permissions\LogRoleAttached;
3032
use Backstage\Users\Listeners\Permissions\LogRoleDetached;
33+
use Filament\Pages\SubNavigationPosition;
34+
use Filament\Resources\Resource;
3135

3236
class UsersServiceProvider extends PackageServiceProvider
3337
{
3438
public static string $name = 'backstage:users';
3539

36-
public static string $viewNamespace = 'backstage.users';
40+
public static string $viewNamespace = 'backstage/users';
3741

3842
public function configurePackage(Package $package): void
3943
{
@@ -143,6 +147,9 @@ public function packageBooted(): void
143147
)::observe(
144148
config('backstage.users.eloquent.users.observer', \Backstage\Users\Observers\UserObserver::class)
145149
);
150+
151+
152+
Livewire::component('backstage.users::toggle-sub-navigation-type', ToggleSubNavigationType::class);
146153
}
147154

148155
protected function getAssetPackageName(): ?string

0 commit comments

Comments
 (0)