diff --git a/packages/infolists/src/Components/Concerns/CanFormatState.php b/packages/infolists/src/Components/Concerns/CanFormatState.php index 167898e2e2..d0b0dca64a 100644 --- a/packages/infolists/src/Components/Concerns/CanFormatState.php +++ b/packages/infolists/src/Components/Concerns/CanFormatState.php @@ -163,6 +163,7 @@ trait CanFormatState } $currency = $component->evaluate($currency) ?? Infolist::$defaultCurrency; + $locale = $component->evaluate($locale) ?? Infolist::$defaultNumberLocale ?? config('app.locale'); if ($divideBy) { $state /= $divideBy; @@ -203,7 +204,9 @@ trait CanFormatState ); } - return Number::format($state, $decimalPlaces, $component->evaluate($maxDecimalPlaces), $component->evaluate($locale) ?? config('app.locale')); + $locale = $component->evaluate($locale) ?? Infolist::$defaultNumberLocale ?? config('app.locale'); + + return Number::format($state, $decimalPlaces, $component->evaluate($maxDecimalPlaces), $locale); }); return $this; diff --git a/packages/infolists/src/Infolist.php b/packages/infolists/src/Infolist.php index 991d59ac64..daa91add73 100644 --- a/packages/infolists/src/Infolist.php +++ b/packages/infolists/src/Infolist.php @@ -14,6 +14,8 @@ class Infolist extends ComponentContainer public static string $defaultTimeDisplayFormat = 'H:i:s'; + public static ?string $defaultNumberLocale = null; + public function name(string $name): static { $this->name = $name; diff --git a/packages/tables/src/Columns/Concerns/CanFormatState.php b/packages/tables/src/Columns/Concerns/CanFormatState.php index ebc26d5d5f..d9f8290434 100644 --- a/packages/tables/src/Columns/Concerns/CanFormatState.php +++ b/packages/tables/src/Columns/Concerns/CanFormatState.php @@ -163,12 +163,13 @@ trait CanFormatState } $currency = $column->evaluate($currency) ?? Table::$defaultCurrency; + $locale = $column->evaluate($locale) ?? Table::$defaultNumberLocale ?? config('app.locale'); if ($divideBy) { $state /= $divideBy; } - return Number::currency($state, $currency, $column->evaluate($locale) ?? config('app.locale')); + return Number::currency($state, $currency, $locale); }); return $this; @@ -203,7 +204,9 @@ trait CanFormatState ); } - return Number::format($state, $decimalPlaces, $column->evaluate($maxDecimalPlaces), locale: $column->evaluate($locale) ?? config('app.locale')); + $locale = $column->evaluate($locale) ?? Table::$defaultNumberLocale ?? config('app.locale'); + + return Number::format($state, $decimalPlaces, $column->evaluate($maxDecimalPlaces), locale: $locale); }); return $this; diff --git a/packages/tables/src/Table.php b/packages/tables/src/Table.php index 1255ae8910..38a5fd00a8 100644 --- a/packages/tables/src/Table.php +++ b/packages/tables/src/Table.php @@ -64,6 +64,8 @@ class Table extends ViewComponent public static string $defaultDateTimeDisplayFormat = 'M j, Y H:i:s'; + public static ?string $defaultNumberLocale = null; + public static string $defaultTimeDisplayFormat = 'H:i:s'; final public function __construct(HasTable $livewire)