commit 20f66d3e663eca1889354da880458264430f4296 from: mtmn date: Sun Aug 2 17:53:00 2026 UTC feat: redo ui and add background commit - 1f11edf54013c82402ffbc058de59e9668c52d10 commit + 20f66d3e663eca1889354da880458264430f4296 blob - /dev/null blob + bf73340068cfa7919881cbe6ec81ab3a04d9d18a (mode 644) Binary files /dev/null and assets/left.webp differ blob - /dev/null blob + 5ca9fd161b584d7e202af278ce91fe1a28ea0744 (mode 644) Binary files /dev/null and assets/right.webp differ blob - d9fb2294a30528aac890909fc858c5f7f6cecf3c blob + 21f0426df1c2b249c91f69dcf4278280ed828cf2 --- flake.lock +++ flake.lock @@ -51,11 +51,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1783915482, - "narHash": "sha256-FmieJB8/OUvNxbkboi7+IGfIuSXY3nF/hZQm8kD0r50=", + "lastModified": 1785602060, + "narHash": "sha256-z7D96eESRM4CPV/XtwpwFn8IDdfLAmxz6lVWrGYXvR4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6cdc7fc76e8bf7fde9fa43a849fcaaa70e230dee", + "rev": "a5cbcfe954791221bfffe2307f7d1a1bf61a871e", "type": "github" }, "original": { blob - fa4250e86cb91b61f1403c67598d0f928f29971f blob + 7eb18dc8f5f34813c0ceca1d765a862f5df6c185 --- src/Main.purs +++ src/Main.purs @@ -108,6 +108,10 @@ routeRequest env contexts req url path allUsers res = serveAsset "image/png" "assets/favicon.png" res "/cover.webp" -> serveAsset "image/webp" "assets/cover.webp" res + "/gutter-left.webp" -> + serveAsset "image/webp" "assets/left.webp" res + "/gutter-right.webp" -> + serveAsset "image/webp" "assets/right.webp" res "/" -> serveIndex regEnabled allUsers "" res "/register" -> blob - 161c64f63caa4c654cf4e243905cfea12725b77e blob + d7b603af4cde642bc457bef5c84c662913e9fa2f --- src/Registrations.purs +++ src/Registrations.purs @@ -48,6 +48,8 @@ reservedSlugs = , "client.js" , "favicon.png" , "cover.webp" + , "gutter-left.webp" + , "gutter-right.webp" , "cover" , "metrics" , "proxy" blob - 1f99cfd0d81d875b4ed6319d26fca553ed0891cd blob + e019ebda3e58402c9a341929d6b9b9af09bb263f --- src/State.elm +++ src/State.elm @@ -49,7 +49,6 @@ init flags url navKey = , allUsers = flags.allUsers , searchInput = "" , activeSearch = Nothing - , tabsVisible = True , page = page , registrationEnabled = flags.registrationEnabled , regSlug = "" @@ -127,8 +126,12 @@ update msg model = UrlRequested urlRequest -> case urlRequest of Browser.Internal url -> - ( model, Nav.pushUrl model.navKey (Url.toString url) ) + if String.isEmpty url.path then + ( model, Cmd.none ) + else + ( model, Nav.pushUrl model.navKey (Url.toString url) ) + Browser.External href -> ( model, Nav.load href ) @@ -190,8 +193,11 @@ update msg model = else targetOffset + + shouldLoad = + model.page /= MainPage || userChanged || model.offset /= finalOffset || model.activeFilter /= finalFilter || model.activeSearch /= finalSearch in - if model.page /= MainPage || userChanged || model.offset /= finalOffset || model.activeFilter /= finalFilter || model.activeSearch /= finalSearch then + if shouldLoad then let newModel = { model @@ -227,7 +233,7 @@ update msg model = ) else - ( { model | activeTab = ListensTab, page = MainPage }, Cmd.none ) + ( { model | page = MainPage }, Cmd.none ) Tick time -> if model.page == MainPage && not model.loading then @@ -339,9 +345,6 @@ update msg model = Cmd.none ) - ToggleTabs -> - ( { model | tabsVisible = not model.tabsVisible }, Cmd.none ) - SetStatsPeriod period -> ( { model | statsPeriod = period @@ -492,6 +495,9 @@ update msg model = UnhoverCover -> ( { model | hoveredCover = Nothing }, Cmd.none ) + CoverBackgroundClick -> + ( { model | hoveredCover = Nothing }, Cmd.none ) + ExpandSection section -> ( { model | expandedSections = Set.insert section model.expandedSections }, Cmd.none ) blob - a77bc9f485b85c13813cc966cb16a396212d47b6 blob + 39c343b9a4af4e29e2d61256a1efd6f142255451 --- src/Templates.purs +++ src/Templates.purs @@ -21,285 +21,481 @@ indexHtml registrationEnabled userSlug allUsers =