// Screens 20-22: Reminders, Notifications, Help & chat
// ═════════════════════════════════════════════════════════════
// 20) MEDICINE REMINDERS / SCHEDULE
// ═════════════════════════════════════════════════════════════
function ScreenReminders() {
const schedule = [
{ time: '08:00 AM', label: 'Morning · After breakfast', meds: [
{ name: 'Metformin SR 500mg', dose: '1 tab', hue: 'blue', taken: true },
{ name: 'Atorvastatin 10mg', dose: '1 tab', hue: 'mint', taken: true },
]},
{ time: '01:30 PM', label: 'Lunch', meds: [
{ name: 'Metformin SR 500mg', dose: '1 tab', hue: 'blue', taken: true },
]},
{ time: '06:30 PM', label: 'Evening · 30 min before dinner', meds: [
{ name: 'Pan-D', dose: '1 cap', hue: 'mint', taken: false, due: true },
{ name: 'Vitamin D3 60K', dose: '1 cap · weekly', hue: 'amber', taken: false, due: true },
]},
{ time: '10:00 PM', label: 'Bedtime', meds: [
{ name: 'Metformin SR 500mg', dose: '1 tab', hue: 'blue', taken: false },
]},
];
return (
Medicine reminders
Today, Wed 28 May
{/* Adherence ring */}
{/* SVG ring */}
3 of 5 doses taken
2 doses due at 6:30 PM
14-day streak · keep going!
{/* Week strip */}
{[
{ d: 'M', n: 26, p: 100, today: false },
{ d: 'T', n: 27, p: 80, today: false },
{ d: 'W', n: 28, p: 60, today: true },
{ d: 'T', n: 29, p: 0, today: false, future: true },
{ d: 'F', n: 30, p: 0, today: false, future: true },
{ d: 'S', n: 31, p: 0, today: false, future: true },
{ d: 'S', n: 1, p: 0, today: false, future: true },
].map((day, i) => (
{day.d}
{day.n}
{!day.future && (
)}
))}
{/* Schedule */}
{schedule.map((slot, si) => (
m.due) ? C.blue600 : C.ink700 }}>{slot.time}
{slot.label}
{slot.meds.some(m => m.due) &&
NOW}
{slot.meds.map((m, mi) => (
{m.taken ? (
) : (
)}
))}
))}
);
}
// ═════════════════════════════════════════════════════════════
// 21) NOTIFICATIONS
// ═════════════════════════════════════════════════════════════
function ScreenNotifications() {
const notifs = [
{ group: 'Today', items: [
{ kind: 'order', title: 'Your order is being packed', sub: '#JN-2841-09 · 3 items · est 6:40 PM', time: '5:55 PM', unread: true, Icon: IconBox, hue: 'blue' },
{ kind: 'rx', title: 'Rx verified by Dr. Mehta', sub: '"Looks good. Refill safe to dispense."', time: '5:48 PM', unread: true, Icon: IconRx, hue: 'mint' },
{ kind: 'reminder', title: '6:30 PM — Time for Pan-D', sub: '1 capsule, 30 min before dinner', time: '6:30 PM', unread: false, Icon: IconClock, hue: 'amber' },
]},
{ group: 'Yesterday', items: [
{ kind: 'offer', title: '20% off on vitamins this week', sub: 'Use code VIT20 · ends Sunday', time: '11:24 AM', unread: false, Icon: IconStar, hue: 'amber' },
{ kind: 'refill', title: 'Time to refill Metformin SR', sub: '3 days of stock left', time: '9:00 AM', unread: false, Icon: IconRx, hue: 'blue' },
]},
{ group: 'This week', items: [
{ kind: 'doctor', title: 'Dr. Priya replied to your follow-up', sub: '"Continue current dosage..."', time: 'Mon, 3:12 PM', unread: false, Icon: IconUser, hue: 'rose' },
]},
];
const palettes = {
blue: { bg: C.blue50, fg: C.blue600 },
mint: { bg: C.mint100, fg: C.mint500 },
amber:{ bg: C.amber100, fg: C.amber500 },
rose: { bg: C.rose100, fg: C.rose500 },
};
return (
{/* Filter row */}
{['All', 'Orders', 'Reminders', 'Offers'].map((f, i) => (
{f}
))}
{/* Groups */}
{notifs.map((g, gi) => (
{g.group.toUpperCase()}
{g.items.map((n, ni, a) => {
const p = palettes[n.hue];
return (
{n.unread &&
}
{n.title}
{n.sub}
{n.time}
);
})}
))}
);
}
// ═════════════════════════════════════════════════════════════
// 22) HELP & SUPPORT (Chat)
// ═════════════════════════════════════════════════════════════
function ScreenHelpChat() {
return (
{/* App bar */}
Janaushadhi Care
● Replies in seconds
{/* Chat area */}
{/* Day chip */}
Today, 5:42 PM
{/* Bot — greeting */}
J
Hi Aarav! How can we help today?
{/* Bot — quick reply chips */}
{['Track my order', 'Rx not verified', 'Wrong item received', 'Refund status', 'Other'].map((q, i) => (
{q}
))}
{/* User msg */}
Where is my order #JN-2841-09?
{/* Bot reply with card */}
J
Your order is being packed at our Indiranagar store and will be on its way in ~10 minutes.
#JN-2841-09
Packing now · ETA 6:40 PM
{/* Typing */}
{/* Composer */}
);
}
Object.assign(window, { ScreenReminders, ScreenNotifications, ScreenHelpChat });