This commit is contained in:
2025-11-13 00:13:29 +05:00
parent 7bdd5243bd
commit 31ab39b21c
8 changed files with 246 additions and 212 deletions

View File

@@ -3,8 +3,10 @@
namespace App\Filament\Clusters\Cards\CardOrders\Pages;
use App\Filament\Clusters\Cards\CardOrders\CardOrderResource;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
use Filament\Actions\CreateAction;
use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Tabs\Tab;
class ListCardOrders extends ListRecords
{
@@ -16,4 +18,27 @@ class ListCardOrders extends ListRecords
CreateAction::make(),
];
}
public function getTabs(): array
{
$data = [];
foreach (array_keys(OrderStatusRepository::statusClasses()) as $status) {
if ($status === '') {
$data[null] = Tab::make(__('All'));
} else {
$data[$status] = Tab::make(OrderStatusRepository::statusFormatted($status))->query(fn ($query) => $query->where('status', $status));
}
}
return $data;
return [
null => Tab::make('All'),
'new' => Tab::make()->query(fn ($query) => $query->where('status', 'new')),
'processing' => Tab::make()->query(fn ($query) => $query->where('status', 'processing')),
'shipped' => Tab::make()->query(fn ($query) => $query->where('status', 'shipped')),
'delivered' => Tab::make()->query(fn ($query) => $query->where('status', 'delivered')),
'cancelled' => Tab::make()->query(fn ($query) => $query->where('status', 'cancelled')),
];
}
}

View File

@@ -31,6 +31,14 @@ class CardOrdersTable
->label(__('ID'))
->searchable(),
TextColumn::make('status')
->label(__('Status'))
->color(OrderStatusRepository::statusColorMatching())
->formatStateUsing(fn (string $state) => OrderStatusRepository::statusFormatted($state))
->badge()
->sortable()
->searchable(),
TextColumn::make('cardState.name')
->label(__('Reason'))
->searchable(),
@@ -69,14 +77,6 @@ class CardOrdersTable
->label(__('Phone'))
->searchable(),
TextColumn::make('status')
->label(__('Status'))
->color(OrderStatusRepository::statusColorMatching())
->formatStateUsing(fn (string $state) => OrderStatusRepository::statusFormatted($state))
->badge()
->sortable()
->searchable(),
TextColumn::make('updated_at')
->label(__('Updated At'))
->dateTime()

View File

@@ -11,7 +11,7 @@ class CardsCluster extends Cluster
{
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedCreditCard;
protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Top;
protected static ?SubNavigationPosition $subNavigationPosition = SubNavigationPosition::Start;
public static function getNavigationLabel(): string
{