-
+ {leftIcon && }
+ {Boolean(replyInfo?.quoteText) && (
+
+ )}
(
sender = selectForwardedSender(global, message);
}
- if (!sender && !forwardInfo?.hiddenUserName) {
+ if (!sender && (!forwardInfo?.hiddenUserName || Boolean(replyInfo.quoteText))) {
sender = selectSender(global, message);
}
} else if (isForwarding) {
@@ -352,8 +357,8 @@ export default memo(withGlobal(
if (!sender) {
sender = selectPeer(global, fromChatId!);
}
- } else if (editingId) {
- sender = selectSender(global, message!);
+ } else if (editingId && message) {
+ sender = selectSender(global, message);
}
const forwardsHaveCaptions = forwardedMessages?.some((forward) => (
diff --git a/src/components/middle/composer/PollModal.tsx b/src/components/middle/composer/PollModal.tsx
index 68c005552..24bc4e3b6 100644
--- a/src/components/middle/composer/PollModal.tsx
+++ b/src/components/middle/composer/PollModal.tsx
@@ -8,7 +8,7 @@ import type { ApiNewPoll } from '../../../api/types';
import { requestNextMutation } from '../../../lib/fasterdom/fasterdom';
import captureEscKeyListener from '../../../util/captureEscKeyListener';
-import parseMessageInput from '../../../util/parseMessageInput';
+import parseHtmlAsFormattedText from '../../../util/parseHtmlAsFormattedText';
import useLang from '../../../hooks/useLang';
import useLastCallback from '../../../hooks/useLastCallback';
@@ -142,7 +142,8 @@ const PollModal: FC = ({
};
if (isQuizMode) {
- const { text, entities } = (solution && parseMessageInput(solution.substring(0, MAX_SOLUTION_LENGTH))) || {};
+ const { text, entities } = (solution && parseHtmlAsFormattedText(solution.substring(0, MAX_SOLUTION_LENGTH)))
+ || {};
payload.quiz = {
correctAnswers: [String(correctOption)],
diff --git a/src/components/middle/composer/WebPagePreview.tsx b/src/components/middle/composer/WebPagePreview.tsx
index ab2116d6f..cb0733e2e 100644
--- a/src/components/middle/composer/WebPagePreview.tsx
+++ b/src/components/middle/composer/WebPagePreview.tsx
@@ -12,7 +12,7 @@ import { ApiMessageEntityTypes } from '../../../api/types';
import { RE_LINK_TEMPLATE } from '../../../config';
import { selectNoWebPage, selectTabState, selectTheme } from '../../../global/selectors';
import buildClassName from '../../../util/buildClassName';
-import parseMessageInput from '../../../util/parseMessageInput';
+import parseHtmlAsFormattedText from '../../../util/parseHtmlAsFormattedText';
import { useDebouncedResolver } from '../../../hooks/useAsyncResolvers';
import useCurrentOrPrev from '../../../hooks/useCurrentOrPrev';
@@ -61,7 +61,7 @@ const WebPagePreview: FC = ({
const formattedTextWithLinkRef = useRef();
const detectLinkDebounced = useDebouncedResolver(() => {
- const formattedText = parseMessageInput(getHtml());
+ const formattedText = parseHtmlAsFormattedText(getHtml());
const linkEntity = formattedText.entities?.find((entity): entity is ApiMessageEntityTextUrl => (
entity.type === ApiMessageEntityTypes.TextUrl
));
diff --git a/src/components/middle/composer/helpers/cleanHtml.ts b/src/components/middle/composer/helpers/cleanHtml.ts
index 3d4c76002..45962da36 100644
--- a/src/components/middle/composer/helpers/cleanHtml.ts
+++ b/src/components/middle/composer/helpers/cleanHtml.ts
@@ -2,7 +2,7 @@ import { ApiMessageEntityTypes } from '../../../../api/types';
import { DEBUG } from '../../../../config';
import cleanDocsHtml from '../../../../lib/cleanDocsHtml';
-import { ENTITY_CLASS_BY_NODE_NAME } from '../../../../util/parseMessageInput';
+import { ENTITY_CLASS_BY_NODE_NAME } from '../../../../util/parseHtmlAsFormattedText';
const STYLE_TAG_REGEX = /