mirror of https://github.com/zulip/zulip.git
stream_create_subscribers: Convert module to TypeScript.
This commit is contained in:
parent
f4c111b68a
commit
78f105475a
|
@ -232,7 +232,7 @@ EXEMPT_FILES = make_set(
|
||||||
"web/src/stream_color.ts",
|
"web/src/stream_color.ts",
|
||||||
"web/src/stream_color_events.ts",
|
"web/src/stream_color_events.ts",
|
||||||
"web/src/stream_create.js",
|
"web/src/stream_create.js",
|
||||||
"web/src/stream_create_subscribers.js",
|
"web/src/stream_create_subscribers.ts",
|
||||||
"web/src/stream_edit.js",
|
"web/src/stream_edit.js",
|
||||||
"web/src/stream_edit_subscribers.js",
|
"web/src/stream_edit_subscribers.js",
|
||||||
"web/src/stream_edit_toggler.ts",
|
"web/src/stream_edit_toggler.ts",
|
||||||
|
|
|
@ -22,6 +22,7 @@ async function await_user_hidden(page: Page, name: string): Promise<void> {
|
||||||
|
|
||||||
async function add_user_to_stream(page: Page, name: string): Promise<void> {
|
async function add_user_to_stream(page: Page, name: string): Promise<void> {
|
||||||
const user_id = await common.get_user_id_from_name(page, name);
|
const user_id = await common.get_user_id_from_name(page, name);
|
||||||
|
assert(user_id !== undefined);
|
||||||
await page.evaluate((user_id) => {
|
await page.evaluate((user_id) => {
|
||||||
zulip_test.add_user_id_to_new_stream(user_id);
|
zulip_test.add_user_id_to_new_stream(user_id);
|
||||||
}, user_id);
|
}, user_id);
|
||||||
|
|
|
@ -4,46 +4,49 @@ import render_new_stream_user from "../templates/stream_settings/new_stream_user
|
||||||
import render_new_stream_users from "../templates/stream_settings/new_stream_users.hbs";
|
import render_new_stream_users from "../templates/stream_settings/new_stream_users.hbs";
|
||||||
|
|
||||||
import * as add_subscribers_pill from "./add_subscribers_pill";
|
import * as add_subscribers_pill from "./add_subscribers_pill";
|
||||||
|
import type {InputPillContainer} from "./input_pill";
|
||||||
import * as ListWidget from "./list_widget";
|
import * as ListWidget from "./list_widget";
|
||||||
|
import type {ListWidget as ListWidgetType} from "./list_widget";
|
||||||
import * as people from "./people";
|
import * as people from "./people";
|
||||||
import {current_user} from "./state_data";
|
import {current_user} from "./state_data";
|
||||||
import * as stream_create_subscribers_data from "./stream_create_subscribers_data";
|
import * as stream_create_subscribers_data from "./stream_create_subscribers_data";
|
||||||
|
import type {CombinedPillItem} from "./typeahead_helper";
|
||||||
import * as user_sort from "./user_sort";
|
import * as user_sort from "./user_sort";
|
||||||
|
|
||||||
let pill_widget;
|
let pill_widget: InputPillContainer<CombinedPillItem>;
|
||||||
let all_users_list_widget;
|
let all_users_list_widget: ListWidgetType<number, people.User>;
|
||||||
|
|
||||||
export function get_principals() {
|
export function get_principals(): number[] {
|
||||||
return stream_create_subscribers_data.get_principals();
|
return stream_create_subscribers_data.get_principals();
|
||||||
}
|
}
|
||||||
|
|
||||||
function redraw_subscriber_list() {
|
function redraw_subscriber_list(): void {
|
||||||
all_users_list_widget.replace_list_data(stream_create_subscribers_data.sorted_user_ids());
|
all_users_list_widget.replace_list_data(stream_create_subscribers_data.sorted_user_ids());
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_user_ids(user_ids) {
|
function add_user_ids(user_ids: number[]): void {
|
||||||
stream_create_subscribers_data.add_user_ids(user_ids);
|
stream_create_subscribers_data.add_user_ids(user_ids);
|
||||||
redraw_subscriber_list();
|
redraw_subscriber_list();
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_all_users() {
|
function add_all_users(): void {
|
||||||
const user_ids = stream_create_subscribers_data.get_all_user_ids();
|
const user_ids = stream_create_subscribers_data.get_all_user_ids();
|
||||||
add_user_ids(user_ids);
|
add_user_ids(user_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
function remove_user_ids(user_ids) {
|
function remove_user_ids(user_ids: number[]): void {
|
||||||
stream_create_subscribers_data.remove_user_ids(user_ids);
|
stream_create_subscribers_data.remove_user_ids(user_ids);
|
||||||
redraw_subscriber_list();
|
redraw_subscriber_list();
|
||||||
}
|
}
|
||||||
|
|
||||||
function build_pill_widget({$parent_container}) {
|
function build_pill_widget({$parent_container}: {$parent_container: JQuery}): void {
|
||||||
const $pill_container = $parent_container.find(".pill-container");
|
const $pill_container = $parent_container.find(".pill-container");
|
||||||
const get_potential_subscribers = stream_create_subscribers_data.get_potential_subscribers;
|
const get_potential_subscribers = stream_create_subscribers_data.get_potential_subscribers;
|
||||||
|
|
||||||
pill_widget = add_subscribers_pill.create({$pill_container, get_potential_subscribers});
|
pill_widget = add_subscribers_pill.create({$pill_container, get_potential_subscribers});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function create_handlers($container) {
|
export function create_handlers($container: JQuery): void {
|
||||||
$container.on("click", ".add_all_users_to_stream", (e) => {
|
$container.on("click", ".add_all_users_to_stream", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
add_all_users();
|
add_all_users();
|
||||||
|
@ -53,12 +56,12 @@ export function create_handlers($container) {
|
||||||
$container.on("click", ".remove_potential_subscriber", (e) => {
|
$container.on("click", ".remove_potential_subscriber", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const $elem = $(e.target);
|
const $elem = $(e.target);
|
||||||
const user_id = Number.parseInt($elem.attr("data-user-id"), 10);
|
const user_id = Number.parseInt($elem.attr("data-user-id")!, 10);
|
||||||
remove_user_ids([user_id]);
|
remove_user_ids([user_id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
const button_selector = ".add_subscribers_container button.add-subscriber-button";
|
const button_selector = ".add_subscribers_container button.add-subscriber-button";
|
||||||
function add_users({pill_user_ids}) {
|
function add_users({pill_user_ids}: {pill_user_ids: number[]}): void {
|
||||||
add_user_ids(pill_user_ids);
|
add_user_ids(pill_user_ids);
|
||||||
// eslint-disable-next-line unicorn/no-array-callback-reference
|
// eslint-disable-next-line unicorn/no-array-callback-reference
|
||||||
const $pill_widget_button = $container.find(button_selector);
|
const $pill_widget_button = $container.find(button_selector);
|
||||||
|
@ -75,7 +78,7 @@ export function create_handlers($container) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function build_widgets() {
|
export function build_widgets(): void {
|
||||||
const $add_people_container = $("#people_to_add");
|
const $add_people_container = $("#people_to_add");
|
||||||
$add_people_container.html(render_new_stream_users({}));
|
$add_people_container.html(render_new_stream_users({}));
|
||||||
|
|
||||||
|
@ -119,7 +122,7 @@ export function build_widgets() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function add_user_id_to_new_stream(user_id) {
|
export function add_user_id_to_new_stream(user_id: number): void {
|
||||||
// This is only used by puppeteer tests.
|
// This is only used by puppeteer tests.
|
||||||
add_user_ids([user_id]);
|
add_user_ids([user_id]);
|
||||||
}
|
}
|
|
@ -14,5 +14,4 @@ export {page_params, page_params_parse_time} from "./base_page_params";
|
||||||
export {initiate as initiate_reload} from "./reload";
|
export {initiate as initiate_reload} from "./reload";
|
||||||
export {page_load_time} from "./setup";
|
export {page_load_time} from "./setup";
|
||||||
export {current_user, realm} from "./state_data";
|
export {current_user, realm} from "./state_data";
|
||||||
// @ts-expect-error We haven't converted stream_create_subscribers.js yet
|
|
||||||
export {add_user_id_to_new_stream} from "./stream_create_subscribers";
|
export {add_user_id_to_new_stream} from "./stream_create_subscribers";
|
||||||
|
|
Loading…
Reference in New Issue