2828use Moox \Category \Moox \Entities \Categories \Category \Resources \CategoryResource \Pages \ListCategories ;
2929use Moox \Category \Moox \Entities \Categories \Category \Resources \CategoryResource \Pages \ViewCategory ;
3030use Moox \Core \Entities \Items \Draft \BaseDraftResource ;
31+ use Moox \Core \Support \Resources \Concerns \HasScopedChildResource ;
3132use Moox \Core \Traits \Tabs \HasResourceTabs ;
3233use Moox \Localization \Filament \Tables \Columns \TranslationColumn ;
3334use Moox \Media \Forms \Components \MediaPicker ;
3637
3738class CategoryResource extends BaseDraftResource
3839{
39- use HasResourceTabs;
40+ use HasResourceTabs, HasScopedChildResource ;
4041
4142 protected static ?string $ model = Category::class;
4243
@@ -90,13 +91,15 @@ public static function form(Schema $schema): Schema
9091 relationship: 'parent ' ,
9192 titleAttribute: 'title ' ,
9293 parentAttribute: 'parent_id ' ,
93- modifyQueryUsing: fn (Builder $ query , $ get ) => $ query ->where ('id ' , '!= ' , $ get ('id ' ))
94+ modifyQueryUsing: fn (Builder $ query , $ get ) => static ::scopeQuery (
95+ $ query ->where ('id ' , '!= ' , $ get ('id ' ))
96+ )
9497 )
9598 ->label ('Parent Category ' )
9699 ->searchable ()
97100 ->disabledOptions (fn ($ get ): array => [$ get ('id ' )])
98101 ->enableBranchNode ()
99- ->visible (fn () => Category::count () > 0 ),
102+ ->visible (fn () => static :: scopeQuery ( Category::query ())-> count () > 0 ),
100103 Grid::make (2 )
101104 ->schema ([
102105 static ::getFooterActions ()->columnSpan (1 ),
@@ -291,7 +294,7 @@ public static function getPluralModelLabel(): string
291294 #[Override]
292295 public static function getNavigationLabel (): string
293296 {
294- return config ('category.resources.category.plural ' );
297+ return static :: resolveScopedNavigationLabel ( config ('category.resources.category.plural ' ) );
295298 }
296299
297300 #[Override]
@@ -303,13 +306,25 @@ public static function getBreadcrumb(): string
303306 #[Override]
304307 public static function shouldRegisterNavigation (): bool
305308 {
306- return true ;
309+ return static :: resolveScopedNavigationRegistration ( true ) ;
307310 }
308311
309312 #[Override]
310313 public static function getNavigationGroup (): ?string
311314 {
312- return config ('category.navigation_group ' );
315+ return static ::resolveScopedNavigationGroup (config ('category.navigation_group ' ));
316+ }
317+
318+ #[Override]
319+ public static function getNavigationParentItem (): ?string
320+ {
321+ return static ::resolveScopedNavigationParentItem (parent ::getNavigationParentItem ());
322+ }
323+
324+ #[Override]
325+ public static function getNavigationSort (): ?int
326+ {
327+ return static ::resolveScopedNavigationSort (parent ::getNavigationSort ());
313328 }
314329
315330 public static function setCurrentTab (?string $ tab ): void
0 commit comments