mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-08-07 11:53:57 +08:00
fix(sync): resolve restore item edge cases
This commit is contained in:
@@ -150,9 +150,17 @@ const isInstalled = (item: SyncedAppListItem): boolean =>
|
||||
props.installedKeys.has(cloudItemKey(item));
|
||||
|
||||
const selectedItems = computed(() =>
|
||||
props.items.filter((item) => selectedKeys.value.has(cloudItemKey(item))),
|
||||
props.items.filter(
|
||||
(item) => selectedKeys.value.has(cloudItemKey(item)) && !isInstalled(item),
|
||||
),
|
||||
);
|
||||
|
||||
const pruneSelectedKeys = (): void => {
|
||||
selectedKeys.value = new Set(
|
||||
[...selectedKeys.value].filter((key) => !props.installedKeys.has(key)),
|
||||
);
|
||||
};
|
||||
|
||||
const toggleSelection = (item: SyncedAppListItem): void => {
|
||||
if (isInstalled(item)) return;
|
||||
const key = cloudItemKey(item);
|
||||
@@ -169,4 +177,12 @@ watch(
|
||||
},
|
||||
{ deep: true },
|
||||
);
|
||||
|
||||
watch(
|
||||
() => props.installedKeys,
|
||||
() => {
|
||||
pruneSelectedKeys();
|
||||
},
|
||||
{ deep: true },
|
||||
);
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user