diff --git a/src/blog.gleam b/src/blog.gleam index c22929c..f1db8b4 100644 --- a/src/blog.gleam +++ b/src/blog.gleam @@ -10,8 +10,8 @@ import blog/page/writing import blog/route import gleam/bool import gleam/list +import gleam/result import gleam/string -import gleam/uri import lustre import lustre/attribute as attr import lustre/effect @@ -43,18 +43,17 @@ pub type Page { } pub fn main() -> Nil { - let assert Ok(initial_uri) = modem.initial_uri() let showcases = list.shuffle(home.all_showcases) let app = lustre.application(init:, update:, view:) - let opts = Init(initial_uri:, showcases:) + let opts = Init(showcases:) let assert Ok(_) = lustre.start(app, "#app", opts) Nil } pub type Init { - Init(initial_uri: uri.Uri, showcases: List(home.Showcase)) + Init(showcases: List(home.Showcase)) } pub type Message { @@ -98,7 +97,11 @@ fn do_update_document_title(new_title: String) -> Nil // UPDATE ---------------------------------------------------------------------- pub fn init(opts: Init) -> #(Model, effect.Effect(Message)) { - let route = route.parse(opts.initial_uri) + let route = + modem.initial_uri() + |> result.map(route.parse) + |> result.unwrap(route.Home) + let #(atproto, atproto_effect) = init_atproto() let #(page, page_effect) = init_page(route, atproto, opts.showcases) let showcases = home.all_showcases diff --git a/test/blog_test.gleam b/test/blog_test.gleam index a1a5fd4..700fea8 100644 --- a/test/blog_test.gleam +++ b/test/blog_test.gleam @@ -1,7 +1,4 @@ import blog -import blog/page/home -import blog/route -import gleam/uri import gleeunit import lustre/dev/simulate @@ -15,15 +12,3 @@ pub fn simulation( simulate.application(blog.init, blog.update, blog.view) |> simulate.start(opts) } - -/// Provides an initial uri for the Model to be initialized -pub fn init( - on route: route.Route, - with showcases: List(home.Showcase), -) -> blog.Init { - let assert Ok(uri) = uri.parse("https://localhost:1234") - let path = route.path(route) - - let initial_uri = uri.Uri(..uri, path:) - blog.Init(initial_uri:, showcases:) -} diff --git a/test/blog_test/atproto_test.gleam b/test/blog_test/atproto_test.gleam index 1d568fb..7304059 100644 --- a/test/blog_test/atproto_test.gleam +++ b/test/blog_test/atproto_test.gleam @@ -2,7 +2,6 @@ import blog import blog/atproto import blog/atproto/bluesky import blog/atproto/data -import blog/route import blog_test import gleam/time/timestamp import lustre/dev/simulate @@ -23,7 +22,7 @@ pub fn pds_returned_bluesky_profile_test() -> Nil { |> blog.AtProtoMessage let model = - blog_test.init(on: route.Home, with: []) + blog.Init(showcases: []) |> blog_test.simulation |> simulate.message(message) |> simulate.model @@ -41,7 +40,7 @@ pub fn pds_returned_bluesky_posts_test() -> Nil { |> blog.AtProtoMessage let model = - blog_test.init(on: route.Home, with: []) + blog.Init(showcases: []) |> blog_test.simulation |> simulate.message(message) |> simulate.model diff --git a/test/blog_test/navbar_test.gleam b/test/blog_test/navbar_test.gleam index 323faad..a4095d0 100644 --- a/test/blog_test/navbar_test.gleam +++ b/test/blog_test/navbar_test.gleam @@ -1,16 +1,15 @@ import blog -import blog/route import blog_test import lustre/dev/query import lustre/dev/simulate pub fn update_title_test() -> Nil { - let init = blog_test.init(route.Home, []) let title = "wibble" let msg = blog.NavbarTitleUpdated(title:) let simulation = - blog_test.simulation(init) + blog.Init(showcases: []) + |> blog_test.simulation |> simulate.message(msg) let model = simulate.model(simulation) diff --git a/test/blog_test/navigation_test.gleam b/test/blog_test/navigation_test.gleam index 187e517..2eb2191 100644 --- a/test/blog_test/navigation_test.gleam +++ b/test/blog_test/navigation_test.gleam @@ -12,7 +12,7 @@ import modem pub fn navigation_test() -> Nil { let simulation = - blog_test.init(on: route.Home, with: list.shuffle(home.all_showcases)) + blog.Init(showcases: list.shuffle(home.all_showcases)) |> blog_test.simulation let showcases = simulate.model(simulation).showcases