Подтверждение удаления
Сделай компонент с кнопкой «Удалить проект». По клику открывается окно подтверждения с заголовком «Удалить проект?», текстом о том, что действие необратимо, и двумя кнопками: отмена и подтверждение удаления. Подтверждение вызывает переданный колбэк onConfirm.
confirm-delete__readme__claude-code__claude-opus-5__1 · 23.09.2026, 20:00:18 мск
Проверки пройдены
README · claude-opus-5 · Claude CodeКонтекст до задачи~798
Токенов на прогон10 718
Цена$0.042
Ошибок компилятора0
Первый вызов модели получил 9 539 токенов входа, включая системный промпт Claude Code. Контекст до задачи — оценка по длине текста, для русского текста она занижает число токенов в полтора-два раза.
Компилятор
Ошибок нет: все компоненты и пропсы существуют.
Линтер и покрытие
- inline-styleСтроки 26, 34Инлайновые стили вместо классов и токенов библиотеки
Компоненты библиотеки
JxButton, JxModal
Ожидались JxModal, JxButton · покрытие 100%
README (README.md, ~644)
Вход 2 · выход 1 179 · из кэша 8 233 · в кэш 1 304 · 15 с
Рендер
Код компонента
tsx49 строк
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
import { useState } from 'react';
import { JxButton, JxModal } from '@jinx-ui/react';
// Из README подтверждены только JxModal open/onOpenChange и JxButton variant="primary";
// title/footer модалки и вариант danger — предположение, сверьте с типами пакета.
type DeleteProjectButtonProps = {
projectName?: string;
onConfirm: () => void;
};
export default function DeleteProjectButton({ projectName, onConfirm }: DeleteProjectButtonProps) {
const [open, setOpen] = useState(false);
const handleConfirm = () => {
setOpen(false);
onConfirm();
};
return (
<>
<JxButton variant="primary" onClick={() => setOpen(true)}>
Удалить проект
</JxButton>
<JxModal open={open} onOpenChange={setOpen} title="Удалить проект?">
<p style={{ margin: 0, color: 'var(--jx-color-text-muted)' }}>
{projectName
? `Проект «${projectName}» будет удалён безвозвратно.`
: 'Проект будет удалён безвозвратно.'}{' '}
Это действие необратимо, отменить его не получится.
</p>
<div
style={{
display: 'flex',
justifyContent: 'flex-end',
gap: 'var(--jx-space-2)',
marginTop: 'var(--jx-space-4)',
}}
>
<JxButton onClick={() => setOpen(false)}>Отмена</JxButton>
<JxButton variant="primary" onClick={handleConfirm}>
Удалить
</JxButton>
</div>
</JxModal>
</>
);
}