summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-03-29 17:30:50 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-03-29 17:33:49 +0200
commit2b399a78c86ead0afb35b9dedab6b11255881488 (patch)
treeba6e7ebf06541d6756beeda4bc89974a48ebbdd2
parent4c1306785505ffdfaad20d4004c5dd1e4d7f5de4 (diff)
Focus message input when selecting conversation
-rw-r--r--src/Main.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Main.hs b/src/Main.hs
index 7965516..bad0ec1 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -312,6 +312,7 @@ setup = do
Nothing -> return ()
JS.addEventListener sendForm "submit" $ \_ -> do
+ js_focus sendText
readMVar currentContextVar >>= \case
SelectedConversation conv -> do
msg <- T.pack . fromJSString <$> js_get_value sendText
@@ -538,6 +539,8 @@ selectConversation gs@GlobalState {..} conv = do
js_setAttribute body (toJSString "data-selected") (toJSString "conversation")
Nothing -> return ()
+ mapM_ js_focus =<< JS.getElementById "msg_text"
+
return $ SelectedConversation conv
selectPeer :: GlobalState -> Server -> RefDigest -> IO ()
@@ -731,6 +734,9 @@ foreign import javascript unsafe "$1.value"
foreign import javascript unsafe "$1.value = $2"
js_set_value :: JSVal -> JSString -> IO ()
+foreign import javascript unsafe "$1.focus()"
+ js_focus :: JSVal -> IO ()
+
foreign import javascript unsafe "window"
js_window :: JSVal