feat: add locale support for date formatting in task components

This commit is contained in:
2025-10-14 13:13:16 +02:00
parent a1b9c05673
commit bd0345df1a
4 changed files with 27 additions and 7 deletions

View File

@@ -8,6 +8,7 @@ import Badge from "@/components/ui/Badge";
import TaskStatusDropdownSimple from "@/components/TaskStatusDropdownSimple";
import { Input } from "@/components/ui/Input";
import { formatDistanceToNow, parseISO } from "date-fns";
import { pl, enUS } from "date-fns/locale";
import { formatDate } from "@/lib/utils";
import PageContainer from "@/components/ui/PageContainer";
import PageHeader from "@/components/ui/PageHeader";
@@ -17,7 +18,10 @@ import { LoadingState } from "@/components/ui/States";
import { useTranslation } from "@/lib/i18n";
export default function ProjectTasksPage() {
const { t } = useTranslation();
const { t, language } = useTranslation();
// Get locale for date-fns
const locale = language === 'pl' ? pl : enUS;
const [allTasks, setAllTasks] = useState([]);
const [filteredTasks, setFilteredTasks] = useState([]);
const [searchTerm, setSearchTerm] = useState("");
@@ -381,6 +385,7 @@ export default function ProjectTasksPage() {
Added{" "}
{formatDistanceToNow(parseISO(task.date_added), {
addSuffix: true,
locale: locale
})}
</span>
{task.max_wait_days > 0 && (

View File

@@ -13,11 +13,17 @@ import {
parseISO,
formatDistanceToNow,
} from "date-fns";
import { pl, enUS } from "date-fns/locale";
import { formatDate } from "@/lib/utils";
import { useTranslation } from "@/lib/i18n";
export default function ProjectTasksDashboard() {
const { language } = useTranslation();
const [allTasks, setAllTasks] = useState([]);
const [loading, setLoading] = useState(true);
// Get locale for date-fns
const locale = language === 'pl' ? pl : enUS;
const [filter, setFilter] = useState("all");
const [searchTerm, setSearchTerm] = useState("");
@@ -283,7 +289,7 @@ export default function ProjectTasksDashboard() {
const addedDate = task.date_added.includes("T")
? parseISO(task.date_added)
: new Date(task.date_added + "T00:00:00");
return formatDistanceToNow(addedDate, { addSuffix: true });
return formatDistanceToNow(addedDate, { addSuffix: true, locale: locale });
} catch (error) {
return task.date_added;
}

View File

@@ -14,12 +14,16 @@ import {
parseISO,
formatDistanceToNow,
} from "date-fns";
import { pl, enUS } from "date-fns/locale";
import { formatDate } from "@/lib/utils";
import { useTranslation } from "@/lib/i18n";
import { useSession } from "next-auth/react";
export default function ProjectTasksList() {
const { t } = useTranslation();
const { t, language } = useTranslation();
// Get locale for date-fns
const locale = language === 'pl' ? pl : enUS;
const { data: session } = useSession();
const [allTasks, setAllTasks] = useState([]);
const [loading, setLoading] = useState(true);
@@ -366,6 +370,7 @@ export default function ProjectTasksList() {
const completedDate = new Date(task.date_completed);
return formatDistanceToNow(completedDate, {
addSuffix: true,
locale: locale
});
} catch (error) {
return task.date_completed;
@@ -380,7 +385,7 @@ export default function ProjectTasksList() {
{(() => {
try {
const startedDate = new Date(task.date_started);
return formatDistanceToNow(startedDate, { addSuffix: true });
return formatDistanceToNow(startedDate, { addSuffix: true, locale: locale });
} catch (error) {
return task.date_started;
}
@@ -393,7 +398,7 @@ export default function ProjectTasksList() {
const addedDate = task.date_added.includes("T")
? parseISO(task.date_added)
: new Date(task.date_added);
return formatDistanceToNow(addedDate, { addSuffix: true });
return formatDistanceToNow(addedDate, { addSuffix: true, locale: locale });
} catch (error) {
return task.date_added;
}

View File

@@ -5,10 +5,14 @@ import Button from "./ui/Button";
import Badge from "./ui/Badge";
import { formatDate } from "@/lib/utils";
import { formatDistanceToNow, parseISO } from "date-fns";
import { pl, enUS } from "date-fns/locale";
import { useTranslation } from "@/lib/i18n";
export default function TaskCommentsModal({ task, isOpen, onClose }) {
const { t } = useTranslation();
const { t, language } = useTranslation();
// Get locale for date-fns
const locale = language === 'pl' ? pl : enUS;
const [notes, setNotes] = useState([]);
const [loading, setLoading] = useState(true);
const [newNote, setNewNote] = useState("");
@@ -159,7 +163,7 @@ export default function TaskCommentsModal({ task, isOpen, onClose }) {
const date = dateString.includes("T") ? parseISO(dateString) : new Date(dateString);
return {
label,
relative: formatDistanceToNow(date, { addSuffix: true }),
relative: formatDistanceToNow(date, { addSuffix: true, locale: locale }),
absolute: formatDate(date, { includeTime: true })
};
} catch (error) {