tetratto/crates/app/src/public/html/macros.lisp

217 lines
7.6 KiB
Common Lisp
Raw Normal View History

2025-05-31 20:42:11 -04:00
(text "{% macro nav(selected=\"\", show_lhs=true, hide_user_menu=false) -%}")
(nav
(div
("class" "content_container")
(div
("class" "flex nav_side")
(a
("href" "/")
("class" "button desktop title")
(b (text "{{ config.name }}")))
(text "{% if show_lhs -%}")
(a
("href" "{{ home }}")
("class" "button {% if selected == 'home' -%}active{%- endif %}")
("title" "Home")
(icon (text "house"))
(span
("class" "desktop")
(str (text "general:link.home"))))
(text "{% if user -%}")
(a
("href" "/communities")
("class" "button {% if selected == 'communities' -%}active{%- endif %}")
(icon (text "book-heart"))
(span
("class" "desktop")
(str (text "general:link.communities"))))
(text "{%- endif %} {%- endif %}"))
(div
("class" "flex nav_side")
(text "{% if user -%}")
(a
("href" "/communities/intents/post")
("class" "button")
("title" "Create post")
(icon (text "square-pen")))
(a
("href" "/chats/0/0")
("class" "button {% if selected == 'chats' -%}active{%- endif %}")
("title" "Chats")
(icon (text "message-circle")))
(a
("href" "/requests")
("class" "button {% if selected == 'requests' -%}active{%- endif %}")
("title" "Chats")
(icon (text "inbox"))
(span
("class" "notification tr {% if user.request_count <= 0 -%}hidden{%- endif %}")
("id" "requests_span")
(text "{{ user.request_count }}")))
(a
("href" "/notifs")
("class" "button {% if selected == 'notifications' -%}active{%- endif %}")
("title" "Chats")
(icon (text "bell"))
(span
("class" "notification tr {% if user.notification_count <= 0 -%}hidden{%- endif %}")
("id" "notifications_span")
(text "{{ user.notification_count }}")))
(text "{% if not hide_user_menu -%}")
(div
("class" "dropdown")
(button
("class" "flex-row title")
("onclick" "trigger('atto::hooks::dropdown', [event])")
("exlude" "dropdown")
("style" "gap: 0.25rem !important")
(text "{{ components::avatar(username=user.username, size=\"24px\") }}")
(icon_class (text "chevron-down") (text "dropdown-arrow")))
(text "{{ components::user_menu() }}"))
(text "{%- endif %} {% else %}")
(div
("class" "dropdown")
(button
("class" "title")
("onclick" "trigger('atto:hooks::dropdown', [evnet])")
("exclude" "dropdown")
(icon_class (text "chevron-down") (text "dropdown-arrow")))
(div
("class" "inner")
(a
("href" "/auth/login")
("class" "button")
(icon (text "log-in"))
(str (text "auth:action.login")))
(a
("href" "/auth/register")
("class" "button")
(icon (text "user-plus"))
(str (text "auth:action.register")))
(div ("class" "title"))
(a
("href" "https://trisua.com/t/tetratto")
("class" "button")
(icon (text "code"))
(text "View source")))))
(text "{%- endif %}")))
(text "{%- endmacro %}")
(text "{% macro timelines_nav(selected=\"\") -%}")
(div
("class" "pillmenu {% if user -%}rows{% endif %} w-full")
(div
("class" "row")
(text "{% if user -%}")
(a
("href" "/")
("class" "{% if selected == 'home' -%}active{%- endif %}")
(icon (text "newspaper"))
(str (text "general:link.home")))
(a
("href" "/stacks")
("class" "{% if selected == 'stacks' -%}active{%- endif %}")
(icon (text "layers"))
(str (text "stacks:link.stacks")))
(text "{% else %}")
(a
("href" "/")
("class" "{% if selected == 'all' -%}active{%- endif %}")
(icon (text "earch"))
(str (text "general:link.all")))
(text "{%- endif %}")
(a
("href" "/popular")
("class" "{% if selected == 'popular' -%}active{%- endif %}")
(icon (text "layers"))
(str (text "general:link.popular"))))
(div
("class" "row")
(text "{% if user -%}")
(a
("href" "/following")
("class" "{% if selected == 'following' -%}active{%- endif %}")
(icon (text "rss"))
(str (text "general:link.following")))
(a
("href" "/search")
("class" "{% if selected == 'search' -%}active{%- endif %}")
(icon (text "search"))
(str (text "general:link.search")))
(a
("href" "/all")
("class" "{% if selected == 'all' -%}active{%- endif %}")
(icon (text "earth"))
(str (text "general:link.all")))
(text "{%- endif %}")))
(text "{%- endmacro %}")
(text "{% macro timelines_secondary_nav(posts=\"\", questions=\"\", selected=\"posts\") -%} {% if user -%}")
(div
("class" "pillmenu w-full")
(a
("href" "{{ posts }}")
("class" "{% if selected == 'posts' -%}active{%- endif %}")
(icon (text "newspaper"))
(str (text "communities:label.posts")))
(a
("href" "{{ questions }}")
("class" "{% if selected == 'questions' -%}active{%- endif %}")
(icon (text "message-circle-heart"))
(str (text "communities:label.questions"))))
(text "{%- endif %} {%- endmacro %}")
(text "{% macro community_nav(community, selected=\"\") -%} {% if community.context.enable_questions -%}")
(div
("class" "pillmenu")
(a
("href" "/community/{{ community.title }}")
("class" "{% if selected == 'posts' -%}active{%- endif %}")
(icon (text "newspaper"))
(str (text "communities:tab.posts")))
(a
("href" "/community/{{ community.title }}/questions")
("class" "{% if selected == 'questions' -%}active{%- endif %}")
(icon (text "message-circle-heart"))
(str (text "communities:tab.questions"))))
(text "{%- endif %} {%- endmacro %}")
(text "{% macro profile_nav(selected=\"\") -%}")
(div
("class" "pillmenu")
(a
("href" "/@{{ profile.username }}")
("class" "{% if selected == 'posts' -%}active{%- endif %}")
(str (text "auth:label.posts")))
(a
("href" "/@{{ profile.username }}/replies")
("class" "{% if selected == 'replies' -%}active{%- endif %}")
(str (text "auth:label.replies")))
(a
("href" "/@{{ profile.username }}/media")
("class" "{% if selected == 'media' -%}active{%- endif %}")
(str (text "auth:label.media"))))
(text "{%- endmacro %}")