295 lines
9.4 KiB
TypeScript
295 lines
9.4 KiB
TypeScript
// Metro module 11376 (f11377).
|
|
import _slicedToArray from "../../_bundle/_slicedToArray";
|
|
import { useState, useCallback, useEffect } from "react";
|
|
import { PollDurations, MIN_NUMBER_OF_ANSWERS_PER_POLL, MAX_NUMBER_OF_ANSWERS_PER_POLL } from "./PollsConstants";
|
|
import { generateEmptyPollAnswer, isAnswerFilled, isIncompleteAnswer } from "./PollsUtils";
|
|
import useRequest from "../../hooks/useRequest";
|
|
import PollsActionCreators from "./PollsActionCreators";
|
|
import { removePollUploadAttachment, handlePollGifAttachmentAdd, handlePollMediaAttachmentAdd, removeAllPollUploadAttachments } from "./PollUploadAttachmentActionCreators.native";
|
|
import { getFileNameFromGifUrl } from "./PollAttachmentUtils";
|
|
import { PollMediaUploadAttachmentStatus } from "./PollTypes";
|
|
import { intl, t } from "../../intl/index.native";
|
|
import { PollLayoutTypes } from "../../_bundle/Module8002";
|
|
let env7730 = {};
|
|
const createPollCreationImageForMedia = function createPollCreationImageForMedia(a0, a1) {
|
|
return {
|
|
mediaAttachmentState: {
|
|
status: a1,
|
|
mediaURL: a0
|
|
},
|
|
emoji: void 0,
|
|
stickerId: void 0
|
|
};
|
|
};
|
|
export default function useCreatePollCommonData(a0, a1, a2, a3) {
|
|
let env18789 = {
|
|
$parent: env7730
|
|
};
|
|
env18789[0] = a0;
|
|
env18789[1] = a1;
|
|
env18789[2] = a2;
|
|
env18789[3] = a3;
|
|
const id = a0.id;
|
|
env18789[4] = id;
|
|
const r39 = _slicedToArray(useState(() => {
|
|
const r4 = env18789[3];
|
|
const r2 = r4 == null;
|
|
let r8 = void 0;
|
|
if (!r2) {
|
|
const initialAnswers = r4.initialAnswers;
|
|
r8 = initialAnswers == null ? void 0 : initialAnswers.map((initialAnswer) => ({
|
|
...generateEmptyPollAnswer(),
|
|
...initialAnswer
|
|
}));
|
|
}
|
|
if (r8 == null) {
|
|
r8 = [generateEmptyPollAnswer(), generateEmptyPollAnswer()];
|
|
}
|
|
return r8;
|
|
}), 2);
|
|
const answers = r39[0];
|
|
env18789[5] = answers;
|
|
env18789[6] = r39[1];
|
|
let r42 = a3?.initialQuestion;
|
|
if (r42 == null) {
|
|
r42 = "";
|
|
}
|
|
const r44 = _slicedToArray(useState(r42), 2);
|
|
const question = r44[0];
|
|
env18789[7] = question;
|
|
const setQuestion = r44[1];
|
|
env18789[8] = setQuestion;
|
|
const r48 = _slicedToArray(useState(false), 2);
|
|
const allowMultiSelect = r48[0];
|
|
env18789[9] = allowMultiSelect;
|
|
const setAllowMultiSelect = r48[1];
|
|
let r50 = a3?.initialDuration;
|
|
if (r50 == null) {
|
|
r50 = PollDurations.ONE_DAY;
|
|
}
|
|
const r53 = _slicedToArray(useState(r50), 2);
|
|
const duration = r53[0];
|
|
env18789[10] = duration;
|
|
const setDuration = r53[1];
|
|
const r57 = _slicedToArray(useState({}), 2);
|
|
const fieldErrors = r57[0];
|
|
env18789[11] = r57[1];
|
|
const [shouldFocusOnInvalidField, setShouldFocusOnInvalidField] = useState(false);
|
|
env18789[12] = setShouldFocusOnInvalidField;
|
|
const r35 = answers.filter((answer) => isAnswerFilled(answer));
|
|
env18789[13] = r35;
|
|
const r67 = answers.filter((answer) => isIncompleteAnswer(answer));
|
|
const canPost = question.length > 0 && r35.length >= MIN_NUMBER_OF_ANSWERS_PER_POLL && r67.length === 0;
|
|
let c18790_0;
|
|
const r80 = _slicedToArray(useRequest(PollsActionCreators.createPoll), 2);
|
|
const r34 = r80[0];
|
|
env18789[14] = r34;
|
|
const r81 = r80[1];
|
|
const { error, loading } = r81;
|
|
env18789[15] = loading;
|
|
const canAddMoreAnswers = answers.length < MAX_NUMBER_OF_ANSWERS_PER_POLL;
|
|
env18789[16] = canAddMoreAnswers;
|
|
const canRemoveMoreAnswers = answers.length > MIN_NUMBER_OF_ANSWERS_PER_POLL;
|
|
env18789[17] = canRemoveMoreAnswers;
|
|
const callback3 = useCallback((a0) => {
|
|
(0, env18789[11])((a0) => {
|
|
const r1 = {
|
|
...a0
|
|
};
|
|
delete r1["question"];
|
|
return r1;
|
|
});
|
|
(0, env18789[8])(a0);
|
|
}, []);
|
|
const callback2 = useCallback(({ text, index, localCreationAnswerId }) => {
|
|
(0, env18789[11])((a0) => {
|
|
const r1 = {
|
|
...a0
|
|
};
|
|
delete r1[`answer-${localCreationAnswerId}`];
|
|
return r1;
|
|
});
|
|
(0, env18789[6])((a0) => {
|
|
const r1 = [...a0];
|
|
r1[index] = {
|
|
...r1[index],
|
|
text
|
|
};
|
|
return r1;
|
|
});
|
|
}, []);
|
|
const callback4 = useCallback((image, c27040_1) => {
|
|
(0, env18789[6])((a0) => {
|
|
const r1 = [...a0];
|
|
r1[c27040_1] = {
|
|
...r1[c27040_1],
|
|
image
|
|
};
|
|
return r1;
|
|
});
|
|
}, []);
|
|
env18789[18] = callback4;
|
|
const callback5 = useCallback((a0, a1, a2) => {
|
|
const r8 = env18789[5][a1];
|
|
const mediaAttachmentState = r8.image?.mediaAttachmentState;
|
|
if (mediaAttachmentState != null && mediaAttachmentState.mediaURL !== a2) {
|
|
removePollUploadAttachment(a0, r8.localCreationAnswerId, getFileNameFromGifUrl(r8.localCreationAnswerId, mediaAttachmentState.mediaURL));
|
|
}
|
|
}, [answers]);
|
|
env18789[19] = callback5;
|
|
c18790_0 = void 0;
|
|
c18790_0 = async (c30396_0, c30396_1, c30396_2) => {
|
|
let c30396_4;
|
|
c30396_4 = void 0;
|
|
let c31622_0 = c30396_1;
|
|
let c31622_1 = c30396_2;
|
|
const localCreationAnswerId2 = env18789[5][c30396_1].localCreationAnswerId;
|
|
(0, env18789[19])(c30396_0, c30396_1);
|
|
(0, env18789[18])(createPollCreationImageForMedia(c30396_2, PollMediaUploadAttachmentStatus.PREPARING), c30396_1);
|
|
if (await handlePollGifAttachmentAdd(c30396_0, localCreationAnswerId2, c30396_2) != null) {
|
|
env18789[18]((0, createPollCreationImageForMedia)(c31622_1, PollMediaUploadAttachmentStatus.READY_TO_UPLOAD), c31622_0);
|
|
} else {
|
|
env18789[18]((0, createPollCreationImageForMedia)(c31622_1, PollMediaUploadAttachmentStatus.ERROR), c31622_0);
|
|
}
|
|
};
|
|
const callback = useCallback(function() {
|
|
return c18790_0.apply(this, arguments);
|
|
}, [answers, callback4, callback5]);
|
|
const callback6 = useCallback((a0, a1, a2) => {
|
|
const localCreationAnswerId2 = env18789[5][a1].localCreationAnswerId;
|
|
const objectURL = URL.createObjectURL(a2);
|
|
(0, env18789[19])(a0, a1);
|
|
const r18 = env18789[18];
|
|
r18({
|
|
mediaAttachmentState: {
|
|
status: PollMediaUploadAttachmentStatus.PREPARING,
|
|
mediaURL: objectURL
|
|
},
|
|
emoji: void 0,
|
|
stickerId: void 0
|
|
}, a1);
|
|
handlePollMediaAttachmentAdd(a0, localCreationAnswerId2, a2);
|
|
r18({
|
|
mediaAttachmentState: {
|
|
status: PollMediaUploadAttachmentStatus.READY_TO_UPLOAD,
|
|
mediaURL: objectURL
|
|
},
|
|
emoji: void 0,
|
|
stickerId: void 0
|
|
}, a1);
|
|
}, [answers, callback4, callback5]);
|
|
const callback7 = useCallback((a0, a1) => {
|
|
(0, env18789[19])(env18789[4], a1);
|
|
(0, env18789[18])({
|
|
emoji: a0,
|
|
stickerId: void 0,
|
|
mediaAttachmentState: void 0
|
|
}, a1);
|
|
}, [id, callback4, callback5]);
|
|
const callback8 = useCallback((c27041_0) => {
|
|
(0, env18789[6])((a0) => {
|
|
const r2 = [...a0];
|
|
r2[c27041_0] = {
|
|
...r2[c27041_0],
|
|
image: void 0
|
|
};
|
|
return r2;
|
|
});
|
|
}, []);
|
|
const callback9 = useCallback(() => {
|
|
if (env18789[16]) {
|
|
(0, env18789[6])((a0) => [...a0, generateEmptyPollAnswer()]);
|
|
}
|
|
}, [canAddMoreAnswers]);
|
|
const callback10 = useCallback((a0) => {
|
|
let c27042_0 = a0;
|
|
if (env18789[17]) {
|
|
const length = env18789[5].length;
|
|
(0, env18789[19])(env18789[4], a0);
|
|
(0, env18789[6])((a0) => {
|
|
const r1 = [...a0];
|
|
r1.splice(c27042_0, 1);
|
|
return r1;
|
|
});
|
|
const r14 = env18789[2];
|
|
if (r14 != null) {
|
|
r14({
|
|
indexToRemove: a0,
|
|
numberOfAnswers: length
|
|
});
|
|
}
|
|
}
|
|
}, [answers.length, canRemoveMoreAnswers, id, a2, callback5]);
|
|
useEffect(() => () => {
|
|
removeAllPollUploadAttachments(env18789[4]);
|
|
}, [id]);
|
|
const callback11 = useCallback(() => {
|
|
let c27043_0 = true;
|
|
const r6 = {};
|
|
let c27043_1 = r6;
|
|
if (env18789[7].trim().length === 0) {
|
|
c27043_0 = false;
|
|
r6.question = intl.string(t.gPX3oI);
|
|
}
|
|
const r25 = env18789[5];
|
|
if (r25.filter((item) => isAnswerFilled(item)).length < MIN_NUMBER_OF_ANSWERS_PER_POLL) {
|
|
c27043_0 = false;
|
|
r6[`answer-${r25[0].localCreationAnswerId}`] = intl.string(t.fYvzEX);
|
|
}
|
|
r25.forEach((item) => {
|
|
if (isIncompleteAnswer(item)) {
|
|
c27043_0 = false;
|
|
c27043_1[`answer-${item.localCreationAnswerId}`] = intl.string(t["8Qqkc+"]);
|
|
}
|
|
});
|
|
(0, env18789[11])(r6);
|
|
(0, env18789[12])(!c27043_0);
|
|
return c27043_0;
|
|
}, [answers, question]);
|
|
env18789[20] = callback11;
|
|
const callback12 = useCallback(async () => {
|
|
await (0, env18789[14])({
|
|
channel: env18789[0],
|
|
question: env18789[7],
|
|
answers: env18789[13],
|
|
allowMultiSelect: env18789[9],
|
|
duration: env18789[10],
|
|
layout: PollLayoutTypes.DEFAULT,
|
|
onClose: env18789[1]
|
|
});
|
|
}, [question, r35, allowMultiSelect, duration, r34, a0, a1]);
|
|
env18789[21] = callback12;
|
|
return {
|
|
answers,
|
|
question,
|
|
setQuestion,
|
|
allowMultiSelect,
|
|
setAllowMultiSelect,
|
|
duration,
|
|
setDuration,
|
|
canPost,
|
|
canAddMoreAnswers,
|
|
canRemoveMoreAnswers,
|
|
handleQuestionChange: callback3,
|
|
handleAnswerTextChange: callback2,
|
|
handleGifSelect: callback,
|
|
handleEmojiSelect: callback7,
|
|
handleCustomUpload: callback6,
|
|
handleAddAnswer: callback9,
|
|
handleRemoveAnswer: callback10,
|
|
handleRemoveAnswerImage: callback8,
|
|
fieldErrors,
|
|
createPoll: callback12,
|
|
handleSubmitPoll: useCallback(() => {
|
|
const r3 = env18789[15];
|
|
if (r3 ? !r3 : (0, env18789[20])()) {
|
|
(0, env18789[21])();
|
|
}
|
|
}, [callback12, loading, callback11]),
|
|
submitting: loading,
|
|
createPollError: error,
|
|
shouldFocusOnInvalidField,
|
|
setShouldFocusOnInvalidField
|
|
};
|
|
};
|