diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/JavaScript.hs | 8 | ||||
| -rw-r--r-- | src/Main.hs | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/JavaScript.hs b/src/JavaScript.hs index 6c07370..aaf3747 100644 --- a/src/JavaScript.hs +++ b/src/JavaScript.hs @@ -6,6 +6,8 @@ module JavaScript ( toJSVal, consoleLog, consoleLogVal, + + historyPushState, ) where import JavaScript.Element @@ -21,3 +23,9 @@ foreign import javascript unsafe "console.log($1)" foreign import javascript unsafe "console.log($1)" consoleLogVal :: JSVal -> IO () + + +historyPushState :: String -> IO () +historyPushState = js_history_pushState . toJSString +foreign import javascript unsafe "history.pushState(null, '', $1)" + js_history_pushState :: JSString -> IO () diff --git a/src/Main.hs b/src/Main.hs index a2f4a44..8a33793 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -408,7 +408,6 @@ processUrlParams gs@GlobalState {..} server = do runExceptT (discoverySearch server from) >>= \case Right () -> return () Left err -> JS.consoleLog $ "Failed to search for " <> show from <> ": " <> showErebosError err - js_history_pushState (toJSString " ") | Just Nothing <- lookup "account" params -> do @@ -673,6 +672,7 @@ watchPeers gs@GlobalState {..} server htmlList = do Just h <- reloadHead globalHead (either (fail . showErebosError) return =<<) $ runExceptT $ flip runReaderT h $ do acceptInvite dgst token + historyPushState ("#conv=" <> drop 7 (show dgst)) selectConversation gs =<< runReaderT (directMessageConversation $ finalOwner pidf) globalHead _ -> return () @@ -778,9 +778,6 @@ foreign import javascript unsafe "window.location.origin" foreign import javascript unsafe "window.location.pathname" js_get_location_pathname :: IO JSString -foreign import javascript unsafe "history.pushState(null, '', $1)" - js_history_pushState :: JSString -> IO () - foreign import javascript unsafe "navigator.clipboard.writeText($1)" js_navigator_clipboard_writeText :: JSString -> IO () |