Files
metabuilder/packages/ui_header/seed/scripts/render/user.lua
2025-12-30 13:31:14 +00:00

53 lines
1.2 KiB
Lua

-- Header user section
---@class User
---@field avatar? string
---@field name string
---@field role? string
---@class MenuItem
---@field label? string
---@field path? string
---@field action? string
---@field type? string
---@class AuthButtonsComponent
---@field type "auth_buttons"
---@field children MenuItem[]
---@class UserMenuComponent
---@field type "user_menu"
---@field avatar? string
---@field name? string
---@field items MenuItem[]
---@alias HeaderUserComponent AuthButtonsComponent|UserMenuComponent
---@param user? User
---@return HeaderUserComponent
local function user_section(user)
if not user then
return {
type = "auth_buttons",
children = {
{ type = "button", label = "Login", action = "navigate", path = "/login" },
{ type = "button", label = "Sign Up", action = "navigate", path = "/register" }
}
}
end
return {
type = "user_menu",
avatar = user.avatar,
name = user.name,
items = {
{ label = "Profile", path = "/profile" },
{ label = "Settings", path = "/settings" },
{ type = "divider" },
{ label = "Logout", action = "logout" }
}
}
end
return user_section