From 6f843b42cab7106a0c61e0b95dbb8fe9982540fd Mon Sep 17 00:00:00 2001 From: Jan Beinke Date: Tue, 25 Jun 2024 17:21:23 +0200 Subject: [PATCH] quasar: Add `stripLoading` and `isLoading` to the `Quasar.Observable.List` --- quasar/src/Quasar/Observable/List.hs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/quasar/src/Quasar/Observable/List.hs b/quasar/src/Quasar/Observable/List.hs index 118596b..3a996a7 100644 --- a/quasar/src/Quasar/Observable/List.hs +++ b/quasar/src/Quasar/Observable/List.hs @@ -13,6 +13,8 @@ module Quasar.Observable.List ( ListDeltaOperation(..), Length(..), share, + stripLoading, + isLoading, -- * Reexports FingerTree, @@ -62,6 +64,7 @@ import Data.Sequence qualified as Seq import Data.Traversable qualified as Traversable import Quasar.Disposer (TDisposer) import Quasar.Observable.Core +import Quasar.Observable.Loading (StripLoading, observableTStripLoading, observableTIsLoading) import Quasar.Observable.Share import Quasar.Observable.Subject import Quasar.Observable.Traversable @@ -403,6 +406,15 @@ share :: share (ObservableList f) = ObservableList <$> shareObservableT f +instance IsObservableList NoLoad exceptions v (StripLoading exceptions Seq v) where + +stripLoading :: Seq v -> ObservableList Load exceptions v -> ObservableList NoLoad exceptions v +stripLoading initialFallback = ObservableList . observableTStripLoading initialFallback . toObservableT + +isLoading :: ObservableList canLoad exceptions v -> Observable NoLoad '[] (Loading canLoad) +isLoading = observableTIsLoading . toObservableT + + constObservableList :: ObservableState canLoad (ObservableResult exceptions Seq) v -> ObservableList canLoad exceptions v constObservableList = ObservableList . ObservableT