From 046f61df7e7b4348c122ba6ed24c599717007a48 Mon Sep 17 00:00:00 2001 From: pbao9 Date: Sun, 15 Feb 2026 02:52:20 +0700 Subject: [PATCH] refactor: reimplement command palette using a custom overlay instead of the native dialog element --- package-lock.json | 13 +- package.json | 1 + .../components/data-table.blade.php | 108 +++++++++-- .../components/command-palette.blade.php | 174 +++++++++--------- .../views/components/data-table.blade.php | 157 ++++++++++++++-- vite.config.js | 4 + yarn.lock | 10 +- 7 files changed, 345 insertions(+), 122 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67082da..b97271f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "dependencies": { "animate.css": "^4.1.1", "cmdk": "^1.1.1", + "datatables.net-colreorder": "^2.1.2", "flyonui": "^2.1.0", "laravel-echo": "^1.16.1", "micromodal": "^0.6.1", @@ -5174,7 +5175,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-2.3.6.tgz", "integrity": "sha512-xQ/dCxrjfxM0XY70wSIzakkTZ6ghERwlLmAPyCnu8Sk5cyt9YvOVyOsFNOa/BZ/lM63Q3i2YSSvp/o7GXZGsbg==", - "dev": true, "license": "MIT", "dependencies": { "jquery": ">=1.7" @@ -5191,6 +5191,16 @@ "jquery": ">=1.7" } }, + "node_modules/datatables.net-colreorder": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/datatables.net-colreorder/-/datatables.net-colreorder-2.1.2.tgz", + "integrity": "sha512-lIsUyOt2nBm4sD2cSzDKZcIVrGgrZkh90Z2f03s8p7DYcZSfXMHAhFBrDYf9/eAK6wJnODN8EDMsrtPHfgoSXA==", + "license": "MIT", + "dependencies": { + "datatables.net": "^2", + "jquery": ">=1.7" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -7540,7 +7550,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jquery/-/jquery-4.0.0.tgz", "integrity": "sha512-TXCHVR3Lb6TZdtw1l3RTLf8RBWVGexdxL6AC8/e0xZKEpBflBsjh9/8LXw+dkNFuOyW9B7iB3O1sP7hS0Kiacg==", - "dev": true, "license": "MIT" }, "node_modules/jquery-mousewheel": { diff --git a/package.json b/package.json index af3bb98..f37906b 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "dependencies": { "animate.css": "^4.1.1", "cmdk": "^1.1.1", + "datatables.net-colreorder": "^2.1.2", "flyonui": "^2.1.0", "laravel-echo": "^1.16.1", "micromodal": "^0.6.1", diff --git a/resources/views/administrator/components/data-table.blade.php b/resources/views/administrator/components/data-table.blade.php index ecbdaa1..6575b46 100644 --- a/resources/views/administrator/components/data-table.blade.php +++ b/resources/views/administrator/components/data-table.blade.php @@ -6,6 +6,8 @@ 'orderable' => $c['orderable'] ?? true, 'searchable' => $c['searchable'] ?? true, 'visible' => $c['visible'] ?? true, + 'key' => $c['key'], + 'label' => $c['label'], ]; })->values(); @endphp @@ -29,40 +31,106 @@
-
-
Column Visibility
- -
-
- @foreach($columns as $index => $col) - @if((!isset($col['visibility']) || $col['visibility'] !== false) && $col['key'] !== 'checkbox') -
- - +
+
Column Visibility
+ +
+
+

Drag to reorder columns

+
+ @foreach($columns as $index => $col) + @if((!isset($col['visibility']) || $col['visibility'] !== false) && $col['key'] !== 'checkbox') +
+ + +
+ @endif + @endforeach
- @endif - @endforeach -
+
@push('custom-scripts') + + @endpush diff --git a/resources/views/components/command-palette.blade.php b/resources/views/components/command-palette.blade.php index 6cc1469..febf23f 100644 --- a/resources/views/components/command-palette.blade.php +++ b/resources/views/components/command-palette.blade.php @@ -24,111 +24,113 @@ extractRoutes($sidebar, $menuItems); $validMenuItems = collect($menuItems)->filter(fn($item) => Route::has($item['route']))->values(); @endphp - -
- -
- @forelse($validMenuItems as $item) - - {{ $item['title'] }} - @if($item['group']) - {{ $item['group'] }} - @endif - - @empty -
No pages found
- @endforelse +
+
@push('custom-scripts') diff --git a/resources/views/components/data-table.blade.php b/resources/views/components/data-table.blade.php index 20a8f8b..eaee9dc 100644 --- a/resources/views/components/data-table.blade.php +++ b/resources/views/components/data-table.blade.php @@ -119,22 +119,29 @@ $dtColumns = collect($columns)
Column Visibility
-
- @foreach($columns as $index => $col) - @if((!isset($col['visibility']) || $col['visibility'] !== false) && $col['key'] !== 'checkbox') -
- - -
- @endif - @endforeach +
+
+ @foreach($columns as $index => $col) + @if((!isset($col['visibility']) || $col['visibility'] !== false) && $col['key'] !== 'checkbox') +
+ +
+ + +
+
+ @endif + @endforeach +
@push('custom-scripts') +