Refactor category picker

This commit is contained in:
Joey Yakimowich-Payne 2020-02-15 09:02:00 -07:00
commit ce9cde4a0d
3 changed files with 11 additions and 15 deletions

View file

@ -5,7 +5,7 @@ when defined(js):
include karax/prelude
import karax / [kajax, kdom, vstyles, vdom]
import error, replybox, threadlist, post, category
import error, replybox, threadlist, post, category, user
import category, karaxutils
type
@ -157,7 +157,14 @@ when defined(js):
state.onAddCategoryClick()):
text "Add"
proc render*(state: CategoryPicker): VNode =
proc render*(state: CategoryPicker, currentUser: Option[User]): VNode =
let loggedIn = currentUser.isSome()
let currentAdmin =
loggedIn and currentUser.get().rank == Admin
if currentAdmin:
state.setAddEnabled(true)
if state.status != Http200:
return renderError("Couldn't retrieve categories.", state.status)

View file

@ -48,14 +48,6 @@ when defined(js):
(s: int, r: kstring) => onCreatePost(s, r, state))
proc render*(state: NewThread, currentUser: Option[User]): VNode =
let loggedIn = currentUser.isSome()
let currentAdmin =
currentUser.isSome() and currentUser.get().rank == Admin
if currentAdmin:
state.categoryPicker.setAddEnabled(true)
result = buildHtml():
section(class="container grid-xl"):
tdiv(id="new-thread"):
@ -71,7 +63,7 @@ when defined(js):
tdiv():
label(class="d-inline-block form-label"):
text "Category"
render(state.categoryPicker)
render(state.categoryPicker, currentUser)
renderContent(state.replyBox, none[Thread](), none[Post]())
tdiv(class="footer"):

View file

@ -211,13 +211,10 @@ when defined(js):
let currentAdmin =
currentUser.isSome() and currentUser.get().rank == Admin
if currentAdmin:
state.categoryPicker.setAddEnabled(true)
result = buildHtml():
tdiv():
if authoredByUser or currentAdmin:
render(state.categoryPicker)
render(state.categoryPicker, currentUser)
else:
render(thread.category)