From 63cac44853b4bcfb18f9bb09cc1d16d454efca22 Mon Sep 17 00:00:00 2001 From: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com> Date: Fri, 8 Aug 2025 11:31:08 -0700 Subject: [PATCH] Remove unused capabilities --- ts/background.ts | 3 -- ts/components/DeleteMessagesModal.stories.tsx | 13 ------- ts/components/DeleteMessagesModal.tsx | 4 +-- .../ConversationHeader.stories.tsx | 15 -------- .../conversation/ConversationHeader.tsx | 17 +++------- ts/models/conversations.ts | 5 +-- ts/services/profiles.ts | 2 -- ts/state/ducks/conversations.ts | 7 ---- ts/state/selectors/items-extra.ts | 34 ------------------- ts/state/smart/ConversationHeader.tsx | 3 -- ts/state/smart/DeleteMessagesModal.tsx | 5 +-- ts/textsecure/WebAPI.ts | 11 ------ ts/types/Storage.d.ts | 4 +-- 13 files changed, 9 insertions(+), 114 deletions(-) delete mode 100644 ts/state/selectors/items-extra.ts diff --git a/ts/background.ts b/ts/background.ts index f198cb0967..71113a8aed 100644 --- a/ts/background.ts +++ b/ts/background.ts @@ -1993,9 +1993,6 @@ export async function startApp(): Promise { try { await server.registerCapabilities({ - deleteSync: true, - versionedExpirationTimer: true, - ssre2: true, attachmentBackfill: true, }); } catch (error) { diff --git a/ts/components/DeleteMessagesModal.stories.tsx b/ts/components/DeleteMessagesModal.stories.tsx index 9a6daf35a7..387b217eb7 100644 --- a/ts/components/DeleteMessagesModal.stories.tsx +++ b/ts/components/DeleteMessagesModal.stories.tsx @@ -16,7 +16,6 @@ export default { args: { i18n, isMe: false, - isDeleteSyncSendEnabled: false, canDeleteForEveryone: true, messageCount: 1, onClose: action('onClose'), @@ -30,7 +29,6 @@ function createProps(args: Partial) { return { i18n, isMe: false, - isDeleteSyncSendEnabled: false, canDeleteForEveryone: true, messageCount: 1, onClose: action('onClose'), @@ -63,14 +61,3 @@ IsMeThreeMessages.args = createProps({ isMe: true, messageCount: 3, }); - -export const DeleteSyncEnabled = Template.bind({}); -DeleteSyncEnabled.args = createProps({ - isDeleteSyncSendEnabled: true, -}); - -export const IsMeDeleteSyncEnabled = Template.bind({}); -IsMeDeleteSyncEnabled.args = createProps({ - isDeleteSyncSendEnabled: true, - isMe: true, -}); diff --git a/ts/components/DeleteMessagesModal.tsx b/ts/components/DeleteMessagesModal.tsx index 4bf2bd8101..7d0f78337b 100644 --- a/ts/components/DeleteMessagesModal.tsx +++ b/ts/components/DeleteMessagesModal.tsx @@ -10,7 +10,6 @@ import { ToastType } from '../types/Toast'; export type DeleteMessagesModalProps = Readonly<{ isMe: boolean; - isDeleteSyncSendEnabled: boolean; canDeleteForEveryone: boolean; i18n: LocalizerType; messageCount: number; @@ -24,7 +23,6 @@ const MAX_DELETE_FOR_EVERYONE = 30; export default function DeleteMessagesModal({ isMe, - isDeleteSyncSendEnabled, canDeleteForEveryone, i18n, messageCount, @@ -35,7 +33,7 @@ export default function DeleteMessagesModal({ }: DeleteMessagesModalProps): JSX.Element { const actions: Array = []; - const syncNoteToSelfDelete = isMe && isDeleteSyncSendEnabled; + const syncNoteToSelfDelete = isMe; let deleteForMeText = i18n('icu:DeleteMessagesModal--deleteForMe'); if (syncNoteToSelfDelete) { diff --git a/ts/components/conversation/ConversationHeader.stories.tsx b/ts/components/conversation/ConversationHeader.stories.tsx index 27a1177756..6080d99a4c 100644 --- a/ts/components/conversation/ConversationHeader.stories.tsx +++ b/ts/components/conversation/ConversationHeader.stories.tsx @@ -46,7 +46,6 @@ const commonProps: PropsType = { i18n, localDeleteWarningShown: true, - isDeleteSyncSendEnabled: true, setLocalDeleteWarningShown: action('setLocalDeleteWarningShown'), onConversationAccept: action('onConversationAccept'), @@ -414,20 +413,6 @@ export function NeedsDeleteConfirmation(): JSX.Element { return ; } -export function NeedsDeleteConfirmationButNotEnabled(): JSX.Element { - const [localDeleteWarningShown, setLocalDeleteWarningShown] = - React.useState(false); - const props = { - ...commonProps, - localDeleteWarningShown, - isDeleteSyncSendEnabled: false, - setLocalDeleteWarningShown: () => setLocalDeleteWarningShown(true), - }; - const theme = useContext(StorybookThemeContext); - - return ; -} - export function DirectConversationInAnotherCall(): JSX.Element { const props = { ...commonProps, diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx index 61dd792d1d..42f8def834 100644 --- a/ts/components/conversation/ConversationHeader.tsx +++ b/ts/components/conversation/ConversationHeader.tsx @@ -107,7 +107,6 @@ export type PropsDataType = { hasStories?: HasStories; hasActiveCall?: boolean; localDeleteWarningShown: boolean; - isDeleteSyncSendEnabled: boolean; isMissingMandatoryProfileSharing?: boolean; isSelectMode: boolean; isSignalConversation?: boolean; @@ -166,7 +165,6 @@ export const ConversationHeader = memo(function ConversationHeader({ hasPanelShowing, hasStories, i18n, - isDeleteSyncSendEnabled, isMissingMandatoryProfileSharing, isSelectMode, isSignalConversation, @@ -245,7 +243,6 @@ export const ConversationHeader = memo(function ConversationHeader({ {hasDeleteMessagesConfirmation && ( { setHasDeleteMessagesConfirmation(false); @@ -1008,21 +1005,19 @@ function CannotLeaveGroupBecauseYouAreLastAdminAlert({ } function DeleteMessagesConfirmationDialog({ - isDeleteSyncSendEnabled, i18n, localDeleteWarningShown, onDestroyMessages, onClose, setLocalDeleteWarningShown, }: { - isDeleteSyncSendEnabled: boolean; i18n: LocalizerType; localDeleteWarningShown: boolean; onDestroyMessages: () => void; onClose: () => void; setLocalDeleteWarningShown: () => void; }) { - if (!localDeleteWarningShown && isDeleteSyncSendEnabled) { + if (!localDeleteWarningShown) { return ( ; diff --git a/ts/state/ducks/conversations.ts b/ts/state/ducks/conversations.ts index 167b93a612..d8eb2701f8 100644 --- a/ts/state/ducks/conversations.ts +++ b/ts/state/ducks/conversations.ts @@ -1841,13 +1841,6 @@ function deleteMessages({ dispatch(scrollToMessage(conversationId, nearbyMessageId)); } - const ourConversation = - window.ConversationController.getOurConversationOrThrow(); - const capable = Boolean(ourConversation.get('capabilities')?.deleteSync); - - if (!capable) { - return; - } if (messages.length === 0) { return; } diff --git a/ts/state/selectors/items-extra.ts b/ts/state/selectors/items-extra.ts deleted file mode 100644 index b3253548b8..0000000000 --- a/ts/state/selectors/items-extra.ts +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2019 Signal Messenger, LLC -// SPDX-License-Identifier: AGPL-3.0-only - -import { createSelector } from 'reselect'; - -import { getUserACI } from './user'; -import { getConversationSelector } from './conversations'; - -import type { AciString } from '../../types/ServiceId'; -import type { GetConversationByIdType } from './conversations'; - -export const getDeleteSyncSendEnabled = createSelector( - getUserACI, - getConversationSelector, - ( - aci: AciString | undefined, - conversationSelector: GetConversationByIdType - ): boolean => { - if (!aci) { - return false; - } - const ourConversation = conversationSelector(aci); - if (!ourConversation) { - return false; - } - - const { capabilities } = ourConversation; - if (!capabilities || !capabilities.deleteSync) { - return false; - } - - return true; - } -); diff --git a/ts/state/smart/ConversationHeader.tsx b/ts/state/smart/ConversationHeader.tsx index 03cb720182..6745cf7433 100644 --- a/ts/state/smart/ConversationHeader.tsx +++ b/ts/state/smart/ConversationHeader.tsx @@ -42,7 +42,6 @@ import { getHasStoriesSelector } from '../selectors/stories2'; import { getIntl, getTheme, getUserACI } from '../selectors/user'; import { useItemsActions } from '../ducks/items'; import { getLocalDeleteWarningShown } from '../selectors/items'; -import { getDeleteSyncSendEnabled } from '../selectors/items-extra'; import { isConversationEverUnregistered } from '../../util/isConversationUnregistered'; import { isDirectConversation } from '../../util/whatTypeOfConversation'; import type { DurationInSeconds } from '../../util/durations'; @@ -154,7 +153,6 @@ export const SmartConversationHeader = memo(function SmartConversationHeader({ const conversationName = useContactNameData(conversation); strictAssert(conversationName, 'conversationName is required'); - const isDeleteSyncSendEnabled = useSelector(getDeleteSyncSendEnabled); const isMissingMandatoryProfileSharing = getIsMissingRequiredProfileSharing(conversation); @@ -274,7 +272,6 @@ export const SmartConversationHeader = memo(function SmartConversationHeader({ hasStories={hasStories} i18n={i18n} localDeleteWarningShown={localDeleteWarningShown} - isDeleteSyncSendEnabled={isDeleteSyncSendEnabled} isMissingMandatoryProfileSharing={isMissingMandatoryProfileSharing} isSelectMode={isSelectMode} isSignalConversation={isSignalConversation(conversation)} diff --git a/ts/state/smart/DeleteMessagesModal.tsx b/ts/state/smart/DeleteMessagesModal.tsx index 1a4a19eb97..c7a15882b3 100644 --- a/ts/state/smart/DeleteMessagesModal.tsx +++ b/ts/state/smart/DeleteMessagesModal.tsx @@ -18,7 +18,6 @@ import { import { getDeleteMessagesProps } from '../selectors/globalModals'; import { useItemsActions } from '../ducks/items'; import { getLocalDeleteWarningShown } from '../selectors/items'; -import { getDeleteSyncSendEnabled } from '../selectors/items-extra'; import { LocalDeleteWarningModal } from '../../components/LocalDeleteWarningModal'; export const SmartDeleteMessagesModal = memo( @@ -40,7 +39,6 @@ export const SmartDeleteMessagesModal = memo( [messageIds, isMe] ); const canDeleteForEveryone = useSelector(getCanDeleteForEveryone); - const isDeleteSyncSendEnabled = useSelector(getDeleteSyncSendEnabled); const lastSelectedMessage = useSelector(getLastSelectedMessage); const i18n = useSelector(getIntl); const { toggleDeleteMessagesModal } = useGlobalModalActions(); @@ -76,7 +74,7 @@ export const SmartDeleteMessagesModal = memo( const localDeleteWarningShown = useSelector(getLocalDeleteWarningShown); const { putItem } = useItemsActions(); - if (!localDeleteWarningShown && isDeleteSyncSendEnabled) { + if (!localDeleteWarningShown) { return (