This repository has no description
lustre gleam
0

Configure Feed

Select the types of activity you want to include in your feed.

:art: pipe handler

author
kacaii.dev
date (Apr 5, 2026, 6:32 PM -0300) commit a1523fae parent 28b0e86a change-id mrzqnvww
+23 -19
+23 -19
client/src/client.gleam
··· 71 71 let session = init_session(route, is_protected) 72 72 73 73 let router_effect = 74 - fn(uri) { UserNavigatedTo(route.parse(uri)) } 75 - |> modem.init 74 + modem.init(fn(uri) { route.parse(uri) |> UserNavigatedTo }) 76 75 77 76 let session_effect = 78 77 UserRestoredSession ··· 119 118 120 119 model, ServerRemovedToken(Ok(_)) -> { 121 120 let session = session.None 122 - let model = Model(..model, session:) 123 121 let redirect_to = route.to_path(route.Landing) 124 122 125 - #(model, modem.push(redirect_to, option.None, option.None)) 123 + let new = Model(..model, session:) 124 + let effect = modem.push(redirect_to, option.None, option.None) 125 + 126 + #(new, effect) 126 127 } 127 128 128 129 // UI ---------------------------------------------------------------------- ··· 179 180 180 181 // FALLBACK ---------------------------------------------------------------- 181 182 // 182 - model, _ -> #(model, effect.none()) 183 + _, _ -> #(model, effect.none()) 183 184 } 184 185 } 185 186 ··· 239 240 let route = case model.session, route { 240 241 session.None, _ | session.Pending(_, _), _ if is_protected -> route.Login 241 242 session.Authenticated(_), route.Login -> route.Home 242 - _, route -> route 243 + 244 + _, _ -> route 243 245 } 244 246 245 - let model = Model(..model, route:, page: page.init(route)) 246 - #(model, effect.none()) 247 + let new = Model(..model, route:, page: page.init(route)) 248 + #(new, effect.none()) 247 249 } 248 250 249 251 /// Default message handling. ··· 258 260 ) -> #(Model, Effect(Msg)) { 259 261 let #(page_model, effect) = update_fn(page_model, page_msg) 260 262 let page = page_model_fn(page_model) 263 + 264 + let new = Model(..model, page:) 261 265 let effect = effect.map(effect, page_msg_map) 262 266 263 - #(Model(..model, page:), effect) 267 + #(new, effect) 264 268 } 265 269 266 270 fn handle_sidebar_msg(model: Model, msg: sidebar.Msg) -> #(Model, Effect(Msg)) { 267 271 case model, msg { 268 - Model(session: session.Authenticated(_), ..), sidebar.UserClickedLogout -> { 269 - let message = ServerRemovedToken 270 - let effect = rsvp.get("/api/logout", rsvp.expect_ok_response(message)) 271 - 272 - #(model, effect) 273 - } 272 + Model(session: session.Authenticated(_), ..), sidebar.UserClickedLogout -> #( 273 + model, 274 + ServerRemovedToken 275 + |> rsvp.expect_ok_response 276 + |> rsvp.get("/api/logout", _), 277 + ) 274 278 275 279 _, _ -> #(model, effect.none()) 276 280 } ··· 298 302 let message = case reason { 299 303 rsvp.HttpError(resp) -> resp.body 300 304 rsvp.NetworkError -> "Connection unnavailable" 305 + 301 306 _ -> "" 302 307 } 303 308 304 - let page = 305 - login.Model(..page_model, loading: False, message:) 306 - |> page.Login 309 + let page_model = login.Model(..page_model, loading: False, message:) 310 + let new = Model(..model, page: page.Login(page_model)) 307 311 308 - #(Model(..model, page:), effect.none()) 312 + #(new, effect.none()) 309 313 } 310 314 } 311 315 }