// Screens 9-14: Auth & onboarding, Empty/Success states, Order history // ═════════════════════════════════════════════════════════════ // 9) ONBOARDING (3 slides paginated) // ═════════════════════════════════════════════════════════════ function ScreenOnboarding() { return (
{/* Skip + brand */}
J
Janaushadhi
Skip
{/* Illustration area */}
{/* Decorative shapes */}
{/* Floating pill */}
{/* Small badges around */}
28 min ⚡
{/* Copy + pagination */}
Genuine medicines,
delivered in minutes
Express delivery from licensed pharmacies near you. All medicines verified by our in-house pharmacists.
{[0,1,2].map(i => (
))}
); } // ═════════════════════════════════════════════════════════════ // 10) LOGIN / OTP // ═════════════════════════════════════════════════════════════ function ScreenLogin() { return (
Verify your
number
We sent a 6-digit code to +91 98••• 12••• · Change
{/* OTP boxes */}
{['8','3','9','2','',''].map((d, i) => (
{d} {i === 4 &&
}
))}
{/* Resend timer */}
Resend code in 00:24
{/* Auto-read note */}
We're reading the code from your SMS automatically.
{/* Continue button */}
By continuing, you agree to our Terms & Privacy policy
{/* Keypad mock */}
{['1','2','3','4','5','6','7','8','9','','0','⌫'].map((k, i) => (
{k}
))}
); } // ═════════════════════════════════════════════════════════════ // 11) EMPTY CART // ═════════════════════════════════════════════════════════════ function ScreenCartEmpty() { return (
Your cart
Nothing here yet
{/* Empty illustration */}
Your cart is empty
Add medicines, wellness essentials, or book a lab test to get started.
{/* Suggestions */}
{[ { name: 'Refill: Metformin SR', sub: '3 days left in your strip', Icon: IconRx, hue: 'blue' }, { name: 'Reorder: Cetirizine 10mg', sub: 'Last bought 12 days ago', Icon: IconPill, hue: 'mint' }, { name: 'Book HbA1c test', sub: 'Due based on your records', Icon: IconScan, hue: 'amber' }, ].map((s, i) => (
{s.name}
{s.sub}
))}
); } // ═════════════════════════════════════════════════════════════ // 12) ORDER SUCCESS / CONFIRMATION // ═════════════════════════════════════════════════════════════ function ScreenOrderSuccess() { return (
{/* Hero check */}
{/* burst dots */} {[0,60,120,180,240,300].map(a => (
))}
Order placed!
We've sent confirmation to +91 98••• 12•••
{/* Order summary card */}
ORDER ID
#JN-2841-09
● Confirmed
Arrives by 6:40 PM today
3 items · ₹248 paid via UPI
{/* Delivery progress mini */}
{[ { label: 'Pharmacist verifies your Rx', time: 'in ~5 min', done: true }, { label: 'Order packed at Indiranagar store', time: 'by 6:00 PM', done: false, active: true }, { label: 'Delivered to your door', time: 'by 6:40 PM', done: false }, ].map((s, i, a) => (
{s.done && }
{i < a.length - 1 &&
}
{s.label}
{s.time}
))}
{/* Rewards earned */}
You earned 24 JANA+ points
Use them on your next order
{/* CTA buttons */}
); } // ═════════════════════════════════════════════════════════════ // 13) ORDER HISTORY (list) // ═════════════════════════════════════════════════════════════ function ScreenOrderHistory() { const orders = [ { id: '#JN-2841-09', date: 'Today, 5:42 PM', status: 'Packing', tone: 'blue', items: 3, total: 248, hue: 'blue' }, { id: '#JN-2812-06', date: 'May 24', status: 'Delivered', tone: 'mint', items: 2, total: 412, hue: 'mint' }, { id: '#JN-2784-13', date: 'May 18', status: 'Delivered', tone: 'mint', items: 5, total: 1284, hue: 'amber' }, { id: '#JN-2750-02', date: 'May 12', status: 'Refunded', tone: 'rose', items: 1, total: 95, hue: 'rose' }, { id: '#JN-2701-08', date: 'May 04', status: 'Delivered', tone: 'mint', items: 4, total: 562, hue: 'blue' }, ]; return (
Your orders
24 orders · ₹14,820 lifetime
{/* Filter chips */}
{['All', 'Active', 'Delivered', 'Cancelled', 'Refunded'].map((f, i) => (
{f}
))}
{/* Orders */}
{orders.map((o, i) => { const toneColors = { blue: { bg: C.blue50, fg: C.blue600 }, mint: { bg: C.mint100, fg: '#0F5A48' }, rose: { bg: C.rose100, fg: '#7A1C1F' }, }; const t = toneColors[o.tone]; return (
{o.id}
{o.date}
● {o.status}
{o.items > 2 && (
+{o.items - 2}
)}
₹{o.total}
{o.items} items
{o.status === 'Delivered' ? ( <> ) : o.status === 'Packing' ? ( ) : ( )}
); })}
); } // ═════════════════════════════════════════════════════════════ // 14) ORDER DETAIL (single past order) // ═════════════════════════════════════════════════════════════ function ScreenOrderDetail() { return (
Order detail
#JN-2812-06 · May 24
{/* Delivered banner */}
Delivered on May 24, 6:18 PM
Handed over to Aarav
Rate
{/* Items */}
{[ { name: 'Pan-D Capsules', sub: 'Pantoprazole · 10 caps · ×2', price: 216, hue: 'mint' }, { name: 'Vitamin D3 60K', sub: '4 capsules · ×1', price: 196, hue: 'amber' }, ].map((p, i) => (
{p.name}
{p.sub}
Buy again →
₹{p.price}
))}
{/* Delivery + payment cards */}
Home
Apt 4B, Maple Residency, 100ft Road, Indiranagar 560038
{[ ['Items (2)', '₹412'], ['Discount', '−₹60', C.mint500], ['Delivery', 'FREE', C.mint500], ['Tax', 'Incl.'], ].map(([k, v, col], i) => (
{k} {v}
))}
Total paid ₹352
Paid via UPI · aarav@oksbi · 24 May, 5:48 PM
{/* Help row */}
); } Object.assign(window, { ScreenOnboarding, ScreenLogin, ScreenCartEmpty, ScreenOrderSuccess, ScreenOrderHistory, ScreenOrderDetail });