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 include karax/prelude
import karax / [kajax, kdom, vstyles, vdom] import karax / [kajax, kdom, vstyles, vdom]
import error, replybox, threadlist, post, category import error, replybox, threadlist, post, category, user
import category, karaxutils import category, karaxutils
type type
@ -157,7 +157,14 @@ when defined(js):
state.onAddCategoryClick()): state.onAddCategoryClick()):
text "Add" 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: if state.status != Http200:
return renderError("Couldn't retrieve categories.", state.status) 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)) (s: int, r: kstring) => onCreatePost(s, r, state))
proc render*(state: NewThread, currentUser: Option[User]): VNode = 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(): result = buildHtml():
section(class="container grid-xl"): section(class="container grid-xl"):
tdiv(id="new-thread"): tdiv(id="new-thread"):
@ -71,7 +63,7 @@ when defined(js):
tdiv(): tdiv():
label(class="d-inline-block form-label"): label(class="d-inline-block form-label"):
text "Category" text "Category"
render(state.categoryPicker) render(state.categoryPicker, currentUser)
renderContent(state.replyBox, none[Thread](), none[Post]()) renderContent(state.replyBox, none[Thread](), none[Post]())
tdiv(class="footer"): tdiv(class="footer"):

View file

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