Compare commits

..

2 Commits

Author SHA1 Message Date
Deforest6342 e4cefc6c41 fix: correct translate in movement 2026-06-24 21:18:03 +03:00
Deforest6342 2e5b8a4dca feat: add validate new item from admin panel 2026-06-24 21:03:27 +03:00
2 changed files with 26 additions and 4 deletions
+20
View File
@@ -26,6 +26,26 @@ function ItemFormModal({ item, onClose, onSaved }) {
setForm({ ...form, [field]: e.target.value });
const handleSubmit = async () => {
if (!form.name.trim()) {
alert("Введите название товара");
return;
}
if (!form.category.trim()) {
alert("Введите категорию");
return;
}
if (!form.price || Number(form.price) <= 0) {
alert("Введите корректную цену");
return;
}
if (form.stock === "" || Number(form.stock) < 0) {
alert("Введите остаток (0 или больше)");
return;
}
if (!isEdit && !file) {
alert("Добавьте картинку товара");
return;
}
setSaving(true);
try {
// числовые поля привести к числам
+5 -3
View File
@@ -8,7 +8,11 @@ export default function Dashboard() {
const [isLoaded, setIsLoaded] = useState(false);
useEffect(() => {
requestAnimationFrame(() => {
requestAnimationFrame(() => {
setIsLoaded(true);
});
});
}, []);
return (
@@ -19,9 +23,7 @@ export default function Dashboard() {
>
<div className="mt-10 md:mt-37.5 text-2xl md:text-6xl font-bold text-white flex flex-col">
<div
className={`transition-all duration-1000 ease-out ${isLoaded
? "translate-x-0 opacity-100"
: "-transition-x-full opacity-0"
className={`transition-all duration-1000 ease-out ${isLoaded ? "translate-x-0" : "-translate-x-[100vw]"
}`}
>
Свежие морепродукты <br />