mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-02-15 07:28:59 +00:00
When deleting megaphones ensure they are removed in redux
Co-authored-by: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
|||||||
getMegaphoneLastSnoozeDurationMs,
|
getMegaphoneLastSnoozeDurationMs,
|
||||||
MegaphoneCtaId,
|
MegaphoneCtaId,
|
||||||
SNOOZE_DEFAULT_DURATION,
|
SNOOZE_DEFAULT_DURATION,
|
||||||
|
type RemoteMegaphoneId,
|
||||||
type RemoteMegaphoneType,
|
type RemoteMegaphoneType,
|
||||||
type VisibleRemoteMegaphoneType,
|
type VisibleRemoteMegaphoneType,
|
||||||
} from '../types/Megaphone.std.js';
|
} from '../types/Megaphone.std.js';
|
||||||
@@ -121,6 +122,13 @@ export function isConditionalActive(conditionalId: string | null): boolean {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function deleteMegaphoneAndRemoveFromRedux(
|
||||||
|
id: RemoteMegaphoneId
|
||||||
|
): Promise<void> {
|
||||||
|
await DataWriter.deleteMegaphone(id);
|
||||||
|
window.reduxActions.megaphones.removeVisibleMegaphone(id);
|
||||||
|
}
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
|
|
||||||
async function processMegaphone(megaphone: RemoteMegaphoneType): Promise<void> {
|
async function processMegaphone(megaphone: RemoteMegaphoneType): Promise<void> {
|
||||||
@@ -128,8 +136,7 @@ async function processMegaphone(megaphone: RemoteMegaphoneType): Promise<void> {
|
|||||||
|
|
||||||
if (isMegaphoneDeletable(megaphone)) {
|
if (isMegaphoneDeletable(megaphone)) {
|
||||||
log.info(`processMegaphone: Deleting ${id}`);
|
log.info(`processMegaphone: Deleting ${id}`);
|
||||||
await DataWriter.deleteMegaphone(id);
|
await deleteMegaphoneAndRemoveFromRedux(id);
|
||||||
window.reduxActions.megaphones.removeVisibleMegaphone(id);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import { type RemoteMegaphoneType } from '../types/Megaphone.std.js';
|
|||||||
import { isCountryPpmCsvBucketEnabled } from '../RemoteConfig.dom.js';
|
import { isCountryPpmCsvBucketEnabled } from '../RemoteConfig.dom.js';
|
||||||
import type { AciString } from '../types/ServiceId.std.js';
|
import type { AciString } from '../types/ServiceId.std.js';
|
||||||
import {
|
import {
|
||||||
|
deleteMegaphoneAndRemoveFromRedux,
|
||||||
isRemoteMegaphoneEnabled,
|
isRemoteMegaphoneEnabled,
|
||||||
runMegaphoneCheck,
|
runMegaphoneCheck,
|
||||||
} from './megaphone.preload.js';
|
} from './megaphone.preload.js';
|
||||||
@@ -238,7 +239,7 @@ export class ReleaseNoteAndMegaphoneFetcher {
|
|||||||
`deleteUnknownMegaphones: Found local megaphone missing in manifest, deleting: ${id}`
|
`deleteUnknownMegaphones: Found local megaphone missing in manifest, deleting: ${id}`
|
||||||
);
|
);
|
||||||
// eslint-disable-next-line no-await-in-loop
|
// eslint-disable-next-line no-await-in-loop
|
||||||
await DataWriter.deleteMegaphone(id);
|
await deleteMegaphoneAndRemoveFromRedux(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -216,6 +216,8 @@ export function snoozeMegaphone(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Note: When deleting megaphones, ensure megaphones are removed from redux also.
|
||||||
|
// See: deleteMegaphoneAndRemoveFromRedux()
|
||||||
export function deleteMegaphone(
|
export function deleteMegaphone(
|
||||||
db: WritableDB,
|
db: WritableDB,
|
||||||
megaphoneId: RemoteMegaphoneId
|
megaphoneId: RemoteMegaphoneId
|
||||||
|
|||||||
Reference in New Issue
Block a user