mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-05-30 01:31:06 +08:00
fix(sources): hide unavailable update and management entries
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
import type { StoreFilter } from "@/global/typedefinition";
|
||||
|
||||
export interface SourceAvailability {
|
||||
spark: boolean;
|
||||
apm: boolean;
|
||||
}
|
||||
|
||||
export const isOriginEnabled = (
|
||||
storeFilter: StoreFilter,
|
||||
origin: "spark" | "apm",
|
||||
): boolean => {
|
||||
return storeFilter === "both" || storeFilter === origin;
|
||||
};
|
||||
|
||||
export const getDefaultInstalledOrigin = (
|
||||
storeFilter: StoreFilter,
|
||||
availability: SourceAvailability,
|
||||
): "spark" | "apm" | null => {
|
||||
if (storeFilter === "spark") {
|
||||
return availability.spark ? "spark" : null;
|
||||
}
|
||||
|
||||
if (storeFilter === "apm") {
|
||||
return availability.apm ? "apm" : null;
|
||||
}
|
||||
|
||||
if (availability.apm) {
|
||||
return "apm";
|
||||
}
|
||||
|
||||
if (availability.spark) {
|
||||
return "spark";
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
export const getEffectiveStoreFilter = (
|
||||
storeFilter: StoreFilter,
|
||||
availability: SourceAvailability,
|
||||
): StoreFilter | null => {
|
||||
if (storeFilter === "spark") {
|
||||
return availability.spark ? "spark" : null;
|
||||
}
|
||||
|
||||
if (storeFilter === "apm") {
|
||||
return availability.apm ? "apm" : null;
|
||||
}
|
||||
|
||||
if (availability.spark && availability.apm) {
|
||||
return "both";
|
||||
}
|
||||
|
||||
if (availability.spark) {
|
||||
return "spark";
|
||||
}
|
||||
|
||||
if (availability.apm) {
|
||||
return "apm";
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
export const isOriginUsable = (
|
||||
storeFilter: StoreFilter,
|
||||
origin: "spark" | "apm",
|
||||
availability: SourceAvailability,
|
||||
): boolean => {
|
||||
return isOriginEnabled(storeFilter, origin) && availability[origin];
|
||||
};
|
||||
|
||||
export const getAllowedInstalledOrigin = (
|
||||
storeFilter: StoreFilter,
|
||||
requestedOrigin: "spark" | "apm",
|
||||
availability: SourceAvailability,
|
||||
): "spark" | "apm" | null => {
|
||||
if (isOriginUsable(storeFilter, requestedOrigin, availability)) {
|
||||
return requestedOrigin;
|
||||
}
|
||||
|
||||
return getDefaultInstalledOrigin(storeFilter, availability);
|
||||
};
|
||||
@@ -5,6 +5,7 @@ import type {
|
||||
UpdateCenterSnapshot,
|
||||
DownloadItem,
|
||||
UpdateCenterStartTask,
|
||||
StoreFilter,
|
||||
} from "@/global/typedefinition";
|
||||
import { downloads, getNextUpdateDownloadId } from "@/global/downloadStatus";
|
||||
import { APM_STORE_BASE_URL } from "@/global/storeConfig";
|
||||
@@ -28,8 +29,8 @@ export interface UpdateCenterStore {
|
||||
someSelected: ComputedRef<boolean>;
|
||||
bind: () => void;
|
||||
unbind: () => void;
|
||||
open: () => Promise<void>;
|
||||
refresh: () => Promise<void>;
|
||||
open: (storeFilter?: StoreFilter) => Promise<void>;
|
||||
refresh: (storeFilter?: StoreFilter) => Promise<void>;
|
||||
ignoreItem: (packageName: string, newVersion: string) => Promise<void>;
|
||||
unignoreItem: (packageName: string, newVersion: string) => Promise<void>;
|
||||
toggleSelection: (taskKey: string) => void;
|
||||
@@ -129,15 +130,15 @@ export const createUpdateCenterStore = (): UpdateCenterStore => {
|
||||
isBound = false;
|
||||
};
|
||||
|
||||
const open = async (): Promise<void> => {
|
||||
const open = async (storeFilter: StoreFilter = "both"): Promise<void> => {
|
||||
resetSessionState();
|
||||
const nextSnapshot = await window.updateCenter.open();
|
||||
const nextSnapshot = await window.updateCenter.open(storeFilter);
|
||||
applySnapshot(nextSnapshot);
|
||||
isOpen.value = true;
|
||||
};
|
||||
|
||||
const refresh = async (): Promise<void> => {
|
||||
const nextSnapshot = await window.updateCenter.refresh();
|
||||
const refresh = async (storeFilter: StoreFilter = "both"): Promise<void> => {
|
||||
const nextSnapshot = await window.updateCenter.refresh(storeFilter);
|
||||
applySnapshot(nextSnapshot);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user