이번 포스트에서는 라라벨 filament 관리자 패널의 사용자 경험(UX)을 끌어올리는 두 가지 핵심 설정을 다뤄보겠다.
단 한 줄의 코드로 반응 속도를 높이는 SPA 모드 활성화 방법과, 기본 메뉴에 빠져있는 '웹사이트 첫 페이지로 돌아가기' 링크를 드롭다운 메뉴에 추가하는 방법을 알아보겠다.
이전 포스트
라라벨 filament 관리자 패널 UI 개선: 폼 필드 그룹화 및 리소스 저장 후 전역 리다이렉트 설정
filament 관리자 메뉴 SPA 모드 활성 및 드롭다운 메뉴에 홈으로 돌아가기 추가 · 4th-avenue/laravel13-livewire@b9e4168 · GitHub
전체적인 코드 수정은 이 깃허브 링크를 통해서 확인할 수 있다.
filament 관리자 메뉴의 SPA 모드 활성
filament는 Livewire로 만들어졌지만, 기본적으로 SPA(싱글 페이지 애플리케이션) 모드가 활성화되어있지 않다.
하지만 굉장히 짧은 코드 하나로 SPA 모드를 활성화할 수 있다.
app/Providers/Filament/AdminPanelProvider.php에 추가할 코드
public function panel(Panel $panel): Panel
{
return $panel
// 생략
->spa();
}
이렇게 수정하면 SPA 모드가 활성화되어, 페이지 전환이 부드럽고 빨라지며, 네트워크 트래픽 절감 효과를 얻을 수 있다.
Panel configuration - Filament
SPA 모드에 대한 코드는 이 링크에 더 자세히 정리되어 있다.
filament 관리자 패널의 드롭다운 메뉴에 홈으로 돌아가기 추가
filament 관리자 패널에는 관리자 패널에서 나가는 링크가 없다.
캡처한 이미지에 보이는 것처럼, 왼쪽 메뉴에도 없고, 드롭다운 메뉴에도 없다.
웹사이트로 다시 돌아가고 싶다면 로그아웃을 하거나, 직접 URL을 입력해야 한다.
app/Providers/Filament/AdminPanelProvider.php에 추가할 코드
use Filament\Actions\Action;
public function panel(Panel $panel): Panel
{
return $panel
// 생략
->userMenuItems([
[
Action::make('exit_admin')
->label('관리자 패널 나가기')
->url('/')
->icon('heroicon-o-home-modern'),
],
]);
}
그래서 드롭다운 메뉴에 웹사이트의 첫 페이지로 이동하는 링크를 넣었다.
코드에 대한 자세한 설명은 생략하겠다.
저장 후에 확인해 보면, 이렇게 드롭다운 메뉴에 filament 관리자 패널을 나가서 웹사이트의 첫 페이지로 이동하는 링크가 생겨있다.
그런데 여기서 좀 더 디테일한 수정을 넣고 싶다.
'관리자 패널 나가기'와 '로그아웃' 사이에 구분선이 있었으면 좋겠다.
use Filament\Actions\Action;
public function panel(Panel $panel): Panel
{
return $panel
// 생략
->userMenuItems([
[
Action::make('exit_admin')
->label('관리자 패널 나가기')
->url('/')
->icon('heroicon-o-home-modern'),
],
[
'logout' => fn (Action $action): Action => $action,
],
]);
}
그럴 때는 이렇게, 굳이 코드를 넣지 않아도 항상 마지막에 위치하는 '로그아웃'을 명시적으로 등록해서 [ ]으로 구분해 나눠주면 된다.
선이 잘 안보이기 때문에 잠시 다크모드를 적용했다.
이렇게 '관리자 패널 나가기'와 '로그아웃' 사이에 구분선이 생겼다.
User menu - Filament
이렇게 filament 관리자 패널에서 메뉴를 커스텀하는 방법은 이 링크에 더 자세하게 나와있다.
다음 포스트


0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩