Landing: - hero cu un singur CTA (scoase „Vezi cum arată", „Rezervă fără cont" și nota) - „Spații deschise rezervării acum" pe poziția 2, în bandă evidențiată cu accent; listează toate proprietățile publice active (fără filtrul list_on_landing) - showcase-ul mutat în bandă neutră etichetată „Demonstrație" ca să nu se confunde cu controale reale Pagini publice: - PublicNav.vue + PublicFooter.vue extrase și refolosite de Landing, LegalPage și noul PublicShell.vue (login/register/book primesc header/footer de landing, cu cele 8 teme; tokenii --color-* remapați la paleta landing în scope-ul shell) - pe mobil: nav compact cu meniu hamburger (drawer ancorat dreapta, iconițe lucide, închidere la tap în afară/Escape); logo-ul Romfast rămâne în footer Fix-uri: - QR-ul proprietății encodează URL-ul cu slug (fallback pe id) - deep-link-urile către rutele manager/admin nu mai sar la /dashboard: guard-ul așteaptă authStore.ready înainte de verificarea rolurilor - drawer-ul nu se mai închidea singur la tap pe iconiță (listener pe pointerdown + gardă pentru target detașat după re-render) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SpaceCalendar Component
Component Vue.js 3 pentru afișarea rezervărilor unui spațiu folosind FullCalendar.
Utilizare
<template>
<div>
<h2>Rezervări pentru Sala A</h2>
<SpaceCalendar :space-id="1" />
</div>
</template>
<script setup lang="ts">
import SpaceCalendar from '@/components/SpaceCalendar.vue'
</script>
Props
| Prop | Type | Required | Description |
|---|---|---|---|
spaceId |
number |
Yes | ID-ul spațiului pentru care se afișează rezervările |
Features
- View Switcher: Month, Week, Day views
- Status Colors:
- Pending: Orange (#FFA500)
- Approved: Green (#4CAF50)
- Rejected: Red (#F44336)
- Canceled: Gray (#9E9E9E)
- Auto-refresh: Se încarcă automat rezervările când se schimbă data
- Responsive: Se adaptează la dimensiunea ecranului
API Integration
Componenta folosește bookingsApi.getForSpace(spaceId, start, end) pentru a încărca rezervările.
TypeScript Types
Componenta este complet type-safe și folosește interfețele din /src/types/index.ts.