From 6cbbaa361a1a563b7754a9257f00e978d15ced14 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Fri, 10 Jan 2025 09:20:33 +1100 Subject: [PATCH] fix: correct alignment of isDeleted message svg --- stylesheets/_session.scss | 8 ------- .../message/message-content/MessageText.tsx | 24 +++++++++++++++++-- ts/session/utils/job_runners/JobRunner.ts | 4 ---- .../utils/job_runners/jobs/GroupInviteJob.ts | 16 +++++++++++-- .../utils/job_runners/jobs/GroupSyncJob.ts | 5 ++-- 5 files changed, 39 insertions(+), 18 deletions(-) diff --git a/stylesheets/_session.scss b/stylesheets/_session.scss index 96430acba..bb243f91a 100644 --- a/stylesheets/_session.scss +++ b/stylesheets/_session.scss @@ -339,11 +339,3 @@ input { margin: auto auto; } } - -.module-message__text { - white-space: pre-wrap; - - svg { - margin-inline-end: var(--margins-xs); - } -} diff --git a/ts/components/conversation/message/message-content/MessageText.tsx b/ts/components/conversation/message/message-content/MessageText.tsx index 40866b57f..dfab97f14 100644 --- a/ts/components/conversation/message/message-content/MessageText.tsx +++ b/ts/components/conversation/message/message-content/MessageText.tsx @@ -1,6 +1,7 @@ import classNames from 'classnames'; import { useSelector } from 'react-redux'; +import styled from 'styled-components'; import { isOpenOrClosedGroup } from '../../../../models/conversationAttributes'; import { MessageRenderingProps } from '../../../../models/messageType'; import { StateType } from '../../../../state/reducer'; @@ -21,6 +22,21 @@ export type MessageTextSelectorProps = Pick< 'text' | 'direction' | 'status' | 'isDeleted' | 'conversationType' >; +const StyledMessageText = styled.div<{ isDeleted?: boolean }>` + white-space: pre-wrap; + + svg { + margin-inline-end: var(--margins-xs); + } + + ${({ isDeleted }) => + isDeleted && + ` + display: flex; + align-items: center; + `} +`; + export const MessageText = (props: Props) => { const selected = useSelector((state: StateType) => getMessageTextProps(state, props.messageId)); const multiSelectMode = useSelector(isMessageSelectionMode); @@ -43,7 +59,11 @@ export const MessageText = (props: Props) => { : 'var(--message-bubbles-sent-text-color)'; return ( -
+ {isDeleted && } { disableJumbomoji={false} isGroup={isOpenOrClosedGroup(conversationType)} /> -
+ ); }; diff --git a/ts/session/utils/job_runners/JobRunner.ts b/ts/session/utils/job_runners/JobRunner.ts index 320bde1f4..b9e89e98d 100644 --- a/ts/session/utils/job_runners/JobRunner.ts +++ b/ts/session/utils/job_runners/JobRunner.ts @@ -304,10 +304,6 @@ export class PersistedJobRunner { // if the time is 101, and that task is to be run at t=101, we need to start it right away. if (nextJob.persistedData.nextAttemptTimestamp > Date.now()) { - window.log.info( - 'next job is not due to be run just yet...', - nextJob.persistedData.nextAttemptTimestamp - Date.now() - ); return; } let jobResult: RunJobResult | null = null; diff --git a/ts/session/utils/job_runners/jobs/GroupInviteJob.ts b/ts/session/utils/job_runners/jobs/GroupInviteJob.ts index 7a68a5718..0b5eff381 100644 --- a/ts/session/utils/job_runners/jobs/GroupInviteJob.ts +++ b/ts/session/utils/job_runners/jobs/GroupInviteJob.ts @@ -78,10 +78,10 @@ async function addJob({ groupPk, member, inviteAsAdmin, forceUnrevoke }: JobExtr await MetaGroupWrapperActions.memberSetInviteNotSent(groupPk, member); } + await LibSessionUtil.saveDumpsToDb(groupPk); window?.inboxStore?.dispatch( groupInfoActions.refreshGroupDetailsFromWrapper({ groupPk }) as any ); - await LibSessionUtil.saveDumpsToDb(groupPk); await runners.groupInviteJobRunner.addJob(groupInviteJob); } @@ -186,6 +186,8 @@ class GroupInviteJob extends PersistedJob { } let failed = true; try { + let start = Date.now(); + if (this.persistedData.forceUnrevoke) { const token = await MetaGroupWrapperActions.swarmSubAccountToken(groupPk, member); const unrevokeSubRequest = new SubaccountUnrevokeSubRequest({ @@ -201,7 +203,14 @@ class GroupInviteJob extends PersistedJob { allow401s: false, timeoutMs: 10 * DURATION.SECONDS, }); + window?.inboxStore?.dispatch( + groupInfoActions.refreshGroupDetailsFromWrapper({ groupPk }) as any + ); if (sequenceResult !== RunJobResult.Success) { + window.log.warn( + `GroupInvite: GroupSync.pushChangesToGroupSwarmIfNeeded failed after ${Date.now() - start}ms` + ); + await LibSessionUtil.saveDumpsToDb(groupPk); throw new Error( @@ -231,7 +240,7 @@ class GroupInviteJob extends PersistedJob { inviteDetails, SnodeNamespaces.Default ); - + start = Date.now(); const { effectiveTimestamp } = await timeoutWithAbort( MessageSender.sendSingleMessage({ message: rawMessage, @@ -240,6 +249,9 @@ class GroupInviteJob extends PersistedJob { 10 * DURATION.SECONDS, controller ); + window.log.debug( + `GroupInvite: sendSingleMessage took ${Date.now() - start}ms. effectiveTimestamp: ${effectiveTimestamp}` + ); if (effectiveTimestamp !== null) { failed = false; diff --git a/ts/session/utils/job_runners/jobs/GroupSyncJob.ts b/ts/session/utils/job_runners/jobs/GroupSyncJob.ts index dd3aa1dcb..cc393efc0 100644 --- a/ts/session/utils/job_runners/jobs/GroupSyncJob.ts +++ b/ts/session/utils/job_runners/jobs/GroupSyncJob.ts @@ -92,10 +92,11 @@ async function pushChangesToGroupSwarmIfNeeded({ deleteAllMessagesSubRequest, extraStoreRequests, allow401s, - timeoutMs + timeoutMs, }: WithGroupPubkey & WithAllow401s & - WithRevokeSubRequest & Partial & { + WithRevokeSubRequest & + Partial & { supplementalKeysSubRequest?: StoreGroupKeysSubRequest; deleteAllMessagesSubRequest?: DeleteAllFromGroupMsgNodeSubRequest; extraStoreRequests: Array;