in apps/chat/src/store/publication/publication.reducers.ts [218:274]
allVersions: sortAllVersions(
uniqBy(
[
...(state.publicVersionGroups[key]?.allVersions || []),
...(payload.publicVersionGroups[key]?.allVersions || []),
],
'id',
),
),
};
}
}
},
setSelectedVersionForPublicVersionGroup: (
state,
{
payload,
}: PayloadAction<{
versionGroupId: string;
newVersion: PublicVersionOption;
}>,
) => {
// link to state.publicVersionGroups[payload.versionGroupId]
const versionGroup = state.publicVersionGroups[payload.versionGroupId];
if (versionGroup) {
versionGroup.selectedVersion = payload.newVersion;
}
},
removePublicVersionGroups: (
state,
{
payload,
}: PayloadAction<{
groupsToRemove: {
versionGroupId: string;
groupIds: string[];
}[];
}>,
) => {
// versionGroups it's a link to state.publicVersionGroups[payload.versionGroupId]
const groupWithIdsToRemove = payload.groupsToRemove.map((group) => ({
versionGroup: state.publicVersionGroups[group.versionGroupId],
idsToRemove: group.groupIds,
versionGroupId: group.versionGroupId,
}));
groupWithIdsToRemove.forEach(
({ versionGroup, idsToRemove, versionGroupId }) => {
if (versionGroup) {
const filteredVersionGroups = versionGroup.allVersions.filter(
(group) => !idsToRemove.includes(group.id),
);
versionGroup.allVersions = filteredVersionGroups;
if (idsToRemove.includes(versionGroup.selectedVersion.id)) {