Skip to content

Commit 27e8e8d

Browse files
committed
chore: update useFocusMessage props & increase sponsored messsage gap
1 parent 0855461 commit 27e8e8d

File tree

3 files changed

+50
-25
lines changed

3 files changed

+50
-25
lines changed

src/components/middle/ActionMessage.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,14 @@ const ActionMessage: FC<OwnProps & StateProps> = ({
112112
message.replyInfo?.type === 'message' ? message.replyInfo.replyToMsgId : undefined,
113113
targetMessage,
114114
);
115-
useFocusMessage(ref, message.chatId, isFocused, focusDirection, noFocusHighlight, isJustAdded);
115+
useFocusMessage({
116+
elementRef: ref,
117+
chatId: message.chatId,
118+
isFocused,
119+
focusDirection,
120+
noFocusHighlight,
121+
isJustAdded,
122+
});
116123

117124
useEffect(() => {
118125
if (!message.isPinned) return undefined;

src/components/middle/message/Message.tsx

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import type {
1212
ApiMessageOutgoingStatus,
1313
ApiPeer,
1414
ApiReaction,
15-
ApiSponsoredMessage,
1615
ApiThreadInfo,
1716
ApiTopic,
1817
ApiTypeStory,
@@ -275,7 +274,7 @@ type StateProps = {
275274
isConnected: boolean;
276275
isLoadingComments?: boolean;
277276
shouldWarnAboutSvg?: boolean;
278-
sponsoredMessage?: ApiSponsoredMessage;
277+
hasSponsoredMessage?: boolean;
279278
};
280279

281280
type MetaPosition =
@@ -390,7 +389,7 @@ const Message: FC<OwnProps & StateProps> = ({
390389
getIsMessageListReady,
391390
shouldWarnAboutSvg,
392391
onPinnedIntersectionChange,
393-
sponsoredMessage,
392+
hasSponsoredMessage,
394393
}) => {
395394
const {
396395
toggleMessageSelection,
@@ -736,21 +735,28 @@ const Message: FC<OwnProps & StateProps> = ({
736735
);
737736

738737
const WITH_BOTTOM_ELEMENT_GAP = 5.625 * REM;
739-
const SPONSORED_MESSAGE_GAP = 10 * REM;
740-
const SELECT_MODE_WITH_SPONSORED_GAP = WITH_BOTTOM_ELEMENT_GAP + 10 * REM;
738+
const SPONSORED_MESSAGE_GAP = 11 * REM;
739+
const SELECT_MODE_WITH_SPONSORED_GAP = WITH_BOTTOM_ELEMENT_GAP + SPONSORED_MESSAGE_GAP;
741740

742-
const getFocusMagring = () => {
743-
if (messageListType === 'pinned' || (isInSelectMode && !sponsoredMessage)) return WITH_BOTTOM_ELEMENT_GAP;
744-
if (!isInSelectMode && sponsoredMessage) return SPONSORED_MESSAGE_GAP;
745-
if (isInSelectMode && sponsoredMessage) return SELECT_MODE_WITH_SPONSORED_GAP;
741+
const getFocusMargin = () => {
742+
if (messageListType === 'pinned' || (isInSelectMode && !hasSponsoredMessage)) return WITH_BOTTOM_ELEMENT_GAP;
743+
if (!isInSelectMode && hasSponsoredMessage) return SPONSORED_MESSAGE_GAP;
744+
if (isInSelectMode && hasSponsoredMessage) return SELECT_MODE_WITH_SPONSORED_GAP;
746745

747746
return undefined;
748747
};
749748

750-
useFocusMessage(
751-
// eslint-disable-next-line max-len
752-
ref, chatId, isFocused, focusDirection, noFocusHighlight, isResizingContainer, isJustAdded, Boolean(focusedQuote), getFocusMagring(),
753-
);
749+
useFocusMessage({
750+
elementRef: ref,
751+
chatId,
752+
isFocused,
753+
focusDirection,
754+
noFocusHighlight,
755+
isResizingContainer,
756+
isJustAdded,
757+
isQuote: Boolean(focusedQuote),
758+
focusMargin: getFocusMargin(),
759+
});
754760

755761
const signature = (isChannel && message.postAuthorTitle)
756762
|| (!asForwarded && forwardInfo?.postAuthorTitle)
@@ -1569,7 +1575,7 @@ export default memo(withGlobal<OwnProps>(
15691575
const hasActiveReactions = Boolean(reactionMessage && activeReactions[getMessageKey(reactionMessage)]?.length);
15701576

15711577
return {
1572-
sponsoredMessage: selectSponsoredMessage(global, chatId),
1578+
hasSponsoredMessage: Boolean(selectSponsoredMessage(global, chatId)),
15731579
theme: selectTheme(global),
15741580
forceSenderName,
15751581
sender,

src/components/middle/message/hooks/useFocusMessage.ts

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,29 @@ const BOTTOM_FOCUS_OFFSET = 500;
1313
const RELOCATED_FOCUS_OFFSET = 750;
1414
const FOCUS_MARGIN = 20;
1515

16-
export default function useFocusMessage(
17-
elementRef: { current: HTMLDivElement | null },
18-
chatId: string,
19-
isFocused?: boolean,
20-
focusDirection?: FocusDirection,
21-
noFocusHighlight?: boolean,
22-
isResizingContainer?: boolean,
23-
isJustAdded?: boolean,
24-
isQuote?: boolean,
16+
interface OwnProps {
17+
elementRef: { current: HTMLDivElement | null };
18+
chatId: string;
19+
isFocused?: boolean;
20+
focusDirection?: FocusDirection;
21+
noFocusHighlight?: boolean;
22+
isResizingContainer?: boolean;
23+
isJustAdded?: boolean;
24+
isQuote?: boolean;
25+
focusMargin?: number;
26+
}
27+
28+
export default function useFocusMessage({
29+
elementRef,
30+
chatId,
31+
isFocused,
32+
focusDirection,
33+
noFocusHighlight,
34+
isResizingContainer,
35+
isJustAdded,
36+
isQuote,
2537
focusMargin = FOCUS_MARGIN,
26-
) {
38+
}: OwnProps) {
2739
const isRelocatedRef = useRef(!isJustAdded);
2840

2941
useLayoutEffect(() => {

0 commit comments

Comments
 (0)