load ∷ List.List DeckId → WorkspaceDSL Unit
load cursor = do
st ← H.get
case st.stateMode of
Loading → do
rootId ← H.lift P.loadWorkspace
case rootId of
Left err → do
providers ←
Quasar.retrieveAuthProviders <#> case _ of
Right (Just providers) → providers
_ → []
H.modify _
{ stateMode = Error err
, providers = providers
}
for_ (GE.fromQError err) GE.raiseGlobalError
Right _ → loadCursor cursor
_ → loadCursor cursor
-- Present consumer changes if needed
{ eval: cardEval, accessType } ← lift Wiring.expose
loadedConsumerChanges ← H.liftAff $ takeVar cardEval.loadedConsumerChanges
H.modify _ { consumerChangesNotice = loadedConsumerChanges && AT.isReadOnly accessType }
instead of
load ∷ List.List DeckId → WorkspaceDSL Unit
load cursor = do
st ← H.get
case st.stateMode of
Loading → do
rootId ← H.lift P.loadWorkspace
case rootId of
Left err → do
providers ←
Quasar.retrieveAuthProviders <#> case _ of
Right (Just providers) → providers
_ → []
H.modify _
{ stateMode = Error err
, providers = providers
}
for_ (GE.fromQError err) GE.raiseGlobalError
Right _ → loadCursor cursor
_ → loadCursor cursor
presentConsumerChangesNoticeIfNeeded
presentConsumerChangesNoticeIfNeeded ∷ WorkspaceDSL Unit
presentConsumerChangesNoticeIfNeeded = do
{ eval: cardEval, accessType } ← lift Wiring.expose
loadedConsumerChanges ← H.liftAff $ takeVar cardEval.loadedConsumerChanges
H.modify _ { consumerChangesNotice = loadedConsumerChanges && AT.isReadOnly accessType }