from frappe âchatâ module i need to override some js fuctions in my custom app.
For example override the below class fuction:
import { create_private_room } from â./chat_utilsâ;
export default class ChatAddRoom {
constructor(opts) {
this.user = opts.user;
this.users_list = [âŚfrappe.user.get_emails(), âAdministratorâ];
this.user_email = opts.user_email;
this.users_list = this.users_list.filter(function (user) {
return user != opts.user_email;
});
this.setup();
}
async setup() {
this.add_room_dialog = new frappe.ui.Dialog({
title: __(âJobtemp Chat Roomâ),
fields: [
{
label: __(âRoom Typeâ),
fieldname: âtypeâ,
fieldtype: âSelectâ,
options: [âGroupâ, âDirectâ],
default: âGroupâ,
onchange: () => {
const type = this.add_room_dialog.get_value(âtypeâ);
const is_group = type === âGroupâ;
this.add_room_dialog.set_df_property(âroom_nameâ, âreqdâ, is_group);
this.add_room_dialog.set_df_property(âusersâ, âreqdâ, is_group);
this.add_room_dialog.set_df_property(âuserâ, âreqdâ, !is_group);
},
reqd: true,
},
{
label: __(âRoom Nameâ),
fieldname: âroom_nameâ,
fieldtype: âDataâ,
depends_on: âeval:doc.type == âGroupââ,
reqd: true,
},
{
label: __(âUsersâ),
fieldname: âusersâ,
fieldtype: âMultiSelectPillsâ,
options: this.users_list,
depends_on: âeval:doc.type == âGroupââ,
reqd: true,
},
{
label: __(âUserâ),
fieldname: âuserâ,
fieldtype: âLinkâ,
options: âUserâ,
depends_on: âeval:doc.type == âDirectââ,
},
],
action: {
primary: {
label: __(âCreateâ),
onsubmit: (values) => {
let users = this.add_room_dialog.fields_dict.users.get_values();
let room_name = values.room_name;
if (values.type === âDirectâ) {
users = [values.user];
room_name = âDirect Roomâ;
}
this.handle_room_creation(room_name, users, values.type);
this.add_room_dialog.hide();
},
},
},
});
}
show() {
this.add_room_dialog.show();
}
async handle_room_creation(room_name, users, type) {
try {
await create_private_room(room_name, users, type);
this.add_room_dialog.clear();
} catch (error) {
//pass
}
}
}
located at: /home/xadmin/frappe-bench/apps/chat/chat/public/js/components/chat_add_room.js
I made too many attempts but not able to do. Immediate response would be appreciated!