refactor: Extract browser_history module.

This mainly extracts a new module called
browser_history. It has much fewer dependencies
than hashchange.js, so any modules that just
need the smaller API from browser_history now
have fewer transitive dependencies.

Here are some details:
    * Move is_overlay_hash to hash_util.
    * Rename hashchange.update_browser_history to
      brower_history.update
    * Move go_to_location verbatim.
    * Remove unused argument for exit_overlay.
    * Introduce helper functions:
        * old_hash()
        * set_hash_before_overlay()
        * save_old_hash()

We now have 100% line coverage on the extracted
code.
This commit is contained in:
Steve Howell
2021-03-22 15:09:12 +00:00
committed by Tim Abbott
parent 67a487db79
commit 746cc9e1f6
23 changed files with 194 additions and 126 deletions

View File

@@ -1,7 +1,7 @@
import $ from "jquery";
import * as blueslip from "./blueslip";
import * as hashchange from "./hashchange";
import * as browser_history from "./browser_history";
import * as popovers from "./popovers";
let active_overlay;
@@ -224,7 +224,7 @@ export function open_settings() {
name: "settings",
overlay: $("#settings_overlay_container"),
on_close() {
hashchange.exit_overlay();
browser_history.exit_overlay();
},
});
}