import { Project } from "../../entities/Project"; export const getDescription = ( query: URLSearchParams, projects: Project[], t: (key: string, options?: any) => string ): string => { try { // Default descriptions as fallbacks in case translation function fails const defaultDescriptions = { project: "Project tasks", today: "Tasks due today or scheduled for immediate attention", inbox: "Uncategorized tasks without project or due date", next: "Tasks that are actionable in the near future", upcoming: "Tasks scheduled for the upcoming week", someday: "Tasks without urgency or specific due date", completed: "Tasks you've completed", allTasks: "All tasks from different projects and priorities" }; // Check for project_id first const projectId = query.get('project_id'); if (projectId) { try { const project = projects.find((p) => p.id?.toString() === projectId); if (project) { return t("taskViews.project.withName", { projectName: project.name }); } else { return t("taskViews.project.noName"); } } catch (e) { console.error("Translation error for project description:", e); // Fallback with project name if available const project = projects.find((p) => p.id?.toString() === projectId); return project ? `Tasks for project: ${project.name}` : defaultDescriptions.project; } } // Then check for type and status parameters try { if (query.get('type') === 'today') { return t("taskViews.today"); } if (query.get('type') === 'inbox') { return t("taskViews.inbox"); } if (query.get('type') === 'next') { return t("taskViews.next"); } if (query.get('type') === 'upcoming') { return t("taskViews.upcoming"); } if (query.get('type') === 'someday') { return t("taskViews.someday"); } if (query.get('status') === 'done') { return t("taskViews.completed"); } return t("taskViews.allTasks"); } catch (e) { console.error("Translation error for task view description:", e); // Return appropriate fallback based on type or status if (query.get('type') === 'today') return defaultDescriptions.today; if (query.get('type') === 'inbox') return defaultDescriptions.inbox; if (query.get('type') === 'next') return defaultDescriptions.next; if (query.get('type') === 'upcoming') return defaultDescriptions.upcoming; if (query.get('type') === 'someday') return defaultDescriptions.someday; if (query.get('status') === 'done') return defaultDescriptions.completed; return defaultDescriptions.allTasks; } } catch (error) { console.error("Error in getDescription:", error); return "Tasks overview"; } };