src/views/blog-main.lisp
(defpackage murja.views.blog-main
(:use :cl :murja.views.components.root)
(:import-from :murja.models.user :user-nickname)
(:import-from :cl-hash-util :hash)
(:import-from :murja.routes.root-routes :@check-if-initial)
(:import-from :murja.middleware.auth :@ssr-authenticated :*user*)
(:import-from :murja.routes.settings-routes :get-settings)
(:import-from :murja.middleware.db :@transaction)
(:import-from :murja.newui :@newui :e :c :with-state)
(:import-from :easy-routes :defroute)
(:import-from murja.newui.dispatcher :deftab :@dispatcher)
(:export :blog-root-view))
(in-package :murja.views.blog-main)
(deftab /only-logged-in (:route "/only-logged-in"
:require-login t
:title "This shouldn't be visible")
(with-state ((a 1)) ()
(c :div (:class "se-testi-div")
(c :div ()
(format nil "Näkyyköhän tää? ~d" a))
(c :button (:onclick (e (lambda () (incf a))))
"Clickme"))))
(deftab / (:route "/blog/"
:title "Home")
(let* ((settings (get-settings))
(page-size (gethash "recent-post-count" settings))
(page 1))
(with-state (
(page-posts (murja.models.post:get-page page page-size))) ()
(c :div ()
(murja.views.components.page:page page-posts)))))