/
vshmidt
/
label-studio
Обзор
Документация
Войти
/
vshmidt
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
web/apps/labelstudio/src/pages/CreateProject/utils/useDraftProject.js
40 строк
1 KB
Marcel Canu
fix: UTC-361: Allow discarding project if is_draft=True (#8742)
31 окт 2025, 23:52
Не верифицирован
31 окт 2025, 23:52
f2f494a
Код
Авторство
О чём код?
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, is_draft: true, }, }); if (draft) setProject(draft); }, []); useEffect(() => { fetchDraftProject(); }, []); return { project, setProject }; };