461 lines
19 KiB
TypeScript
461 lines
19 KiB
TypeScript
/* Metro module 7149; source: modules/polls/PollsUtils.tsx; dependencies: [1379, 7150, 4814, 3784, 3793, 7217, 661, 491, 566, 5225, 672, 1862, 4634, 1244, 7152, 22, 4617, 2] */
|
|
function _fun57179(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#57179, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:6, offset: 0x013de7bf, size: 490 bytes, params: 8, frame: 24
|
|
let env0_0 = require;
|
|
const _arrayLikeToArray_57182 = function(a0, a1) {
|
|
var r0;
|
|
var r1;
|
|
var r2;
|
|
var value3;
|
|
var length;
|
|
var value5;
|
|
var value = undefined;
|
|
var value2 = value == null;
|
|
reducibleJoin2: while (true) {
|
|
if (value2) {
|
|
r0 = value2;
|
|
break reducibleJoin2;
|
|
}
|
|
value3 = value > a0.length;
|
|
r0 = value3;
|
|
break reducibleJoin2;
|
|
}
|
|
reducibleJoin4: while (true) {
|
|
if (r0) {
|
|
length = a0.length;
|
|
r1 = length;
|
|
break reducibleJoin4;
|
|
}
|
|
r1 = value;
|
|
break reducibleJoin4;
|
|
}
|
|
value = (0, global.Array)(r1);
|
|
var value4 = 0;
|
|
if (value4 < r1) {
|
|
r2 = value4;
|
|
reducibleLoop5: while (true) {
|
|
value[r2] = a0[r2];
|
|
value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1;
|
|
if (value5 < r1) {
|
|
r2 = value5;
|
|
continue reducibleLoop5;
|
|
}
|
|
break reducibleLoop5;
|
|
}
|
|
}
|
|
return value;
|
|
};
|
|
const closure = generateLocalCreationAnswerId;
|
|
const closure2 = function({text}) {
|
|
var r1;
|
|
r1 = text?.trim();
|
|
return r1 != null && r1.length > 0;
|
|
};
|
|
const closure3 = function(a0) {
|
|
var Date = global.Date;
|
|
var Date2 = global.Date;
|
|
var value = Date2.now();
|
|
var HOUR = importDefault(dependencyMap[10]).Millis.HOUR;
|
|
value += a0 * HOUR;
|
|
value = new Date(value);
|
|
return value.toISOString();
|
|
};
|
|
const closure4 = getSampleOfVoterUsernamesForAnswer;
|
|
const closure5 = formatVoterTooltipText;
|
|
const Object = global.Object;
|
|
Object.defineProperty(exports, '__esModule', {value: true});
|
|
const channelStore = importDefault(1379) /* metro dependency 1379: ChannelStore */;
|
|
const messageReactionsStore = importDefault(7150) /* metro dependency 7150: MessageReactionsStore */;
|
|
const messageStore = importDefault(4814) /* metro dependency 4814: MessageStore */;
|
|
const permissionStore = importDefault(3784) /* metro dependency 3784: PermissionStore */;
|
|
const relationshipStore = importDefault(3793) /* metro dependency 3793: RelationshipStore */;
|
|
let value = require(7217) /* metro dependency 7217: PollsConstants */;
|
|
const env0_8 = value.POLL_RESULT_MESSAGE_POLL_TITLE_MAX_VISIBLE_CHARS;
|
|
const env0_9 = value.VOTES_TOOLTIP_MAX_USERS;
|
|
value = require(661) /* metro dependency 661: Constants */;
|
|
const env0_10 = value.ChannelTypesSets;
|
|
const env0_11 = value.Permissions;
|
|
(require(2) /* metro dependency 2 */).fileFinishedImporting('modules/polls/PollsUtils.tsx');
|
|
exports.generateEmptyPollAnswer = function() {
|
|
var object = {text: undefined, image: undefined};
|
|
object.localCreationAnswerId = generateLocalCreationAnswerId();
|
|
return object;
|
|
};
|
|
exports.generateLocalCreationAnswerId = closure;
|
|
exports.filterOutUUID = function(a0) {
|
|
return a0.replace(RegExp('\\b[a-f\\d]{8}-(?:[a-f\\d]{4}-){3}[a-f\\d]{12}-\\b', 'i'), '');
|
|
};
|
|
exports.hasNonVoteReactions = hasNonVoteReactions;
|
|
exports.useCanPostPollsInChannel = function(a0) {
|
|
var env0_0 = a0;
|
|
return require(dependencyMap[8]).useStateFromStores([PermissionStore], _fun57196);
|
|
};
|
|
exports.isPollCreationEmpty = function(a0, a1) {
|
|
var r0;
|
|
var value = a0.length === 0;
|
|
if (value) {
|
|
value = a1.find(_fun57198);
|
|
value = value == null;
|
|
r0 = value;
|
|
} else {
|
|
r0 = value;
|
|
}
|
|
return r0;
|
|
};
|
|
exports.isAnswerFilled = closure2;
|
|
exports.isIncompleteAnswer = function(a0) {
|
|
var r2;
|
|
r2 = a0.text?.trim();
|
|
return a0.image != null && (r2 == null || r2.length === 0);
|
|
};
|
|
exports.createPollExpiryTimestamp = closure3;
|
|
exports.createPollServerDataFromCreateRequest = createPollServerDataFromCreateRequest;
|
|
exports.getPollReplyPreview = function({poll}) {
|
|
return (poll == null || poll.question == null ? undefined : poll.question.text) ?? '';
|
|
};
|
|
exports.getPollResultsReplyPreview = getPollResultsReplyPreview;
|
|
exports.getPollResultsReplyPreviewMobile = getPollResultsReplyPreviewMobile;
|
|
exports.getTotalVotes = function(a0) {
|
|
return a0.reduce(_fun57206, 0);
|
|
};
|
|
exports.getSampleOfVoterUsernamesForAnswer = closure4;
|
|
exports.formatVoterTooltipText = closure5;
|
|
exports.getPollAnswerVotesTooltipText = getPollAnswerVotesTooltipText;
|
|
exports.formatPollResultNotificationCenterText = formatPollResultNotificationCenterText;
|
|
}
|
|
|
|
function _createForOfIteratorHelperLoose_57180(a0, a1) { // fn#57180, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:290, offset: 0x013de9a9, size: 370 bytes, params: 3, frame: 20
|
|
var r6;
|
|
var r9;
|
|
var r5;
|
|
var value3;
|
|
var regexp;
|
|
const env0_0 = a0;
|
|
const Symbol = global.Symbol;
|
|
let value = typeof Symbol !== 'undefined';
|
|
let r1 = value && a0[global.Symbol.iterator];
|
|
r1 = !r1 ? a0['@@iterator'] : r1;
|
|
if (r1) {
|
|
value = r1.call(a0);
|
|
return value.next.bind(value);
|
|
}
|
|
const Array = global.Array;
|
|
if (Array.isArray(a0)) {
|
|
if (r1) {
|
|
}
|
|
return _fun57181;
|
|
}
|
|
value = undefined;
|
|
if (a0) {
|
|
if (typeof a0 === 'string') {
|
|
value = _arrayLikeToArray_57182(a0, value);
|
|
r5 = value;
|
|
} else {
|
|
value3 = ({}).toString.call(a0).slice(8, -1);
|
|
r6 = value3 === 'Object' && a0.constructor;
|
|
r9 = r6 ? a0.constructor.name : value3;
|
|
if (r9 === 'Map') {
|
|
r6 = global.Array.from(a0);
|
|
} else if (r9 === 'Set') {
|
|
r6 = global.Array.from(a0);
|
|
} else if (r9 === 'Arguments') {
|
|
value = _arrayLikeToArray_57182(a0, value);
|
|
r6 = value;
|
|
} else {
|
|
regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', '');
|
|
if (regexp.test(r9)) {
|
|
value = _arrayLikeToArray_57182(a0, value);
|
|
r6 = value;
|
|
} else {
|
|
r6 = value;
|
|
}
|
|
}
|
|
r5 = r6;
|
|
}
|
|
} else {
|
|
r5 = value;
|
|
}
|
|
if (r5) {
|
|
if (r5) {
|
|
}
|
|
return _fun57181;
|
|
}
|
|
const TypeError = global.TypeError;
|
|
throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');
|
|
}
|
|
|
|
function generateLocalCreationAnswerId() { // fn#57183, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:1200, offset: 0x013deb1b, size: 37 bytes, params: 1, frame: 11
|
|
return (require(491) /* metro dependency 491 */).v4();
|
|
}
|
|
|
|
function getPollResultsPollName({embeds}, a1) { // fn#57186, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:1460, offset: 0x013debd8, size: 137 bytes, params: 3, frame: 16
|
|
var rawValue;
|
|
var r0;
|
|
var fields;
|
|
var value2;
|
|
const property = embeds[0];
|
|
let value = undefined;
|
|
if (property == null) {
|
|
rawValue = value;
|
|
} else {
|
|
fields = property.fields;
|
|
if (fields == null) {
|
|
rawValue = value;
|
|
} else {
|
|
value2 = fields.find(function(a0) {
|
|
return a0.rawName === 'poll_question_text';
|
|
});
|
|
rawValue = value2 == null ? value : value2.rawValue;
|
|
}
|
|
}
|
|
const r3 = rawValue ?? '';
|
|
if (a1 == null) {
|
|
r0 = r3;
|
|
} else {
|
|
value = require(1862) /* metro dependency 1862: StringUtils */;
|
|
value = value.truncateText(r3, a1);
|
|
r0 = value;
|
|
}
|
|
return r0;
|
|
}
|
|
|
|
function getSampleOfVoterUsernamesForAnswer(a0, a1) { // fn#57188, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:1684, offset: 0x013dec76, size: 291 bytes, params: 3, frame: 23
|
|
var r2;
|
|
let value = a0.getChannelId();
|
|
const getReactions = MessageReactionsStore.getReactions;
|
|
const id = a0.id;
|
|
const value3 = undefined;
|
|
const ReactionTypes = (require(7152) /* metro dependency 7152: MessageReactionsTypes */).ReactionTypes;
|
|
const VOTE = ReactionTypes.VOTE;
|
|
const value4 = Reflect.apply(getReactions, MessageReactionsStore, [value, id, {'id': null, 'name': '',
|
|
'animated': false, id: a1}, VOTES_TOOLTIP_MAX_USERS, VOTE]);
|
|
value = ChannelStore.getChannel(value);
|
|
const value5 = null;
|
|
if (value5 == value) {
|
|
r2 = value5;
|
|
} else if (value.isPrivate()) {
|
|
r2 = value5;
|
|
} else {
|
|
value = value.getGuildId();
|
|
r2 = value;
|
|
}
|
|
value = importDefault(22) /* metro dependency 22 */;
|
|
const Array = global.Array;
|
|
const from = Array.from;
|
|
r2 = value5 == value4 ? value3 : value4.values();
|
|
r2 = value5 == r2 ? [] : r2;
|
|
value = value(Reflect.apply(from, Array, [r2]));
|
|
value = value.reject(function(a0) {
|
|
return RelationshipStore.isBlockedOrIgnored(a0.id);
|
|
});
|
|
value = value.take(VOTES_TOOLTIP_MAX_USERS);
|
|
value = value.map(_fun57190);
|
|
return value.value();
|
|
}
|
|
|
|
function formatVoterTooltipText(a0, a1) { // fn#57191, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:2082, offset: 0x013dedfd, size: 625 bytes, params: 3, frame: 22
|
|
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
|
|
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
|
|
const Math = global.Math;
|
|
const value = Math.max(0, a1 - a0.length);
|
|
return a0.length === 1 ? value > 0 ? intl.formatToPlainString(t['SV/iZn'], {a: a0[0],
|
|
n: value}) : a0[0] : a0.length === 2 ? value > 0 ? intl.formatToPlainString(t.YBnZK0, {a: a0[0], b: a0[1],
|
|
n: value}) : intl.formatToPlainString(t['O5+f5c'], {a: a0[0],
|
|
b: a0[1]}) : a0.length === 3 ? value > 0 ? intl.formatToPlainString(t['ThXp+N'], {a: a0[0], b: a0[1], c: a0[2],
|
|
n: value}) : intl.formatToPlainString(t['0UzBM3'], {a: a0[0], b: a0[1],
|
|
c: a0[2]}) : intl.formatToPlainString(t.yVX6kE, {n: value});
|
|
}
|
|
|
|
function hasNonVoteReactions({reactions}) { // fn#57194, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:3072, offset: 0x013df0af, size: 77 bytes, params: 2, frame: 14
|
|
var value3;
|
|
var me_vote;
|
|
var value4;
|
|
const value = _createForOfIteratorHelperLoose_57180(reactions);
|
|
const value2 = value();
|
|
let done = value2.done;
|
|
if (done) {
|
|
return false;
|
|
}
|
|
let r1 = value2;
|
|
loopExit1: while (true) {
|
|
value3 = r1.value;
|
|
me_vote = value3.me_vote;
|
|
if (me_vote == null) {
|
|
break loopExit1;
|
|
}
|
|
value4 = value();
|
|
done = value4.done;
|
|
if (done) {
|
|
return false;
|
|
}
|
|
r1 = value4;
|
|
continue;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function useCanPostPollsInChannel(a0) { // fn#57195, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:3249, offset: 0x013df0fc, size: 64 bytes, params: 2, frame: 14
|
|
const env0_0 = a0;
|
|
return (require(566) /* metro dependency 566: flux */).useStateFromStores([PermissionStore], _fun57196);
|
|
}
|
|
|
|
function isPollCreationEmpty({length}, a1) { // fn#57197, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:3510, offset: 0x013df208, size: 46 bytes, params: 3, frame: 12
|
|
var r0;
|
|
let value = length === 0;
|
|
if (value) {
|
|
value = a1.find(function(a0) {
|
|
return isAnswerFilled(a0);
|
|
});
|
|
value = value == null;
|
|
r0 = value;
|
|
} else {
|
|
r0 = value;
|
|
}
|
|
return r0;
|
|
}
|
|
|
|
function createPollServerDataFromCreateRequest(a0) { // fn#57200, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:3873, offset: 0x013df277, size: 132 bytes, params: 2, frame: 16
|
|
var r6;
|
|
var r2;
|
|
var r3;
|
|
var value;
|
|
var answers;
|
|
var object2;
|
|
if (a0 != null) {
|
|
value = undefined;
|
|
if (a0 == null) {
|
|
r2 = value;
|
|
} else {
|
|
answers = a0.answers;
|
|
if (answers == null) {
|
|
r2 = value;
|
|
r6 = answers;
|
|
} else {
|
|
r2 = answers.map(_fun57201);
|
|
r6 = answers;
|
|
}
|
|
}
|
|
r3 = (a0 == null ? value : a0.duration) != null ? createPollExpiryTimestamp(a0.duration) : '0';
|
|
object2 = {};
|
|
copyDataProperties(object2, a0, r6);
|
|
object2['expiry'] = r3;
|
|
object2['answers'] = r2;
|
|
return object2;
|
|
}
|
|
}
|
|
|
|
function getPollResultsReplyPreview(a0) { // fn#57203, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:4448, offset: 0x013df3bd, size: 120 bytes, params: 2, frame: 17
|
|
const messageAuthor = (require(4634) /* metro dependency 4634: useMessageAuthor */).getMessageAuthor(a0);
|
|
const pollResultsPollName = getPollResultsPollName(a0, POLL_RESULT_MESSAGE_POLL_TITLE_MAX_VISIBLE_CHARS);
|
|
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
|
|
const format = intl.format;
|
|
const Vn97Ka = (require(1244) /* metro dependency 1244: indexNative */).t.Vn97Ka;
|
|
return Reflect.apply(format, intl, [Vn97Ka, {username: messageAuthor.nick, title: pollResultsPollName}]);
|
|
}
|
|
|
|
function getPollResultsReplyPreviewMobile(a0) { // fn#57204, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:4665, offset: 0x013df435, size: 136 bytes, params: 2, frame: 17
|
|
var pollResultsPollName;
|
|
var messageAuthor;
|
|
var intl;
|
|
if ('author' in a0) {
|
|
messageAuthor = (require(4634) /* metro dependency 4634: useMessageAuthor */).getMessageAuthor(a0);
|
|
pollResultsPollName = getPollResultsPollName(a0, POLL_RESULT_MESSAGE_POLL_TITLE_MAX_VISIBLE_CHARS);
|
|
intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
|
|
return intl.formatToParts((require(1244) /* metro dependency 1244: indexNative */).t.Vn97Ka,
|
|
{username: messageAuthor.nick, title: pollResultsPollName});
|
|
}
|
|
return null;
|
|
}
|
|
|
|
function getTotalVotes(a0) { // fn#57205, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:4907, offset: 0x013df4bd, size: 26 bytes, params: 2, frame: 13
|
|
return a0.reduce(function(a0, {count_details}) {
|
|
return a0 + (count_details?.vote ?? 0);
|
|
}, 0);
|
|
}
|
|
|
|
function getPollAnswerVotesTooltipText(a0, a1, a2) { // fn#57207, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:5192, offset: 0x013df506, size: 154 bytes, params: 4, frame: 18
|
|
const message = MessageStore.getMessage(a1, a0);
|
|
if (message == null) {
|
|
return '';
|
|
}
|
|
const value3 = '';
|
|
const reaction = message.getReaction({'id': null, 'name': '', 'animated': false, id: a2});
|
|
const vote = reaction == null || reaction.count_details == null ? undefined : reaction.count_details.vote;
|
|
const value6 = 0;
|
|
const r3 = vote ?? value6;
|
|
const sampleOfVoterUsernamesForAnswer = getSampleOfVoterUsernamesForAnswer(message, a2);
|
|
return value6 === sampleOfVoterUsernamesForAnswer.length ? value3 : formatVoterTooltipText(sampleOfVoterUsernamesForAnswer,
|
|
r3);
|
|
}
|
|
|
|
function formatPollResultNotificationCenterText(a0) { // fn#57208, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:5535, offset: 0x013df5a0, size: 377 bytes, params: 2, frame: 19
|
|
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
|
|
const t = (require(1244) /* metro dependency 1244: indexNative */).t;
|
|
const questionText = a0.questionText;
|
|
const victorAnswerText = a0.victorAnswerText;
|
|
const victorAnswerVotes = a0.victorAnswerVotes;
|
|
const victorAnswerId = a0.victorAnswerId;
|
|
const totalVotes = a0.totalVotes;
|
|
const totalVotes2 = a0.totalVotes;
|
|
const value = 0;
|
|
const r9 = totalVotes2 > value ? global.Math.round(victorAnswerVotes / totalVotes * 100) : value;
|
|
return value === totalVotes ? intl.formatToPlainString(t['8anM0l'],
|
|
{questionText: questionText}) : victorAnswerId != null ? intl.formatToPlainString(t['8yEgvE'],
|
|
{questionText: questionText, victorAnswerText: victorAnswerText,
|
|
percentage: '' + r9 + '%'}) : intl.formatToPlainString(t.XVk6Zv, {questionText: questionText,
|
|
percentage: '' + r9 + '%'});
|
|
}
|
|
|
|
function _fun57190(a0) { // fn#57190, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:2027, offset: 0x013dedb5, size: 72 bytes, params: 2, frame: 17
|
|
const value = environment.__proto__;
|
|
return (importDefault(4617) /* metro dependency 4617: NicknameUtils */).getName(env0_1, env0_0?.id, a0);
|
|
}
|
|
|
|
function _fun57196() { // fn#57196, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:3326, offset: 0x013df13c, size: 204 bytes, params: 1, frame: 18
|
|
var r1;
|
|
var value5;
|
|
var POLLS;
|
|
var value6;
|
|
var isPrivate2;
|
|
let r0 = env0_0 != null && env0_0.id !== (require(5225) /* metro dependency 5225: FakePlaceholderPrivateChannel */).FAKE_PLACEHOLDER_PRIVATE_CHANNEL_ID;
|
|
if (r0) {
|
|
value5 = environment.__proto__;
|
|
POLLS = ChannelTypesSets.POLLS;
|
|
value6 = POLLS.has(env0_0.type);
|
|
if (value6) {
|
|
isPrivate2 = env0_0.isPrivate();
|
|
r1 = isPrivate2 ? !!isPrivate2 : PermissionStore.can(Permissions.SEND_MESSAGES,
|
|
env0_0) && PermissionStore.can(Permissions.SEND_POLLS, env0_0);
|
|
} else {
|
|
r1 = !!value6;
|
|
}
|
|
r0 = r1;
|
|
}
|
|
return r0;
|
|
}
|
|
|
|
function _fun57201(a0, a1) { // fn#57201, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:7327:3990, offset: 0x013df2fb, size: 138 bytes, params: 3, frame: 16
|
|
var r6;
|
|
var r3;
|
|
var name;
|
|
const poll_media = a0.poll_media;
|
|
let value = undefined;
|
|
const emoji = poll_media == null ? value : poll_media.emoji;
|
|
const object2 = {};
|
|
copyDataProperties(object2, a0.poll_media, r6);
|
|
if (emoji != null) {
|
|
name = emoji.name;
|
|
value = name != null;
|
|
r3 = {id: emoji.id, name: value ? name : ''};
|
|
r6 = value;
|
|
} else {
|
|
r3 = value;
|
|
}
|
|
object2['emoji'] = r3;
|
|
const object4 = {};
|
|
copyDataProperties(object4, a0, r6);
|
|
object4['answer_id'] = a1 + 1;
|
|
object4['poll_media'] = object2;
|
|
return object4;
|
|
}
|
|
|