diff --git a/src/components/CreateUpdatePost.jsx b/src/components/CreateUpdatePost.jsx
index 8be4a61..3d433ff 100644
--- a/src/components/CreateUpdatePost.jsx
+++ b/src/components/CreateUpdatePost.jsx
@@ -54,6 +54,9 @@ export default function CreateUpdatePost({ onClose, onSuccess, initialData }) {
// Единый хук для создания и обновления
const { save, loading: saving, error: apiError } = usePostMutation();
+ // Состояние для модалки-результата (успех / блокировка контента)
+ const [resultModal, setResultModal] = useState(null); // null | "success" | "blocked"
+
// Внутри компонента, рядом с другими хуками
const initialCoords = isEdit && initialData.latitude && initialData.longitude
? { latitude: initialData.latitude, longitude: initialData.longitude }
@@ -124,14 +127,22 @@ export default function CreateUpdatePost({ onClose, onSuccess, initialData }) {
// save(id, data): id = null → POST (создание), id = string → PUT (обновление)
const result = await save(isEdit ? initialData.id : null, data);
- if (result) {
- onSuccess(result);
- onClose();
+ if (!result) {
+ // Ошибка уже записана в apiError, либо null если неизвестная
+ return;
+ }
+ if (result.blocked) {
+ setResultModal("blocked");
+ return;
+ }
+ if (result.data) {
+ setResultModal("success");
}
};
return (
- // Клик по фону (не по самой модалке) закрывает её
+ <>
+ {/* Клик по фону (не по самой модалке) закрывает её */}
e.target === e.currentTarget && onClose()}>
@@ -309,5 +320,45 @@ export default function CreateUpdatePost({ onClose, onSuccess, initialData }) {
+
+ {/* ── Модалка-результат после отправки ── */}
+ {resultModal && (
+ {
+ if (e.target === e.currentTarget) {
+ if (resultModal === "success") {
+ onSuccess?.();
+ }
+ onClose();
+ }
+ }}>
+
+
+ {resultModal === "blocked" ? "✕" : "✓"}
+
+
+ {resultModal === "blocked"
+ ? t('post.blockedTitle')
+ : t('post.successTitle')}
+
+
+ {resultModal === "blocked"
+ ? t('post.blockedText')
+ : t('post.successText')}
+
+
+
+
+ )}
+ >
);
}
\ No newline at end of file
diff --git a/src/config/authConstants.js b/src/config/authConstants.js
index 377a919..d4f1eda 100644
--- a/src/config/authConstants.js
+++ b/src/config/authConstants.js
@@ -9,7 +9,7 @@ import headphonesIcon from '../assets/headphones.png';
import watchIcon from '../assets/watch.png';
import glassesIcon from '../assets/glasses.png';
-export const API_URL = process.env.REACT_APP_API_URL || "http://192.168.1.68:8080";
+export const API_URL = process.env.REACT_APP_API_URL || "http://localhost:8080";
export function getImageUrl(filename) {
if (!filename) return null;
diff --git a/src/hooks/usePostMutation.js b/src/hooks/usePostMutation.js
index fe2bf5f..2828386 100644
--- a/src/hooks/usePostMutation.js
+++ b/src/hooks/usePostMutation.js
@@ -11,11 +11,10 @@ import { API_URL } from "../config/authConstants";
*
* Автоматически добавляет заголовок Authorization с JWT-токеном.
*
- * @returns {{
- * save: (id: string|null, data: FormData) => Promise