Sprints 7–9: electronic medical card, splash home, plate design system

- Sprint 7: Electronic patient card (MedcardScreen rewritten with hero
  passport, 5 tabs, bidirectional links with past appointments)
- Sprint 8: 5th home variant "Светлая плитка" (HomeSplashScreen)
- Sprint 9: Tweaks "Дизайн" section (Клод / Прозрачная карточка) with
  plate versions of Profile, Appts, Appt details and Medcard in
  screens-plate.jsx; fallback to Клод for other screens

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
AR 15 M4
2026-04-21 19:19:55 +05:00
parent bf1c78ff14
commit e9a8171252
8 changed files with 1328 additions and 80 deletions
+17 -2
View File
@@ -1,6 +1,6 @@
import React, { useEffect, useMemo, useState } from 'react';
import { TabBar } from './components.jsx';
import { HomeCardsScreen, HomeListScreen, HomeFeedScreen, HomeTimelineXScreen } from './screens/screens-home.jsx';
import { HomeCardsScreen, HomeListScreen, HomeFeedScreen, HomeTimelineXScreen, HomeSplashScreen } from './screens/screens-home.jsx';
import {
BookingSpecsScreen, BookingDoctorScreen, BookingTimeScreen,
BookingConfirmScreen, BookingSuccessScreen,
@@ -18,11 +18,26 @@ import { ArticlesScreen, ArticleDetailScreen } from './screens/screens-articles.
import { HomeV2Screen, SearchScreen, ContactsScreen, PricesScreen } from './screens/screens-v2.jsx';
import { DevColorsScreen, DevExamplesScreen } from './screens/screens-dev.jsx';
import { DocsScreen } from './screens/screens-docs.jsx';
import { ProfilePlateScreen, ApptsPlateScreen, ApptDetailPlateScreen, MedcardPlateScreen } from './screens/screens-plate.jsx';
function renderScreen(screenId, nav, ctx) {
const parts = screenId.split(':');
const id = parts[0];
const HOME = { cards: HomeCardsScreen, list: HomeListScreen, feed: HomeFeedScreen, timelineX: HomeTimelineXScreen }[ctx.homeVariant] || HomeCardsScreen;
const plate = ctx.design === 'plate';
// В plate-режиме главная всегда «Светлая плитка», независимо от homeVariant
const homeVariant = plate ? 'splash' : ctx.homeVariant;
const HOME = { cards: HomeCardsScreen, list: HomeListScreen, feed: HomeFeedScreen, timelineX: HomeTimelineXScreen, splash: HomeSplashScreen }[homeVariant] || HomeCardsScreen;
// Plate-подмены (fallback на Клод если plate-версии нет)
if (plate) {
switch (id) {
case 'profile': return <ProfilePlateScreen nav={nav} ctx={ctx} />;
case 'appts': return <ApptsPlateScreen nav={nav} />;
case 'appt': return <ApptDetailPlateScreen nav={nav} apptId={parts[1]} />;
case 'medcard': return <MedcardPlateScreen nav={nav} />;
}
}
switch (id) {
case 'home': return <HOME nav={nav} ctx={ctx} />;
case 'home-v2': return <HomeV2Screen nav={nav} ctx={ctx} />;