A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

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

Fixes #197

+35 -8
+23 -8
src/Applications/UI/Authentication/State.elm
··· 252 252 ) 253 253 |> Lens.adjust lens model 254 254 |> Return.singleton 255 + |> andThen Common.forceTracksRerender 255 256 256 257 257 258 externalAuth : Method -> String -> Manager ··· 376 377 |> Alien.broadcast Alien.SignIn 377 378 |> Ports.toBrain 378 379 -- 379 - |> Return.return model 380 - |> Return.andThen (Common.toggleLoadingScreen On) 380 + |> return model 381 + |> andThen (Common.toggleLoadingScreen On) 381 382 382 383 383 384 signInWithPassphrase : Method -> String -> Manager ··· 395 396 |> Alien.broadcast Alien.SignIn 396 397 |> Ports.toBrain 397 398 -- 398 - |> Return.return model 399 - |> Return.andThen (Common.toggleLoadingScreen On) 399 + |> return model 400 + |> andThen (Common.toggleLoadingScreen On) 400 401 401 402 402 403 signOut : Manager ··· 469 470 |> Alien.trigger 470 471 |> Ports.toBrain 471 472 -- 472 - |> Return.return (lens.set (Authenticated method) model) 473 - |> Return.andThen (Common.showNotification <| Notifications.success "Saving data without encryption ...") 473 + |> return 474 + (lens.set (Authenticated method) model) 475 + |> andThen 476 + ("Saving data without encryption ..." 477 + |> Notifications.success 478 + |> Common.showNotification 479 + ) 480 + |> andThen 481 + Common.forceTracksRerender 474 482 475 483 476 484 showNewEncryptionKeyScreen : Method -> Manager ··· 497 505 |> Alien.broadcast Alien.UpdateEncryptionKey 498 506 |> Ports.toBrain 499 507 -- 500 - |> Return.return (lens.set (Authenticated method) model) 501 - |> Return.andThen (Common.showNotification <| Notifications.success "Encrypting data with new passphrase ...") 508 + |> return 509 + (lens.set (Authenticated method) model) 510 + |> andThen 511 + ("Encrypting data with new passphrase ..." 512 + |> Notifications.success 513 + |> Common.showNotification 514 + ) 515 + |> andThen 516 + Common.forceTracksRerender 502 517 503 518 504 519
+11
src/Applications/UI/Common/State.elm
··· 1 1 module UI.Common.State exposing (..) 2 2 3 + import Browser.Dom 3 4 import Browser.Navigation as Nav 4 5 import Common exposing (..) 5 6 import ContextMenu exposing (ContextMenu) ··· 7 8 import Monocle.Lens as Lens exposing (Lens) 8 9 import Notifications exposing (Notification) 9 10 import Return exposing (return) 11 + import Return.Ext as Return 12 + import Task 10 13 import UI.Notifications 11 14 import UI.Page as Page exposing (Page) 12 15 import UI.Playlists.Directory 16 + import UI.Tracks.Scene.List 13 17 import UI.Types as UI exposing (Manager, Msg) 14 18 15 19 ··· 30 34 options 31 35 |> UI.Notifications.dismiss model.notifications 32 36 |> Return.map (\n -> { model | notifications = n }) 37 + 38 + 39 + forceTracksRerender : Manager 40 + forceTracksRerender = 41 + Browser.Dom.setViewportOf UI.Tracks.Scene.List.containerId 0 1 42 + |> Task.attempt (always UI.Bypass) 43 + |> Return.communicate 33 44 34 45 35 46 generateDirectoryPlaylists : Manager
+1
src/Applications/UI/Tracks/State.elm
··· 590 590 { model | cachedTracksOnly = not model.cachedTracksOnly } 591 591 |> reviseCollection Collection.harvest 592 592 |> andThen User.saveEnclosedUserData 593 + |> andThen Common.forceTracksRerender 593 594 594 595 595 596 toggleFavourite : Int -> Manager