mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-02-15 07:28:59 +00:00
Remove unused capabilities
This commit is contained in:
@@ -1993,9 +1993,6 @@ export async function startApp(): Promise<void> {
|
||||
|
||||
try {
|
||||
await server.registerCapabilities({
|
||||
deleteSync: true,
|
||||
versionedExpirationTimer: true,
|
||||
ssre2: true,
|
||||
attachmentBackfill: true,
|
||||
});
|
||||
} catch (error) {
|
||||
|
||||
@@ -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<DeleteMessagesModalProps>) {
|
||||
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,
|
||||
});
|
||||
|
||||
@@ -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<ActionSpec> = [];
|
||||
|
||||
const syncNoteToSelfDelete = isMe && isDeleteSyncSendEnabled;
|
||||
const syncNoteToSelfDelete = isMe;
|
||||
|
||||
let deleteForMeText = i18n('icu:DeleteMessagesModal--deleteForMe');
|
||||
if (syncNoteToSelfDelete) {
|
||||
|
||||
@@ -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 <ConversationHeader {...props} theme={theme} />;
|
||||
}
|
||||
|
||||
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 <ConversationHeader {...props} theme={theme} />;
|
||||
}
|
||||
|
||||
export function DirectConversationInAnotherCall(): JSX.Element {
|
||||
const props = {
|
||||
...commonProps,
|
||||
|
||||
@@ -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 && (
|
||||
<DeleteMessagesConfirmationDialog
|
||||
i18n={i18n}
|
||||
isDeleteSyncSendEnabled={isDeleteSyncSendEnabled}
|
||||
localDeleteWarningShown={localDeleteWarningShown}
|
||||
onDestroyMessages={() => {
|
||||
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 (
|
||||
<LocalDeleteWarningModal
|
||||
i18n={i18n}
|
||||
@@ -1031,13 +1026,9 @@ function DeleteMessagesConfirmationDialog({
|
||||
);
|
||||
}
|
||||
|
||||
const dialogBody = isDeleteSyncSendEnabled
|
||||
? i18n(
|
||||
'icu:ConversationHeader__DeleteConversationConfirmation__description-with-sync'
|
||||
)
|
||||
: i18n(
|
||||
'icu:ConversationHeader__DeleteConversationConfirmation__description'
|
||||
);
|
||||
const dialogBody = i18n(
|
||||
'icu:ConversationHeader__DeleteConversationConfirmation__description-with-sync'
|
||||
);
|
||||
|
||||
return (
|
||||
<ConfirmationDialog
|
||||
|
||||
@@ -5284,10 +5284,7 @@ export class ConversationModel extends window.Backbone
|
||||
});
|
||||
await DataWriter.updateConversation(this.attributes);
|
||||
|
||||
const ourConversation =
|
||||
window.ConversationController.getOurConversationOrThrow();
|
||||
const capable = Boolean(ourConversation.get('capabilities')?.deleteSync);
|
||||
if (source === 'local-delete' && capable) {
|
||||
if (source === 'local-delete') {
|
||||
log.info(`${logId}: Preparing sync message`);
|
||||
const timestamp = Date.now();
|
||||
|
||||
|
||||
@@ -71,8 +71,6 @@ type JobType = {
|
||||
// - Don't even attempt jobs when offline
|
||||
|
||||
const OBSERVED_CAPABILITY_KEYS = Object.keys({
|
||||
deleteSync: true,
|
||||
ssre2: true,
|
||||
attachmentBackfill: true,
|
||||
} satisfies CapabilitiesType) as ReadonlyArray<keyof CapabilitiesType>;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
);
|
||||
@@ -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)}
|
||||
|
||||
@@ -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 (
|
||||
<LocalDeleteWarningModal
|
||||
i18n={i18n}
|
||||
@@ -92,7 +90,6 @@ export const SmartDeleteMessagesModal = memo(
|
||||
isMe={isMe}
|
||||
canDeleteForEveryone={canDeleteForEveryone}
|
||||
i18n={i18n}
|
||||
isDeleteSyncSendEnabled={isDeleteSyncSendEnabled}
|
||||
messageCount={messageCount}
|
||||
onClose={handleClose}
|
||||
onDeleteForMe={handleDeleteForMe}
|
||||
|
||||
@@ -849,14 +849,9 @@ export type WebAPIConnectType = {
|
||||
// When updating this make sure to update `observedCapabilities` type in
|
||||
// ts/types/Storage.d.ts
|
||||
export type CapabilitiesType = {
|
||||
deleteSync: boolean;
|
||||
ssre2: boolean;
|
||||
attachmentBackfill: boolean;
|
||||
};
|
||||
export type CapabilitiesUploadType = {
|
||||
deleteSync: true;
|
||||
versionedExpirationTimer: true;
|
||||
ssre2: true;
|
||||
attachmentBackfill: true;
|
||||
};
|
||||
|
||||
@@ -3206,9 +3201,6 @@ export function initialize({
|
||||
}
|
||||
|
||||
const capabilities: CapabilitiesUploadType = {
|
||||
deleteSync: true,
|
||||
versionedExpirationTimer: true,
|
||||
ssre2: true,
|
||||
attachmentBackfill: true,
|
||||
};
|
||||
|
||||
@@ -3273,9 +3265,6 @@ export function initialize({
|
||||
pniPqLastResortPreKey,
|
||||
}: LinkDeviceOptionsType) {
|
||||
const capabilities: CapabilitiesUploadType = {
|
||||
deleteSync: true,
|
||||
versionedExpirationTimer: true,
|
||||
ssre2: true,
|
||||
attachmentBackfill: true,
|
||||
};
|
||||
|
||||
|
||||
4
ts/types/Storage.d.ts
vendored
4
ts/types/Storage.d.ts
vendored
@@ -200,12 +200,12 @@ export type StorageAccessType = {
|
||||
needProfileMovedModal: boolean;
|
||||
notificationProfileOverride: NotificationProfileOverride | undefined;
|
||||
observedCapabilities: {
|
||||
deleteSync?: true;
|
||||
ssre2?: true;
|
||||
attachmentBackfill?: true;
|
||||
|
||||
// Note: Upon capability deprecation - change the value type to `never` and
|
||||
// remove it in `ts/background.ts`
|
||||
deleteSync?: never;
|
||||
ssre2?: never;
|
||||
};
|
||||
releaseNotesNextFetchTime: number;
|
||||
releaseNotesVersionWatermark: string;
|
||||
|
||||
Reference in New Issue
Block a user