Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e4cefc6c41 | |||
| 2e5b8a4dca |
@@ -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 {
|
||||
// числовые поля привести к числам
|
||||
|
||||
@@ -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 />
|
||||
|
||||
Reference in New Issue
Block a user