feat(article): support regenerating failed articles
This commit is contained in:
@@ -6,9 +6,26 @@ export interface ArticleActionState {
|
||||
showPreview: boolean
|
||||
showCopy: boolean
|
||||
showDelete: boolean
|
||||
showRegenerate: boolean
|
||||
}
|
||||
|
||||
export function resolveArticleActionState(generateStatus?: string | null): ArticleActionState {
|
||||
export interface ArticleActionSource {
|
||||
generate_status?: string | null
|
||||
source_type?: string | null
|
||||
}
|
||||
|
||||
const regeneratableSourceTypes = new Set(['template', 'custom_generation', 'imitation', 'kol'])
|
||||
|
||||
export function resolveArticleActionState(
|
||||
articleOrGenerateStatus?: ArticleActionSource | string | null,
|
||||
): ArticleActionState {
|
||||
const generateStatus =
|
||||
typeof articleOrGenerateStatus === 'string'
|
||||
? articleOrGenerateStatus
|
||||
: articleOrGenerateStatus?.generate_status
|
||||
const sourceType =
|
||||
typeof articleOrGenerateStatus === 'string' ? undefined : articleOrGenerateStatus?.source_type
|
||||
|
||||
if (generateStatus === 'completed') {
|
||||
return {
|
||||
showPublish: true,
|
||||
@@ -16,6 +33,7 @@ export function resolveArticleActionState(generateStatus?: string | null): Artic
|
||||
showPreview: true,
|
||||
showCopy: true,
|
||||
showDelete: true,
|
||||
showRegenerate: false,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +44,7 @@ export function resolveArticleActionState(generateStatus?: string | null): Artic
|
||||
showPreview: false,
|
||||
showCopy: false,
|
||||
showDelete: true,
|
||||
showRegenerate: false,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +55,7 @@ export function resolveArticleActionState(generateStatus?: string | null): Artic
|
||||
showPreview: false,
|
||||
showCopy: false,
|
||||
showDelete: true,
|
||||
showRegenerate: sourceType ? regeneratableSourceTypes.has(sourceType) : false,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +65,7 @@ export function resolveArticleActionState(generateStatus?: string | null): Artic
|
||||
showPreview: true,
|
||||
showCopy: false,
|
||||
showDelete: true,
|
||||
showRegenerate: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user