Files
igny8/frontend/src/config/pages/delete-modal.config.ts
IGNY8 VPS (Salman) 8bb4c5d016 Add new fields to TasksSerializer and enhance auto_generate_content_task with detailed step tracking
- Updated TasksSerializer to include 'primary_keyword', 'secondary_keywords', 'tags', and 'categories'.
- Enhanced auto_generate_content_task to track progress with detailed steps, including initialization, preparation, AI call, parsing, and saving.
- Updated progress modal to reflect new phases and improved animation for smoother user experience.
- Adjusted routing and configuration for content and drafts pages in the frontend.
2025-11-10 13:17:48 +00:00

66 lines
2.8 KiB
TypeScript

/**
* Delete Modal Configuration
* Dynamic delete confirmation modal content based on current page/table type
*/
export interface DeleteModalConfig {
title: string; // e.g., "Delete Keywords" or "Delete Cluster"
singleItemMessage: string; // Message for single item deletion
multipleItemsMessage: (count: number) => string; // Message for multiple items (receives count)
itemNameSingular: string; // e.g., "keyword", "cluster"
itemNamePlural: string; // e.g., "keywords", "clusters"
}
export const deleteModalConfigs: Record<string, DeleteModalConfig> = {
'/planner/keywords': {
title: 'Delete Keywords',
singleItemMessage: 'You are about to delete this keyword. This action cannot be undone.',
multipleItemsMessage: (count: number) => `You are deleting ${count} keywords. This action cannot be undone.`,
itemNameSingular: 'keyword',
itemNamePlural: 'keywords',
},
'/planner/clusters': {
title: 'Delete Clusters',
singleItemMessage: 'You are about to delete this cluster. All associated keywords will remain but will no longer be grouped under this cluster.',
multipleItemsMessage: (count: number) => `You are deleting ${count} clusters. All associated keywords will remain but will no longer be grouped under these clusters.`,
itemNameSingular: 'cluster',
itemNamePlural: 'clusters',
},
'/planner/ideas': {
title: 'Delete Ideas',
singleItemMessage: 'You are about to delete this idea. This action cannot be undone.',
multipleItemsMessage: (count: number) => `You are deleting ${count} ideas. This action cannot be undone.`,
itemNameSingular: 'idea',
itemNamePlural: 'ideas',
},
'/writer/tasks': {
title: 'Delete Tasks',
singleItemMessage: 'You are about to delete this task. This action cannot be undone.',
multipleItemsMessage: (count: number) => `You are deleting ${count} tasks. This action cannot be undone.`,
itemNameSingular: 'task',
itemNamePlural: 'tasks',
},
'/writer/content': {
title: 'Delete Drafts',
singleItemMessage: 'You are about to delete this draft. This action cannot be undone.',
multipleItemsMessage: (count: number) => `You are deleting ${count} drafts. This action cannot be undone.`,
itemNameSingular: 'draft',
itemNamePlural: 'drafts',
},
'/writer/published': {
title: 'Delete Published Content',
singleItemMessage: 'You are about to delete this published content. This action cannot be undone.',
multipleItemsMessage: (count: number) => `You are deleting ${count} published content items. This action cannot be undone.`,
itemNameSingular: 'published content',
itemNamePlural: 'published content items',
},
};
/**
* Get delete modal config for a given route
*/
export function getDeleteModalConfig(route: string): DeleteModalConfig | null {
return deleteModalConfigs[route] || null;
}