···4242import lustre/attribute.{attribute}
4343import lustre/element.{type Element}
4444import lustre/element/html
4545-import lustre/element/svg
4645import lustre/event
47464847fn closemodal_not_for_modal_box() {
···5352 }
5453}
55545656-pub fn view(model: model_type.Model) {
5555+pub fn view(model: model_type.Model) -> Element(Msg) {
5756 // Dissect the model
5857 let assert model_type.Model(
5958 page: model_type.HomeTimeline(timeline_name:, modal:),
6059 user:,
6160 ..,
6261 ) = model
6262+ use <-
6363+ bool.lazy_guard(option.is_some(user), _, fn() {
6464+ element.text("Loading user...")
6565+ })
6366 let assert Some(user) = user
6464- as "User must be logged in to see homepage, got None from model where a user-submodel was expected."
6565-6767+ as "User must be logged in to see homepage, got None from model where a user-submodel was expected. (Got past a guard?)"
6668 let timeline_name = option.unwrap(timeline_name, "global")
6769 let modal_element = case
6870 modal |> option.map(modal_by_id(_, model)) |> option.unwrap(NoModal)
···128130 html.div(
129131 [
130132 attribute.id(id),
131131-132133 attribute.class(
133134 "modal-box lg:freeroam flex flex-col justify-center items-center bg-base-100 shadow-2xl w-[99vw] lg:w-[32rem] max-w-[unset] lg:max-w-[99vw] h-[80lvh] lg:h-[80lvh] lg:max-h-[90vh] relative lg:absolute",
134135 ),