Extract message type match from Generator::getMessage

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2024-05-16 15:12:06 -03:00
parent cf44e8beb4
commit d17e46c486
No known key found for this signature in database
GPG Key ID: 6A16FD38AFC89CC8
2 changed files with 17 additions and 10 deletions

View File

@ -399,7 +399,7 @@ class Generator
public static function getMessage(
Message|string $message,
string|null $sqlQuery = null,
MessageType|string $type = MessageType::Notice,
MessageType $type = MessageType::Notice,
): string {
$retval = '';
@ -422,14 +422,6 @@ class Generator
}
if (is_string($message)) {
if (is_string($type)) {
$type = match ($type) {
'success' => MessageType::Success,
'error' => MessageType::Error,
default => MessageType::Notice,
};
}
$message = new Message($message, $type);
}

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Twig;
use PhpMyAdmin\Html\Generator;
use PhpMyAdmin\Message;
use PhpMyAdmin\MessageType;
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;
use Twig\TwigFunction;
@ -41,6 +42,20 @@ class MessageExtension extends AbstractExtension
/** @inheritDoc */
public function getFunctions(): array
{
return [new TwigFunction('statement_message', Generator::getMessage(...), ['is_safe' => ['html']])];
return [
new TwigFunction(
'statement_message',
static function (string $message, string $statement, string $context): string {
$type = match ($context) {
'success' => MessageType::Success,
'error', 'danger' => MessageType::Error,
default => MessageType::Notice,
};
return Generator::getMessage($message, $statement, $type);
},
['is_safe' => ['html']],
),
];
}
}