Use empty library instead of option

This commit is contained in:
Mikko Ahlroth 2023-10-14 13:34:24 +03:00
parent 61302f2183
commit 09f85315e4

View file

@ -47,7 +47,7 @@ pub type PlayStatus {
pub type Model {
Model(
loading_library: Bool,
library: option.Option(Library),
library: Library,
settings: option.Option(common.Settings),
request_config: RequestConfig,
search: search.Model,
@ -68,7 +68,7 @@ pub fn init(auth_data: common.AuthData) {
let model =
Model(
loading_library: True,
library: option.None,
library: library.empty(),
settings: option.None,
request_config: form_request_config(auth_data),
search: search.init(),
@ -119,7 +119,7 @@ pub fn update(model: Model, msg) {
#(
Model(
..model,
library: option.Some(library_transfer.from(data.library)),
library: library_transfer.from(data.library),
settings: option.Some(settings),
),
effect.none(),
@ -173,10 +173,8 @@ pub fn update(model: Model, msg) {
#(Model(..model, search: search_model), effect.none())
}
ShuffleAll -> {
let assert option.Some(lib) = model.library
let tracks =
lib.tracks
model.library.tracks
|> map.to_list()
|> list.shuffle()
@ -200,9 +198,9 @@ pub fn view(model: Model) {
div(
[attribute.id("authed-view-content")],
[
case model.library {
option.None -> p([], [text("Loading library…")])
option.Some(lib) -> tracks_view.render(lib)
case model.loading_library {
True -> p([], [text("Loading library…")])
False -> div([], [tracks_view.render(model.library)])
},
// div(
// [attribute.class("track-list")],