// app-screens-2.jsx — Additional SURVIVAL screens (First Aid list, Map+download, Plant ID detail, Compass)
// ── First Aid list screen ──────────────────────────────────────────────────
function FirstAidScreen() {
const items = [
{ id: 1, title: 'Anaphylaxis (Severe Allergic Reaction)', desc: 'Severe systemic allergic reaction. Life-threatening without immediate treatment.', iconColor: APP.warning },
{ id: 2, title: 'Recognizing a Stroke (CVA)', desc: 'Stroke — blockage or bleeding of blood vessel in the brain. Every minute counts.', iconColor: '#7AA8E0' },
{ id: 3, title: 'Cardiac Arrest — Adult CPR', desc: 'Person is unresponsive and not breathing normally. Every second counts.', iconColor: APP.danger },
{ id: 4, title: 'Treating Heat Stroke', desc: 'Core body temperature rises above 40°C. A life-threatening emergency.', iconColor: APP.warning },
];
const tabs = ['Skills', 'Disasters', 'First Aid'];
const filters = ['All', 'Reanimation', 'Bleeding', 'Breathing', 'Trauma'];
return (
Survival
{/* Segmented tabs */}
{tabs.map((t, i) => (
{t}
))}
{/* Category filter chips */}
{filters.map((f, i) => (
{f}
))}
{/* Cards */}
{items.map(it => (
{Icons.plus(it.iconColor)}
{it.title}
{it.desc}
Life-threatening
))}
);
}
// ── Map + offline download sheet ───────────────────────────────────────────
function MapScreen({ downloadedIdx = 0 }) {
const regions = [
{ name: 'Nederland', size: '~180 MB', downloaded: true },
{ name: 'België', size: '~140 MB' },
{ name: 'Duitsland (NW)', size: '~220 MB' },
{ name: 'Noord-Frankrijk', size: '~190 MB' },
{ name: 'Zuid-Engeland', size: '~170 MB' },
{ name: 'Alpen Regio', size: '~260 MB' },
{ name: 'Scandinavië', size: '~500 MB' },
];
return (
Map
{/* Faux map */}
{/* Streets - vertical */}
{[15, 28, 42, 56, 70, 82].map(p => (
))}
{/* Streets - horizontal */}
{[20, 38, 56, 74].map(p => (
))}
{/* Diagonal */}
{/* Water on right */}
{/* Street label */}
Union Street
Bay Street
{/* Bottom sheet */}
Download Offline Maps
{Icons.close(APP.primary)}
{regions.map((r, i) => (
{i <= downloadedIdx ? (
{Icons.check(APP.primary)}
View
) : (
Download
)}
))}
);
}
// ── Plant ID detail (hero close-up screen) ─────────────────────────────────
function PlantIDScreen() {
return (
Plant Identification
{/* Image placeholder */}
{/* Faux leaf veins */}
{/* Crosshair scan */}
{/* Match badge */}
97% MATCH
Wood Sorrel
Oxalis acetosella
EDIBLE
EAT IN MODERATION
Sour-tasting clover-like leaves. Rich in vitamin C. Contains oxalic acid — avoid in large quantities or if you have kidney issues.
IDENTIFIED OFFLINE · NO DATA SENT
);
}
// ── Compass / navigation screen ────────────────────────────────────────────
function CompassScreen({ bearing = 0, lat = '60.4720°N', lng = '8.4689°E' }) {
const cx = 50, cy = 50, r = 38;
return (
Navigation
OFFLINE · GPS ONLY
{/* Compass dial */}
{/* Bearing readout */}
{Math.round(bearing)}°
TRUE NORTH
{/* Coordinates */}
);
}
Object.assign(window, { FirstAidScreen, MapScreen, PlantIDScreen, CompassScreen });