Fix recognize size as number and add multiple value

This commit is contained in:
Marcus Kammer 2023-08-12 12:02:58 +02:00
parent 014a075de9
commit 5d55563481
Signed by: marcuskammer
GPG key ID: C374817BE285268F

View file

@ -58,14 +58,17 @@
(defmacro select ((&key size) &body body)
(let ((class-attr (cond
((null size) "form-select")
((numberp size) "form-select")
((string= size "multiple") "form-select")
((stringp size) (format nil "form-select form-select-~a" size)))))
((null size) "form-select")
((numberp size) "form-select")
((and (stringp size)
(string= size "multiple")) "form-select")
((stringp size)
(format nil "form-select form-select-~a" size))
(t (error "Invalid size specification: ~a" size)))))
`(spinneret:with-html
(:select :class ,class-attr
,@(when (numberp size) `(:size ,size))
,@(when (string= size "multiple") '(:multiple t))
:aria-label "Default select example"
(:option :selected t "Open this selected menu")
,@body))))
,@(when (numberp size) `(:size ,size))
,@(when (and (stringp size) (string= size "multiple")) (list :multiple t))
:aria-label "Default select example"
(:option :selected t "Open this selected menu")
,@body))))