diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-07-19 21:03:54 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-07-19 21:03:54 +0200 |
commit | 46c3c635e3dc01bee96e716f23f9ed04cc9591ff (patch) | |
tree | 9b74e449cf623e4630ab9b0d49c7c47e1f1366c4 /src/Main.hs | |
parent | e2575d71622b918387a6d415b2ee20f1bcfd8334 (diff) |
Update displayed name only when identity changes
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/Main.hs b/src/Main.hs index 563f3af..75abd05 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -95,13 +95,7 @@ setup = do gs@GlobalState {..} <- initGlobalState - - nameElem <- js_document_getElementById (toJSString "name_text") - selfRefElem <- js_document_getElementById (toJSString "self_ref_value") - _ <- watchHead globalHead $ \ls -> do - let fowner = finalOwner $ headLocalIdentity ls - js_set_textContent nameElem $ toJSString $ maybe "(Anonymous)" T.unpack $ idName fowner - js_set_textContent selfRefElem $ toJSString $ maybe "" (show . refDigest . storedRef) $ listToMaybe $ idDataF fowner + watchIdentityUpdates gs let devName = T.pack "WebApp" let st = globalStorage @@ -181,6 +175,15 @@ setup = do Left err -> JS.consoleLog $ "Failed to send message: " <> showErebosError err +watchIdentityUpdates :: GlobalState -> IO () +watchIdentityUpdates GlobalState {..} = do + nameElem <- js_document_getElementById (toJSString "name_text") + selfRefElem <- js_document_getElementById (toJSString "self_ref_value") + void $ watchHeadWith globalHead headLocalIdentity $ \lid -> do + let fowner = finalOwner lid + js_set_textContent nameElem $ toJSString $ maybe "(Anonymous)" T.unpack $ idName fowner + js_set_textContent selfRefElem $ toJSString $ maybe "" (show . refDigest . storedRef) $ listToMaybe $ idDataF fowner + updateSharedIdentity :: (MonadHead LocalState m, MonadError e m, FromErebosError e) => Text -> m () updateSharedIdentity name = updateLocalState_ $ updateSharedState_ $ \case Just identity -> do |