From 5429b272f9d9634e2d54fa69cb4561fe619a1e56 Mon Sep 17 00:00:00 2001 From: HotelSync Date: Tue, 17 Mar 2026 00:47:24 +0300 Subject: [PATCH] Fix mobile UI bugs from screenshots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Notifications panel: fixed positioning on mobile (full-width below topbar, no more overflow behind calendar) - BookingModal: two-column layout stacks vertically on mobile (flex-col sm:flex-row) - TariffsPage cards: price + actions merged into right column, no text overlap - DiscountsPage cards: same fix, price text reduced to text-lg - ReviewsPage: action buttons moved inside content div (no longer overlap guest name) - RoomCategoriesPage: edit/delete buttons stack as column, 'Номера' text hidden on mobile - PosPage: show desktop-only message on mobile instead of broken layout Co-Authored-By: Claude Sonnet 4.6 --- src/components/bookings/BookingModal.tsx | 2 +- src/components/layout/Topbar.tsx | 2 +- src/pages/DiscountsPage.tsx | 12 ++--- src/pages/PosPage.tsx | 17 ++++++ src/pages/ReviewsPage.tsx | 4 +- src/pages/RoomCategoriesPage.tsx | 36 ++++++------- src/pages/TariffsPage.tsx | 68 ++++++++++++------------ 7 files changed, 78 insertions(+), 63 deletions(-) diff --git a/src/components/bookings/BookingModal.tsx b/src/components/bookings/BookingModal.tsx index 63d4c73..634a4d7 100644 --- a/src/components/bookings/BookingModal.tsx +++ b/src/components/bookings/BookingModal.tsx @@ -223,7 +223,7 @@ export function BookingModal({ open, draft, rooms, onClose, onSave, existing }: {/* ── BOOKING TAB ── */} {activeTab === 'booking' && (
-
+
{/* ── LEFT COLUMN ── */}
{/* Room */} diff --git a/src/components/layout/Topbar.tsx b/src/components/layout/Topbar.tsx index 6916878..7aa6daa 100644 --- a/src/components/layout/Topbar.tsx +++ b/src/components/layout/Topbar.tsx @@ -58,7 +58,7 @@ function NotificationsPanel({ onClose }: { onClose: () => void }) { : notifications return ( -
+
{/* Header */}
diff --git a/src/pages/DiscountsPage.tsx b/src/pages/DiscountsPage.tsx index 13e8040..bcc487a 100644 --- a/src/pages/DiscountsPage.tsx +++ b/src/pages/DiscountsPage.tsx @@ -376,18 +376,15 @@ export function DiscountsPage() {
- {/* Value badge */} -
+ {/* Value + Actions (right column) */} +

{discount.value === 100 ? 'Бесплатно' : `−${discount.value}${discount.valueType === 'percent' ? '%' : ' ₽'}`}

-
- - {/* Actions */} -
+
+
))} diff --git a/src/pages/PosPage.tsx b/src/pages/PosPage.tsx index 338bc51..811ab70 100644 --- a/src/pages/PosPage.tsx +++ b/src/pages/PosPage.tsx @@ -202,6 +202,22 @@ export function PosPage() { return (
+ {/* ── Desktop-only notice on mobile ── */} +
+
+ +
+
+

Касса — только десктоп

+

+ Откройте приложение на компьютере или планшете для работы с кассой +

+
+
+ + {/* ── Full POS UI (desktop only) ── */} +
+ {/* ── Top bar ── */}
@@ -875,6 +891,7 @@ export function PosPage() {
)} +
{/* end desktop-only wrapper */}
) } diff --git a/src/pages/ReviewsPage.tsx b/src/pages/ReviewsPage.tsx index 7636f9f..e55da22 100644 --- a/src/pages/ReviewsPage.tsx +++ b/src/pages/ReviewsPage.tsx @@ -735,7 +735,7 @@ export function ReviewsPage() { review.status === 'pending' && 'border-red-300 dark:border-red-700/60 bg-red-50/50 dark:bg-red-900/10', )} > -
+
{review.rating}
@@ -808,7 +808,7 @@ export function ReviewsPage() {
{/* Actions */} -
+
{review.status === 'pending' && !review.reply && replyId !== review.id && ( <> + +
- -
diff --git a/src/pages/TariffsPage.tsx b/src/pages/TariffsPage.tsx index fb00878..c98e98b 100644 --- a/src/pages/TariffsPage.tsx +++ b/src/pages/TariffsPage.tsx @@ -508,40 +508,40 @@ export function TariffsPage() {
- {/* Price modifier */} -
-

0 ? 'text-amber-600 dark:text-amber-400' - : tariff.modifierValue < 0 ? 'text-emerald-600 dark:text-emerald-400' - : 'text-slate-500', - )}> - {modLabel} -

-

к базовой цене

-
- - {/* Actions */} -
- - - + {/* Price + Actions (right column) */} +
+
+

0 ? 'text-amber-600 dark:text-amber-400' + : tariff.modifierValue < 0 ? 'text-emerald-600 dark:text-emerald-400' + : 'text-slate-500', + )}> + {modLabel} +

+

к базе

+
+
+ + + +
)