129 lines
No EOL
4 KiB
HTML
129 lines
No EOL
4 KiB
HTML
<!doctype html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta name="generator" content="JSDoc 3.6.11">
|
|
<meta charset="utf-8">
|
|
<title>whatsapp-web.js 1.33.0 » Source: structures/PollVote.js</title>
|
|
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Karla:400,400i,700,700i" type="text/css">
|
|
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Noto+Serif:400,400i,700,700i" type="text/css">
|
|
<link rel="stylesheet" href="https://brick.a.ssl.fastly.net/Inconsolata:500" type="text/css">
|
|
<link href="css/baseline.css" rel="stylesheet">
|
|
</head>
|
|
|
|
<body onload="prettyPrint()">
|
|
<nav id="jsdoc-navbar" role="navigation" class="jsdoc-navbar">
|
|
<div id="jsdoc-navbar-container">
|
|
<div id="jsdoc-navbar-content">
|
|
<a href="index.html" class="jsdoc-navbar-package-name">whatsapp-web.<wbr>js 1.<wbr>33.<wbr>0</a>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<div id="jsdoc-body-container">
|
|
<div id="jsdoc-content">
|
|
<div id="jsdoc-content-container">
|
|
<div id="jsdoc-banner" role="banner">
|
|
</div>
|
|
<div id="jsdoc-main" role="main">
|
|
<header class="page-header">
|
|
<h1>Source: structures/PollVote.js</h1>
|
|
</header>
|
|
<article>
|
|
<pre class="prettyprint linenums"><code>'use strict';
|
|
|
|
const Message = require('./Message');
|
|
const Base = require('./Base');
|
|
|
|
/**
|
|
* Selected poll option structure
|
|
* @typedef {Object} SelectedPollOption
|
|
* @property {number} id The local selected or deselected option ID
|
|
* @property {string} name The option name
|
|
*/
|
|
|
|
/**
|
|
* Represents a Poll Vote on WhatsApp
|
|
* @extends {Base}
|
|
*/
|
|
class PollVote extends Base {
|
|
constructor(client, data) {
|
|
super(client);
|
|
|
|
if (data) this._patch(data);
|
|
}
|
|
|
|
_patch(data) {
|
|
/**
|
|
* The person who voted
|
|
* @type {string}
|
|
*/
|
|
this.voter = data.sender;
|
|
|
|
/**
|
|
* The selected poll option(s)
|
|
* If it's an empty array, the user hasn't selected any options on the poll,
|
|
* may occur when they deselected all poll options
|
|
* @type {SelectedPollOption[]}
|
|
*/
|
|
if (data.selectedOptionLocalIds.length > 0) {
|
|
if(data.parentMessage) { // temporary failsafe
|
|
this.selectedOptions = data.selectedOptionLocalIds.map((e) => ({
|
|
name: data.parentMessage.pollOptions.find((x) => x.localId === e).name,
|
|
localId: e
|
|
}));
|
|
} else {
|
|
this.selectedOptions = data.selectedOptionLocalIds.map((e) => ({
|
|
name: undefined,
|
|
localId: e
|
|
}));
|
|
}
|
|
} else {
|
|
this.selectedOptions = [];
|
|
}
|
|
|
|
/**
|
|
* Timestamp the option was selected or deselected at
|
|
* @type {number}
|
|
*/
|
|
this.interractedAtTs = data.senderTimestampMs;
|
|
|
|
/**
|
|
* The poll creation message associated with the poll vote
|
|
* @type {Message}
|
|
*/
|
|
this.parentMessage = new Message(this.client, data.parentMessage);
|
|
|
|
/**
|
|
* The poll creation message id
|
|
* @type {Object}
|
|
*/
|
|
this.parentMsgKey = data.parentMsgKey;
|
|
|
|
return super._patch(data);
|
|
}
|
|
}
|
|
|
|
module.exports = PollVote;
|
|
</code></pre>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
<nav id="jsdoc-toc-nav" role="navigation"></nav>
|
|
</div>
|
|
</div>
|
|
<footer id="jsdoc-footer" class="jsdoc-footer">
|
|
<div id="jsdoc-footer-container">
|
|
<p>
|
|
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc</a> 3.6.11 on August 28, 2025.
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
<script src="scripts/jquery.min.js"></script>
|
|
<script src="scripts/tree.jquery.js"></script>
|
|
<script src="scripts/prettify.js"></script>
|
|
<script src="scripts/jsdoc-toc.js"></script>
|
|
<script src="scripts/linenumber.js"></script>
|
|
<script src="scripts/scrollanchor.js"></script>
|
|
</body>
|
|
|
|
</html> |