-
Ihr Zuhause. Ihr Portal.
-
- 3 Wohnanlagen · 50 Wohnungen · eine Verwaltung
+
+ {/* Linke Spalte: Hero + Ansprechpartner */}
+
+
+

+
+
+
Ihr Zuhause. Ihr Portal.
+
3 Wohnanlagen · 50 Wohnungen · persönliche Verwaltung
+
+
+

+
+
Joseph Hinterstein
+
Ihr Ansprechpartner · Immobilienverwaltung
+
+ Persönlich erreichbar über das Nachrichten-Modul oder per E-Mail –
+ wir kümmern uns um Ihr Anliegen.
+
+
+
+
+
-
+ {/* Rechte Spalte: Login-/Registrier-Karte */}
+
Willkommen im Mieterportal
-
- Analog zum Schulportal der Hocks-Gruppe: alle Mietangelegenheiten
- digital an einem Ort – schnell, transparent und ohne Papierkram.
+
+ Alle Mietangelegenheiten digital an einem Ort – schnell, transparent
+ und ohne Papierkram. Melden Sie sich mit Ihrem Konto an.
{features.map((f) => (
- -
-
+
-
+
{f}
))}
-
-
-
-
+
+
+
+
+
-

+ {modus === 'anmelden' ? (
+
+ ) : (
+
+ )}
+
-
diff --git a/src/pages/Messages.tsx b/src/pages/Messages.tsx
index e801321..a77f2b9 100644
--- a/src/pages/Messages.tsx
+++ b/src/pages/Messages.tsx
@@ -12,14 +12,16 @@ import {
DialogFooter,
} from '@/components/ui/dialog'
import { Label } from '@/components/ui/label'
-import { useStore, DEMO_TENANT, DEMO_UNIT_ID } from '../store/store'
+import { useStore } from '../store/store'
function NewMessageDialog({ onCreated }: { onCreated: (id: string) => void }) {
- const { dispatch, role } = useStore()
+ const { dispatch, role, me, meineEinheit } = useStore()
const [open, setOpen] = useState(false)
const [subject, setSubject] = useState('')
const [text, setText] = useState('')
+ const verwaltungsName = 'Joseph Hinterstein'
+
const submit = () => {
if (!subject.trim() || !text.trim()) return
const id = `m-${Date.now()}`
@@ -27,8 +29,8 @@ function NewMessageDialog({ onCreated }: { onCreated: (id: string) => void }) {
type: 'newThread',
thread: {
id,
- unitId: role === 'tenant' ? DEMO_UNIT_ID : 'hs-1',
- tenant: role === 'tenant' ? DEMO_TENANT : 'Hocks Verwaltung',
+ unitId: role === 'tenant' ? meineEinheit.id : 'hs-1',
+ tenant: role === 'tenant' ? (me?.name ?? 'Mieter') : verwaltungsName,
subject: subject.trim(),
unreadByAdmin: true,
unreadByTenant: false,
@@ -36,7 +38,7 @@ function NewMessageDialog({ onCreated }: { onCreated: (id: string) => void }) {
{
id: `${id}-1`,
from: role,
- author: role === 'tenant' ? DEMO_TENANT : 'Hocks Verwaltung',
+ author: role === 'tenant' ? (me?.name ?? 'Mieter') : verwaltungsName,
text: text.trim(),
at: new Date().toLocaleString('de-DE'),
},
@@ -82,9 +84,11 @@ function NewMessageDialog({ onCreated }: { onCreated: (id: string) => void }) {
}
export default function Messages() {
- const { threads, role, dispatch, units } = useStore()
+ const { threads, role, dispatch, units, me, meineEinheit } = useStore()
+ const meinName = me?.name ?? 'Mieter'
+ const verwaltungsName = 'Joseph Hinterstein'
const visible = role === 'tenant'
- ? threads.filter((t) => t.unitId === DEMO_UNIT_ID)
+ ? threads.filter((t) => t.unitId === meineEinheit.id)
: threads
const [activeId, setActiveId] = useState(visible[0]?.id ?? '')
const active = visible.find((t) => t.id === activeId) ?? visible[0]
@@ -105,7 +109,7 @@ export default function Messages() {
message: {
id: `${active.id}-${Date.now()}`,
from: role,
- author: role === 'tenant' ? DEMO_TENANT : 'Hocks Verwaltung',
+ author: role === 'tenant' ? meinName : verwaltungsName,
text: draft.trim(),
at: new Date().toLocaleString('de-DE'),
},
@@ -120,7 +124,7 @@ export default function Messages() {
Nachrichten
{role === 'tenant'
- ? 'Direktdraht zur Hocks Verwaltung – Antwort meist innerhalb eines Werktags'
+ ? 'Direktdraht zur Verwaltung – Antwort meist innerhalb eines Werktags'
: 'Mieter-Kommunikation über alle 50 Wohnungen'}
{role === 'admin'
? `${active.tenant}`
- : 'Hocks Verwaltung · Hauptstraße 12'}
+ : 'Joseph Hinterstein · Hinterstein Immobilien'}