Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e4cefc6c41 | |||
| 2e5b8a4dca |
@@ -26,6 +26,26 @@ function ItemFormModal({ item, onClose, onSaved }) {
|
|||||||
setForm({ ...form, [field]: e.target.value });
|
setForm({ ...form, [field]: e.target.value });
|
||||||
|
|
||||||
const handleSubmit = async () => {
|
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);
|
setSaving(true);
|
||||||
try {
|
try {
|
||||||
// числовые поля привести к числам
|
// числовые поля привести к числам
|
||||||
|
|||||||
@@ -8,7 +8,11 @@ export default function Dashboard() {
|
|||||||
const [isLoaded, setIsLoaded] = useState(false);
|
const [isLoaded, setIsLoaded] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
requestAnimationFrame(() => {
|
||||||
setIsLoaded(true);
|
setIsLoaded(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
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="mt-10 md:mt-37.5 text-2xl md:text-6xl font-bold text-white flex flex-col">
|
||||||
<div
|
<div
|
||||||
className={`transition-all duration-1000 ease-out ${isLoaded
|
className={`transition-all duration-1000 ease-out ${isLoaded ? "translate-x-0" : "-translate-x-[100vw]"
|
||||||
? "translate-x-0 opacity-100"
|
|
||||||
: "-transition-x-full opacity-0"
|
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
Свежие морепродукты <br />
|
Свежие морепродукты <br />
|
||||||
|
|||||||
Reference in New Issue
Block a user