mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-09-21 06:00:11 +08:00
fix(sync): isolate installed sync state
This commit is contained in:
@@ -28,3 +28,22 @@ export const buildSyncItems = (apps: App[]): SyncedAppListItem[] => {
|
||||
export const cloudItemKey = (
|
||||
item: Pick<SyncedAppListItem, "origin" | "pkgname">,
|
||||
): string => `${item.origin}:${item.pkgname}`;
|
||||
|
||||
export const mergeInstalledApps = (
|
||||
currentApps: App[],
|
||||
refreshedApps: App[],
|
||||
refreshedOrigins: Array<"spark" | "apm">,
|
||||
): App[] => {
|
||||
const refreshedKeys = new Set(
|
||||
refreshedApps.map((app) => `${app.origin}:${app.pkgname}`),
|
||||
);
|
||||
|
||||
return [
|
||||
...currentApps.filter(
|
||||
(app) =>
|
||||
!refreshedOrigins.includes(app.origin) &&
|
||||
!refreshedKeys.has(`${app.origin}:${app.pkgname}`),
|
||||
),
|
||||
...refreshedApps,
|
||||
];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user