From 1d713207ffe64483f11e2fb510f36f23d7baea7d Mon Sep 17 00:00:00 2001 From: Justin Nesselrotte Date: Sat, 28 Dec 2024 19:12:27 -0700 Subject: [PATCH] Added ability to preview modal with slack block kit builder --- app/External/Slack/Modals/ModalTrait.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/External/Slack/Modals/ModalTrait.php b/app/External/Slack/Modals/ModalTrait.php index 3669a6c2..a9f855ef 100644 --- a/app/External/Slack/Modals/ModalTrait.php +++ b/app/External/Slack/Modals/ModalTrait.php @@ -6,6 +6,7 @@ use App\Http\Requests\SlackRequest; use Illuminate\Http\JsonResponse; use Illuminate\Http\Response; +use SlackPhp\BlockKit\Previewer; use SlackPhp\BlockKit\Surfaces\Modal; trait ModalTrait @@ -19,6 +20,19 @@ public function jsonSerialize(): array return $this->modalView->jsonSerialize(); } + /** + * This is for debugging so you can see what your modal looks like in the Slack block kit builder. + * + * @return string Block kit url string + */ + public function preview(): string + { + // We have to validate it here again, but most places validate it directly through jsonSerialize. + $this->modalView->validate(); + + return Previewer::new()->preview($this->modalView); + } + public function push(): JsonResponse { return response()->json([