/
alt3rmann
/
label-studio
Обзор
Документация
Войти
/
alt3rmann
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
web/apps/labelstudio/src/pages/CreateProject/utils/useDraftProject.js
40 строк
1 KB
Nick Skriabin
fix: DIA-2097: [FE] Create Project modal closes automatically when user is at Home Page (#7272)
28 мар 2025, 14:37
Не верифицирован
28 мар 2025, 14:37
99b97f4
Код
Авторство
О чём код?
import { projectAtom } from "apps/labelstudio/src/providers/ProjectProvider"; import { useAtom } from "jotai"; import React, { useEffect } from "react"; import { useAPI } from "../../../providers/ApiProvider"; export const useDraftProject = () => { const api = useAPI(); const [project, setProject] = useAtom(projectAtom); const fetchDraftProject = React.useCallback(async () => { const response = await api.callApi("projects"); // always create the new one const projects = response?.results ?? []; const lastIndex = projects.length; let projectNumber = lastIndex + 1; let projectName = `New Project #${projectNumber}`; // dirty hack to get proper non-duplicate name while (projects.find(({ title }) => title === projectName)) { projectNumber++; projectName = `New Project #${projectNumber}`; } const draft = await api.callApi("createProject", { body: { title: projectName, }, }); console.log({ draft }); if (draft) setProject(draft); }, []); useEffect(() => { fetchDraftProject(); }, []); return { project, setProject }; };