测试极速成片
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
const QUICK_JOB_KEY = "airshelf:quick-create-job";
|
||||
|
||||
export function isQuickCreateBusy(project?: { quick_create_status?: string } | null) {
|
||||
return project?.quick_create_status === "queued" || project?.quick_create_status === "running";
|
||||
}
|
||||
|
||||
export function lockedQuickCreateProject<T extends { quick_create_status?: string }>(
|
||||
listed?: T | null,
|
||||
detailed?: T | null,
|
||||
): T | null {
|
||||
const source = detailed || listed || null;
|
||||
return source && isQuickCreateBusy(source) ? source : null;
|
||||
}
|
||||
|
||||
export function withQuickCreateStatus<T extends { id: string; quick_create_status?: string }>(
|
||||
items: T[],
|
||||
projectId: string,
|
||||
status: string,
|
||||
): T[] {
|
||||
return items.map((item) => (item.id === projectId ? { ...item, quick_create_status: status } : item));
|
||||
}
|
||||
|
||||
export function readQuickCreateJobId() {
|
||||
try {
|
||||
return localStorage.getItem(QUICK_JOB_KEY) || "";
|
||||
} catch {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
export function rememberQuickCreateJob(jobId?: string) {
|
||||
if (!jobId) return;
|
||||
try {
|
||||
localStorage.setItem(QUICK_JOB_KEY, jobId);
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}
|
||||
|
||||
export function forgetQuickCreateJob() {
|
||||
try {
|
||||
localStorage.removeItem(QUICK_JOB_KEY);
|
||||
} catch {
|
||||
/* ignore */
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user