Files
kandev/apps/web/components/task/mobile/use-mobile-task-rename.ts
T
2026-08-06 12:39:20 +02:00

39 lines
1.3 KiB
TypeScript

"use client";
import { useCallback, useState } from "react";
import { useTaskActions } from "@/hooks/use-task-actions";
import { useToast } from "@/components/toast-provider";
import { useTranslation } from "react-i18next";
export function useMobileTaskRename() {
const { t } = useTranslation();
const { renameTaskById } = useTaskActions();
const { toast } = useToast();
const [renamingTask, setRenamingTask] = useState<{ id: string; title: string } | null>(null);
const handleRenameTask = useCallback((taskId: string, currentTitle: string) => {
setRenamingTask({ id: taskId, title: currentTitle });
}, []);
const handleRenameSubmit = useCallback(
async (newTitle: string) => {
if (!renamingTask) return;
try {
await renameTaskById(renamingTask.id, newTitle);
} catch (error) {
console.error("Failed to rename task:", error);
toast({
title: t("task:failedToRenameTask"),
description: error instanceof Error ? error.message : t("task:failedToRenameTask"),
variant: "error",
});
} finally {
setRenamingTask(null);
}
},
[renameTaskById, renamingTask, toast, t],
);
return { renamingTask, setRenamingTask, handleRenameTask, handleRenameSubmit };
}