From 3a0a20d59cdae7f166325efb750eaa6e9800ba6e Mon Sep 17 00:00:00 2001
From: Yassine Doghri <yassine@doghri.fr>
Date: Tue, 1 Feb 2022 16:08:55 +0000
Subject: [PATCH] fix(install): set message block on forms to show error
 messages

fixes #157
---
 app/Views/Components/Alert.php       |  2 ++
 themes/cp_install/_layout.php        |  2 +-
 themes/cp_install/_message_block.php | 20 ++++++++++++++++++++
 3 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 themes/cp_install/_message_block.php

diff --git a/app/Views/Components/Alert.php b/app/Views/Components/Alert.php
index 41cf3bc51f..9cf3007527 100644
--- a/app/Views/Components/Alert.php
+++ b/app/Views/Components/Alert.php
@@ -30,6 +30,8 @@ class Alert extends Component
         $title = $this->title === null ? '' : '<div class="font-semibold">' . $this->title . '</div>';
         $class = 'inline-flex w-full p-2 text-sm border rounded ' . $variantClasses[$this->variant] . ' ' . $this->class;
 
+        unset($this->attributes['slot']);
+        unset($this->attributes['variant']);
         $attributes = stringify_attributes($this->attributes);
 
         return <<<HTML
diff --git a/themes/cp_install/_layout.php b/themes/cp_install/_layout.php
index a8563c0466..30d24d6b7f 100644
--- a/themes/cp_install/_layout.php
+++ b/themes/cp_install/_layout.php
@@ -23,7 +23,7 @@
         </div>
     </header>
     <main class="container flex flex-col items-center justify-center flex-1 px-4 py-10 mx-auto">
-        <!-- view('_message_block') -->
+        <?= view('_message_block') ?>
         <?= $this->renderSection('content') ?>
     </main>
     <footer class="container px-2 py-4 mx-auto text-sm text-right border-t border-subtle">
diff --git a/themes/cp_install/_message_block.php b/themes/cp_install/_message_block.php
new file mode 100644
index 0000000000..b52a79f6cf
--- /dev/null
+++ b/themes/cp_install/_message_block.php
@@ -0,0 +1,20 @@
+<?php declare(strict_types=1);
+
+if (session()->has('message')): ?>
+    <Alert variant="success" class="max-w-sm mb-4"><?= session('message') ?></Alert>
+<?php endif; ?>
+
+<?php if (session()->has('error')): ?>
+    <Alert variant="danger" class="max-w-sm mb-4"><?= session('error') ?></Alert>
+<?php endif; ?>
+
+<?php if (session()->has('errors')): ?>
+    <Alert variant="danger" class="max-w-sm mb-4">
+        <ul>
+            <?php foreach (session('errors') as $error): ?>
+                <li><?= $error ?></li>
+            <?php endforeach; ?>
+        </ul>
+    </Alert>
+<?php endif;
+?>
-- 
GitLab