mirror of https://github.com/zulip/zulip.git
hash_parser: Add utility function to dynamically detect hash.
Added new utility function to hash_parser to dynamically detect the hash category of an URL. This is intended to reduce the need of adding more adhoc hash_parser utility functions.
This commit is contained in:
parent
6ca52628ad
commit
d882d90857
|
@ -111,6 +111,11 @@ export function is_subscribers_section_opened_for_stream(): boolean {
|
||||||
return hash_components[3] === "subscribers";
|
return hash_components[3] === "subscribers";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function is_in_specified_hash_category(hash_categories: string[]): boolean {
|
||||||
|
const main_hash = get_hash_category(window.location.hash);
|
||||||
|
return hash_categories.includes(main_hash);
|
||||||
|
}
|
||||||
|
|
||||||
export const allowed_web_public_narrows = [
|
export const allowed_web_public_narrows = [
|
||||||
"channels",
|
"channels",
|
||||||
"channel",
|
"channel",
|
||||||
|
|
|
@ -178,6 +178,26 @@ run_test("test_is_subscribers_section_opened_for_stream", () => {
|
||||||
assert.equal(hash_parser.is_subscribers_section_opened_for_stream(), false);
|
assert.equal(hash_parser.is_subscribers_section_opened_for_stream(), false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
run_test("test_is_in_specified_hash_category", () => {
|
||||||
|
window.location.hash = "#channels/1/Design/subscribers";
|
||||||
|
assert.equal(hash_parser.is_in_specified_hash_category(["channels", "channel"]), true);
|
||||||
|
|
||||||
|
window.location.hash = "#channels/99/.EC.A1.B0.EB.A6.AC.EB.B2.95.20.F0.9F.98.8E/subscribers";
|
||||||
|
assert.equal(hash_parser.is_in_specified_hash_category(["channels", "channel"]), true);
|
||||||
|
|
||||||
|
window.location.hash = "#gro/channels/channel";
|
||||||
|
assert.equal(hash_parser.is_in_specified_hash_category(["stream", "channel", "group"]), false);
|
||||||
|
|
||||||
|
window.location.hash = "#some/stream/channel/group";
|
||||||
|
assert.equal(hash_parser.is_in_specified_hash_category(["stream", "channel", "group"]), false);
|
||||||
|
|
||||||
|
window.location.hash = "#some/stream/channel/group";
|
||||||
|
assert.equal(hash_parser.is_in_specified_hash_category([""]), false);
|
||||||
|
|
||||||
|
window.location.hash = "#some/stream/channel/group";
|
||||||
|
assert.equal(hash_parser.is_in_specified_hash_category([]), false);
|
||||||
|
});
|
||||||
|
|
||||||
run_test("test_parse_narrow", () => {
|
run_test("test_parse_narrow", () => {
|
||||||
assert.deepEqual(hash_util.parse_narrow(["narrow", "stream", "99-frontend"]), [
|
assert.deepEqual(hash_util.parse_narrow(["narrow", "stream", "99-frontend"]), [
|
||||||
{negated: false, operator: "stream", operand: "frontend"},
|
{negated: false, operator: "stream", operand: "frontend"},
|
||||||
|
|
Loading…
Reference in New Issue