From 31ded1d9f077a794430443ec9be67b272fa2643a Mon Sep 17 00:00:00 2001 From: "kacaii.dev" Date: Mon, 30 Mar 2026 18:34:15 -0300 Subject: [PATCH] :art: reorder fields --- client/src/client/page/dashboard.gleam | 16 ++++++++-------- client/src/client/ui.gleam | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/client/src/client/page/dashboard.gleam b/client/src/client/page/dashboard.gleam index c5d1fab..6de6e21 100644 --- a/client/src/client/page/dashboard.gleam +++ b/client/src/client/page/dashboard.gleam @@ -36,9 +36,9 @@ fn view_quick_access(session: Session) -> element.Element(Msg) { // User Management view_quick_access_section( session:, - required: [role.Admin], - icon: icon.user([class("inline")]), heading: "User Management", + icon: icon.user([class("inline")]), + required: [role.Admin], elements: [ view_quick_access_item( session:, @@ -52,9 +52,9 @@ fn view_quick_access(session: Session) -> element.Element(Msg) { // Crew Management view_quick_access_section( session:, - required: [role.Admin], - icon: icon.users([class("inline")]), heading: "Crew Management", + icon: icon.users([class("inline")]), + required: [role.Admin], elements: [ view_quick_access_item( session:, @@ -70,12 +70,12 @@ fn view_quick_access(session: Session) -> element.Element(Msg) { fn view_quick_access_section( session session: Session, - required required: List(role.Role), - icon icon: element.Element(Msg), heading heading: String, + icon icon: element.Element(Msg), + required required: List(role.Role), elements elements: List(element.Element(Msg)), ) -> element.Element(Msg) { - use <- ui.require_role(session, required) + use <- ui.require_role(session:, required:) html.div([], [ html.h6([class("flex gap-2")], [icon, html.text(heading)]), @@ -89,7 +89,7 @@ fn view_quick_access_item( text text: String, href href: route.Route, ) -> element.Element(Msg) { - use <- ui.require_role(session, required) + use <- ui.require_role(session:, required:) let href = attr.href(route.to_path(href)) button.link([href, class("w-full")], [html.text(text)]) diff --git a/client/src/client/ui.gleam b/client/src/client/ui.gleam index ee84650..c509203 100644 --- a/client/src/client/ui.gleam +++ b/client/src/client/ui.gleam @@ -3,11 +3,11 @@ import lustre/element import shared/role import shared/session.{type Session} -/// Render nothing if user is not authenticated or lack permissions +/// Conditionally render an element based on an user's permissions pub fn require_role( - session: Session, - required: List(role.Role), - next: fn() -> element.Element(a), + session session: Session, + required required: List(role.Role), + next next: fn() -> element.Element(a), ) -> element.Element(a) { case session { session.Authenticated(user:) -> -- 2.51.2