* Move frontend to root * Fix backend issues * Remove old routes * Setup Dockerfile * Fix today /tags multiplt requests issue * Fix race condition on today's inbox widget * Fix cors development issue * Fix CORS for Dockerfile * Fix dockerised settings for infinite loop * Fix translation issues * fixup! Fix translation issues --------- Co-authored-by: Your Name <you@example.com>
72 lines
2.5 KiB
TypeScript
72 lines
2.5 KiB
TypeScript
import { Project } from "../../entities/Project";
|
|
import {
|
|
FolderIcon,
|
|
CalendarIcon,
|
|
InboxIcon,
|
|
ArrowRightIcon,
|
|
ClockIcon,
|
|
MoonIcon,
|
|
CheckCircleIcon,
|
|
Bars4Icon,
|
|
} from '@heroicons/react/24/outline';
|
|
|
|
export const getTitleAndIcon = (
|
|
query: URLSearchParams,
|
|
projects: Project[],
|
|
t: (key: string, options?: any) => string
|
|
) => {
|
|
try {
|
|
// Default titles as fallbacks in case translation function fails
|
|
const defaultTitles = {
|
|
project: 'Project',
|
|
today: 'Today',
|
|
inbox: 'Inbox',
|
|
next: 'Next Actions',
|
|
upcoming: 'Upcoming',
|
|
someday: 'Someday',
|
|
completed: 'Completed',
|
|
allTasks: 'All Tasks'
|
|
};
|
|
const projectId = query.get('project_id');
|
|
if (projectId) {
|
|
const project = projects.find((p) => p.id?.toString() === projectId);
|
|
return { title: project ? project.name : t('sidebar.projects'), icon: FolderIcon };
|
|
}
|
|
|
|
try {
|
|
if (query.get('type') === 'today') {
|
|
return { title: t('tasks.today'), icon: CalendarIcon };
|
|
}
|
|
if (query.get('type') === 'inbox') {
|
|
return { title: t('sidebar.inbox'), icon: InboxIcon };
|
|
}
|
|
if (query.get('type') === 'next') {
|
|
return { title: t('sidebar.nextActions'), icon: ArrowRightIcon };
|
|
}
|
|
if (query.get('type') === 'upcoming') {
|
|
return { title: t('sidebar.upcoming'), icon: ClockIcon };
|
|
}
|
|
if (query.get('type') === 'someday') {
|
|
return { title: t('taskViews.someday') || defaultTitles.someday, icon: MoonIcon };
|
|
}
|
|
if (query.get('status') === 'done') {
|
|
return { title: t('sidebar.completed'), icon: CheckCircleIcon };
|
|
}
|
|
return { title: t('sidebar.allTasks'), icon: Bars4Icon };
|
|
} catch (e) {
|
|
console.error("Translation error for task view title:", e);
|
|
|
|
// Return appropriate fallback based on type or status
|
|
if (query.get('type') === 'today') return { title: defaultTitles.today, icon: CalendarIcon };
|
|
if (query.get('type') === 'inbox') return { title: defaultTitles.inbox, icon: InboxIcon };
|
|
if (query.get('type') === 'next') return { title: defaultTitles.next, icon: ArrowRightIcon };
|
|
if (query.get('type') === 'upcoming') return { title: defaultTitles.upcoming, icon: ClockIcon };
|
|
if (query.get('type') === 'someday') return { title: defaultTitles.someday, icon: MoonIcon };
|
|
if (query.get('status') === 'done') return { title: defaultTitles.completed, icon: CheckCircleIcon };
|
|
return { title: defaultTitles.allTasks, icon: Bars4Icon };
|
|
}
|
|
} catch (error) {
|
|
console.error("Error in getTitleAndIcon:", error);
|
|
return { title: "Tasks", icon: Bars4Icon };
|
|
}
|
|
};
|