feat: add locale support for date formatting in task components
This commit is contained in:
@@ -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 && (
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user