Task #743: sidebar «إدارة القاعات» — clearer labels + submenu distinction

- ar.json: protocol.tabs.bookings «حجز القاعات»→«الحجوزات», bookingSettings «إعدادات الحجوزات»→«الإعدادات»
- en.json: "Room Bookings"→"Bookings", "Booking Settings"→"Settings"
- Same keys also serve as page headings (accepted per task), so headings change too.
- protocol.tsx: submenu children of roomsGroup and gifts group now wrapped in a
  container with md:ms-4 md:border-s-2 md:border-slate-300 md:ps-1 (vertical
  guide line + indent, RTL-safe logical props); removed per-button md:ps-6.
  Mobile horizontal layout unchanged.
- tx-os tsc clean; architect review passed.
This commit is contained in:
Replit Agent
2026-07-09 10:10:49 +00:00
parent 271a150246
commit 41c6184b92
3 changed files with 42 additions and 36 deletions
+2 -2
View File
@@ -1670,8 +1670,8 @@
"dashboard": "لوحة المعلومات",
"roomsGroup": "إدارة القاعات",
"roomsDashboard": "لوحة القاعات",
"bookingSettings": "إعدادات الحجوزات",
"bookings": "حجز القاعات",
"bookingSettings": "الإعدادات",
"bookings": "الحجوزات",
"external": "اجتماعات خارجية",
"giftsGroup": "الهدايا",
"gifts": "المستودع",
+2 -2
View File
@@ -1543,8 +1543,8 @@
"dashboard": "Dashboard",
"roomsGroup": "Rooms Management",
"roomsDashboard": "Rooms Dashboard",
"bookingSettings": "Booking Settings",
"bookings": "Room Bookings",
"bookingSettings": "Settings",
"bookings": "Bookings",
"external": "External Meetings",
"giftsGroup": "Gifts",
"gifts": "Warehouse",
+12 -6
View File
@@ -1490,13 +1490,14 @@ export default function ProtocolPage() {
)}
/>
</button>
{open &&
children.map(({ key: ck, label: cl, icon: CIcon }) => (
{open && (
<div className="flex md:flex-col gap-1 md:ms-4 md:border-s-2 md:border-slate-300 md:ps-1">
{children.map(({ key: ck, label: cl, icon: CIcon }) => (
<button
key={ck}
onClick={() => setTab(ck)}
className={cn(
"flex items-center gap-2 px-3 py-2 text-sm whitespace-nowrap transition-colors md:w-full md:justify-start md:ps-6",
"flex items-center gap-2 px-3 py-2 text-sm whitespace-nowrap transition-colors md:w-full md:justify-start",
tab === ck
? "bg-sky-500 text-white"
: "text-slate-600 hover:bg-slate-200",
@@ -1507,6 +1508,8 @@ export default function ProtocolPage() {
</button>
))}
</div>
)}
</div>
);
}
if (key === "gifts") {
@@ -1538,13 +1541,14 @@ export default function ProtocolPage() {
)}
/>
</button>
{open &&
children.map(({ key: ck, label: cl, icon: CIcon }) => (
{open && (
<div className="flex md:flex-col gap-1 md:ms-4 md:border-s-2 md:border-slate-300 md:ps-1">
{children.map(({ key: ck, label: cl, icon: CIcon }) => (
<button
key={ck}
onClick={() => setTab(ck)}
className={cn(
"flex items-center gap-2 px-3 py-2 text-sm whitespace-nowrap transition-colors md:w-full md:justify-start md:ps-6",
"flex items-center gap-2 px-3 py-2 text-sm whitespace-nowrap transition-colors md:w-full md:justify-start",
tab === ck
? "bg-sky-500 text-white"
: "text-slate-600 hover:bg-slate-200",
@@ -1555,6 +1559,8 @@ export default function ProtocolPage() {
</button>
))}
</div>
)}
</div>
);
}
return (