From a6394ac1df9182728dd809cc912722f57bdeffd9 Mon Sep 17 00:00:00 2001 From: juniwalk Date: Mon, 13 May 2024 13:46:06 +0200 Subject: [PATCH] Allow wider types in translate|highlight and subtext methods --- src/Html.php | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Html.php b/src/Html.php index 958ebed..2c91e35 100644 --- a/src/Html.php +++ b/src/Html.php @@ -62,8 +62,11 @@ public function hasAnyClassOf(string ...$class): bool } + /** + * @param Stringable|scalar|null $content + */ public static function highlight( - Stringable|string|null $content, + mixed $content, Color $color = Color::Primary, bool $translate = true, ): self { @@ -73,8 +76,11 @@ public static function highlight( } + /** + * @param Stringable|scalar|null $content + */ public static function subtext( - Stringable|string|null $content, + mixed $content, Color $color = Color::Secondary, bool $translate = true, ): self { @@ -180,7 +186,7 @@ public static function option( ): self { $content = static::translate($content, $translate); $labelHtml = static::translate($label, $translate); - $label = Strings::stripHtml($labelHtml); + $label = Strings::stripHtml($labelHtml ?? ''); if (!$content && $label <> $labelHtml) { $content = $labelHtml; @@ -283,18 +289,21 @@ public static function progressBar(float $percent, Color $color): self } - private static function translate(Stringable|string|null $text, bool $translate = true): Stringable|string + /** + * @param Stringable|scalar|null $value + */ + private static function translate(mixed $value, bool $translate = true): null|string|Stringable { - $text ??= ''; + $value = strval($value) ?: null; if (!$translate || static::$disableTranslation || !static::$translator) { - return $text; + return $value; } - if (!$text || !Strings::match((string) $text, static::TranslationRegEx)) { - return $text; + if (!$value || !Strings::match($value, static::TranslationRegEx)) { + return $value; } - return static::$translator->translate($text); + return static::$translator->translate($value); } }