signal-desktop/ts/services/distributionListLoader.ts
Fedor Indutny 366b875fd2 Introduce Service Id Types
Co-authored-by: Scott Nonnenberg <scott@signal.org>
2023-08-21 09:30:32 -07:00

32 lines
1.1 KiB
TypeScript

// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import dataInterface from '../sql/Client';
import type { StoryDistributionWithMembersType } from '../sql/Interface';
import type { StoryDistributionListDataType } from '../state/ducks/storyDistributionLists';
import { strictAssert } from '../util/assert';
let distributionLists: Array<StoryDistributionWithMembersType> | undefined;
export async function loadDistributionLists(): Promise<void> {
distributionLists = await dataInterface.getAllStoryDistributionsWithMembers();
}
export function getDistributionListsForRedux(): Array<StoryDistributionListDataType> {
strictAssert(distributionLists, 'distributionLists has not been loaded');
const lists = distributionLists
.map(list => ({
allowsReplies: Boolean(list.allowsReplies),
deletedAtTimestamp: list.deletedAtTimestamp,
id: list.id,
isBlockList: Boolean(list.isBlockList),
name: list.name,
memberServiceIds: list.members,
}))
.filter(list => !list.deletedAtTimestamp);
distributionLists = undefined;
return lists;
}