diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-03-29 21:08:14 +0100 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-03-31 20:35:33 +0200 |
commit | 7a8e3fa16970296de6e553631fab7cfd67f461c2 (patch) | |
tree | 20de3e97ddfb80ee9542f6d7898caa6f694fa5eb /main/State.hs | |
parent | 92fac6d75f0600f628ef459105385c0cf3f21e40 (diff) |
Keep weak reference to previous local state
Diffstat (limited to 'main/State.hs')
-rw-r--r-- | main/State.hs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/main/State.hs b/main/State.hs index 76441df..d357844 100644 --- a/main/State.hs +++ b/main/State.hs @@ -44,14 +44,15 @@ loadLocalStateHead term st = loadHeads st >>= \case , ssValue = [ storedRef $ idExtData $ fromMaybe identity owner ] } storeHead st $ LocalState - { lsIdentity = idExtData identity + { lsPrev = Nothing + , lsIdentity = idExtData identity , lsShared = [ shared ] , lsOther = [] } updateSharedIdentity :: (MonadHead LocalState m, MonadError e m, FromErebosError e) => Terminal -> m () -updateSharedIdentity term = updateLocalHead_ $ updateSharedState_ $ \case +updateSharedIdentity term = updateLocalState_ $ updateSharedState_ $ \case Just identity -> do Just . toComposedIdentity <$> interactiveIdentityUpdate term identity Nothing -> throwOtherError "no existing shared identity" |