mirror of
https://github.com/cheveguerra/whatsapp-web.js.git
synced 2026-04-20 04:29:15 +00:00
feat: Interface controls (#220)
- Open chat drawer - Open chat window - Open message info drawer - Close drawer
This commit is contained in:
@@ -6,6 +6,7 @@ const moduleRaid = require('@pedroslopez/moduleraid/moduleraid');
|
|||||||
const jsQR = require('jsqr');
|
const jsQR = require('jsqr');
|
||||||
|
|
||||||
const Util = require('./util/Util');
|
const Util = require('./util/Util');
|
||||||
|
const InterfaceController = require('./util/InterfaceController');
|
||||||
const { WhatsWebURL, UserAgent, DefaultOptions, Events, WAState } = require('./util/Constants');
|
const { WhatsWebURL, UserAgent, DefaultOptions, Events, WAState } = require('./util/Constants');
|
||||||
const { ExposeStore, LoadUtils } = require('./util/Injected');
|
const { ExposeStore, LoadUtils } = require('./util/Injected');
|
||||||
const ChatFactory = require('./factories/ChatFactory');
|
const ChatFactory = require('./factories/ChatFactory');
|
||||||
@@ -157,6 +158,9 @@ class Client extends EventEmitter {
|
|||||||
return window.Store.Conn.serialize();
|
return window.Store.Conn.serialize();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
// Add InterfaceController
|
||||||
|
this.interface = new InterfaceController(this);
|
||||||
|
|
||||||
// Register events
|
// Register events
|
||||||
await page.exposeFunction('onAddMessageEvent', msg => {
|
await page.exposeFunction('onAddMessageEvent', msg => {
|
||||||
if (!msg.isNewMsg) return;
|
if (!msg.isNewMsg) return;
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ class Chat extends Base {
|
|||||||
return true;
|
return true;
|
||||||
}, this.id._serialized);
|
}, this.id._serialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stops typing or recording in chat immediately.
|
* Stops typing or recording in chat immediately.
|
||||||
*/
|
*/
|
||||||
|
|||||||
56
src/util/InterfaceController.js
Normal file
56
src/util/InterfaceController.js
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface Controller
|
||||||
|
*/
|
||||||
|
class InterfaceController {
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
this.pupPage = props.pupPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens the Chat Window
|
||||||
|
* @param {string} chatId ID of the chat window that will be opened
|
||||||
|
*/
|
||||||
|
async openChatWindow(chatId) {
|
||||||
|
await this.pupPage.evaluate(async chatId => {
|
||||||
|
let chat = await window.Store.Chat.get(chatId);
|
||||||
|
await window.Store.Cmd.openChatAt(chat);
|
||||||
|
}, chatId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens the Chat Drawer
|
||||||
|
* @param {string} chatId ID of the chat drawer that will be opened
|
||||||
|
*/
|
||||||
|
async openChatDrawer(chatId) {
|
||||||
|
await this.pupPage.evaluate(async chatId => {
|
||||||
|
let chat = await window.Store.Chat.get(chatId);
|
||||||
|
await window.Store.Cmd.chatInfoDrawer(chat);
|
||||||
|
}, chatId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens the Message Drawer
|
||||||
|
* @param {string} msgId ID of the message drawer that will be opened
|
||||||
|
*/
|
||||||
|
async openMessageDrawer(msgId) {
|
||||||
|
await this.pupPage.evaluate(async msgId => {
|
||||||
|
let msg = await window.Store.Msg.get(msgId);
|
||||||
|
await window.Store.Cmd.msgInfoDrawer(msg);
|
||||||
|
}, msgId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Closes the Right Drawer
|
||||||
|
*/
|
||||||
|
async closeRightDrawer() {
|
||||||
|
await this.pupPage.evaluate(async () => {
|
||||||
|
await window.Store.Cmd.closeDrawerRight();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = InterfaceController;
|
||||||
Reference in New Issue
Block a user