mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Add support for creation of user groups using right panel of new user group settings overlay being developed as part of https://github.com/zulip/zulip/issues/19526. In further commits we will add support for editing user groups using right panel of the overlay. This commit also introduces a minor bug related hashchange for #groups which would be a quick fix once we have UI for group edit on #groups overlay.
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import {page_params} from "./page_params";
 | 
						|
import * as people from "./people";
 | 
						|
 | 
						|
let user_id_set;
 | 
						|
 | 
						|
export function initialize_with_current_user() {
 | 
						|
    const current_user_id = page_params.user_id;
 | 
						|
    user_id_set = new Set();
 | 
						|
    user_id_set.add(current_user_id);
 | 
						|
}
 | 
						|
 | 
						|
export function sorted_user_ids() {
 | 
						|
    const users = people.get_users_from_ids(Array.from(user_id_set));
 | 
						|
    people.sort_but_pin_current_user_on_top(users);
 | 
						|
    return users.map((user) => user.user_id);
 | 
						|
}
 | 
						|
 | 
						|
export function get_all_user_ids() {
 | 
						|
    const potential_members = people.get_realm_users();
 | 
						|
    const user_ids = potential_members.map((user) => user.user_id);
 | 
						|
    // sort for determinism
 | 
						|
    user_ids.sort((a, b) => a - b);
 | 
						|
    return user_ids;
 | 
						|
}
 | 
						|
 | 
						|
export function get_principals() {
 | 
						|
    // Return list of user ids which were selected by user.
 | 
						|
    return Array.from(user_id_set);
 | 
						|
}
 | 
						|
 | 
						|
export function get_potential_members() {
 | 
						|
    const potential_members = people.get_realm_users();
 | 
						|
    return potential_members.filter((user) => !user_id_set.has(user.user_id));
 | 
						|
}
 | 
						|
 | 
						|
export function add_user_ids(user_ids) {
 | 
						|
    for (const user_id of user_ids) {
 | 
						|
        if (!user_id_set.has(user_id)) {
 | 
						|
            const user = people.get_by_user_id(user_id);
 | 
						|
            if (user) {
 | 
						|
                user_id_set.add(user_id);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
export function remove_user_ids(user_ids) {
 | 
						|
    for (const user_id of user_ids) {
 | 
						|
        user_id_set.delete(user_id);
 | 
						|
    }
 | 
						|
}
 |