From 195722c5709172a384d2b394fbeacb3406562095 Mon Sep 17 00:00:00 2001
From: Nisse Lommerde <nisselommerde@gmail.com>
Date: Sat, 8 Mar 2025 13:03:11 -0500
Subject: [PATCH] Fix create modal redirects

---
 .../Admin/Resources/CustomerResource.php      |  2 +-
 .../CustomerResource/Pages/ListCustomers.php  |  4 +-
 .../Pages/ListInvoiceReports.php              |  3 +-
 .../Admin/Resources/InvoiceResource.php       | 52 +++++++------------
 .../InvoiceResource/Pages/ListInvoices.php    |  3 +-
 .../PaymentResource/Pages/ListPayments.php    |  3 +-
 6 files changed, 30 insertions(+), 37 deletions(-)

diff --git a/app/Filament/Admin/Resources/CustomerResource.php b/app/Filament/Admin/Resources/CustomerResource.php
index d027ff6..f1b62f3 100644
--- a/app/Filament/Admin/Resources/CustomerResource.php
+++ b/app/Filament/Admin/Resources/CustomerResource.php
@@ -54,7 +54,7 @@ public static function table(Table $table): Table
                 TextColumn::make('balance')
                     ->getStateUsing(fn (Customer $customer) => $customer->calculateBalance())
                     ->money()
-                    ->hidden(! auth()->user()->is_admin),
+                    ->hidden(! auth()->user()->is_admin ?? false),
             ])
             ->filters([
                 //
diff --git a/app/Filament/Admin/Resources/CustomerResource/Pages/ListCustomers.php b/app/Filament/Admin/Resources/CustomerResource/Pages/ListCustomers.php
index fa2ecb6..e3ed324 100644
--- a/app/Filament/Admin/Resources/CustomerResource/Pages/ListCustomers.php
+++ b/app/Filament/Admin/Resources/CustomerResource/Pages/ListCustomers.php
@@ -15,7 +15,9 @@ protected function getHeaderActions(): array
     {
         return [
             Actions\CreateAction::make()
-                ->icon(IconEnum::NEW->value),
+                ->modal()
+                ->icon(IconEnum::NEW->value)
+                ->successRedirectUrl(fn ($record) => CustomerResource::getUrl('edit', ['record' => $record->id])),
         ];
     }
 }
diff --git a/app/Filament/Admin/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php b/app/Filament/Admin/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php
index d18d283..d86ec53 100644
--- a/app/Filament/Admin/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php
+++ b/app/Filament/Admin/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php
@@ -41,7 +41,8 @@ protected function getHeaderActions(): array
                     unset($data['payment_types']);
 
                     return $data;
-                }),
+                })
+                ->successRedirectUrl(fn ($record) => InvoiceReportResource::getUrl('view', ['record' => $record->id])),
         ];
     }
 }
diff --git a/app/Filament/Admin/Resources/InvoiceResource.php b/app/Filament/Admin/Resources/InvoiceResource.php
index 0523fe0..3c85f8f 100644
--- a/app/Filament/Admin/Resources/InvoiceResource.php
+++ b/app/Filament/Admin/Resources/InvoiceResource.php
@@ -18,6 +18,7 @@
 use Filament\Forms\Components\Section;
 use Filament\Forms\Components\Select;
 use Filament\Forms\Components\Split;
+use Filament\Forms\Components\Toggle;
 use Filament\Forms\Components\ToggleButtons;
 use Filament\Forms\Form;
 use Filament\Notifications\Notification;
@@ -65,44 +66,31 @@ public static function form(Form $form): Form
                                     DatePicker::make('due_date'),
                                 ])->columnSpan(2),
 
-                                Grid::make(3)
-                                    ->schema([
-                                        ToggleButtons::make('has_gst')
-                                            ->label('GST')
-                                            ->boolean('On', 'Off')
-                                            ->default(true)
-//                                        ->inline()
-                                            ->colors([
-                                                'true'  => 'info',
-                                                'false' => 'info',
-                                            ]),
-
-                                        ToggleButtons::make('has_pst')
-                                            ->label('PST')
-                                            ->boolean('On', 'Off')
-                                            ->default(false)
-//                                        ->inline()
-                                            ->colors([
-                                                'true'  => 'info',
-                                                'false' => 'info',
-                                            ]),
-
-                                        ToggleButtons::make('has_hst')
-                                            ->label('HST')
-                                            ->boolean('On', 'Off')
-                                            ->default(false)
-                                            ->colors([
-                                                'true'  => 'info',
-                                                'false' => 'info',
-                                            ]),
-                                    ])->columnSpan(2),
-
                                 ToggleButtons::make('status')
                                     ->options(InvoiceStatus::class)
                                     ->required()
                                     ->inline()
                                     ->default(InvoiceStatus::UNPAID)
                                     ->columnSpan(2),
+
+                                Grid::make(3)
+                                    ->schema([
+                                        Toggle::make('has_gst')
+                                            ->label('GST')
+                                            ->inline(false)
+                                            ->default(true),
+
+                                        Toggle::make('has_pst')
+                                            ->label('PST')
+                                            ->inline(false)
+                                            ->default(false),
+
+                                        Toggle::make('has_hst')
+                                            ->label('HST')
+                                            ->inline(false)
+                                            ->default(false),
+                                    ]),
+
                             ])->columnSpan(fn (?Invoice $record) => $record === null ? 2 : 1),
                         ])
                             ->columns(2)
diff --git a/app/Filament/Admin/Resources/InvoiceResource/Pages/ListInvoices.php b/app/Filament/Admin/Resources/InvoiceResource/Pages/ListInvoices.php
index 0e6b855..074580f 100644
--- a/app/Filament/Admin/Resources/InvoiceResource/Pages/ListInvoices.php
+++ b/app/Filament/Admin/Resources/InvoiceResource/Pages/ListInvoices.php
@@ -44,7 +44,8 @@ protected function getHeaderActions(): array
             Actions\CreateAction::make()
                 ->modal()
                 ->modalWidth('lg')
-                ->icon(IconEnum::NEW->value),
+                ->icon(IconEnum::NEW->value)
+                ->successRedirectUrl(fn ($record) => InvoiceResource::getUrl('edit', ['record' => $record->id])),
         ];
     }
 }
diff --git a/app/Filament/Admin/Resources/PaymentResource/Pages/ListPayments.php b/app/Filament/Admin/Resources/PaymentResource/Pages/ListPayments.php
index 2b11731..40bb814 100644
--- a/app/Filament/Admin/Resources/PaymentResource/Pages/ListPayments.php
+++ b/app/Filament/Admin/Resources/PaymentResource/Pages/ListPayments.php
@@ -30,7 +30,8 @@ protected function getHeaderActions(): array
 
             Actions\CreateAction::make()
                 ->modalWidth('lg')
-                ->icon(IconEnum::NEW->value),
+                ->icon(IconEnum::NEW->value)
+                ->successRedirectUrl(fn ($record) => PaymentResource::getUrl('edit', ['record' => $record->id])),
         ];
     }
 }