SkinFirts includes a multi-step payment flow that guides patients from selecting a payment method all the way through to a booking confirmation screen. The flow is accessible from the Profile menu and covers card entry, a pre-payment booking summary, and a success state — all implemented as separate stack screens.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/BhushanBadhe39/SkinFirts/llms.txt
Use this file to discover all available pages before exploring further.
Payment Flow
Navigate to Payment
The payment flow is reached by tapping Payment Method (
wallet-outline icon) in the ProfileMenu on the Profile tab. This navigates to the Payment route in the stack navigator, which renders the PaymentMethod screen.Select a Payment Method
The
PaymentMethod screen presents available payment options inside a RadioButton.Group from react-native-paper. The currently selected option is tracked via value state, initialised to '0' (Add New Card).Options are split into two labelled sections — Credit & Debit Card and More Payment Option — each rendered using the PaymentOption component.Add a New Card
Tapping Add New Card navigates to the
AddPaymentCard screen (via the redirect prop on PaymentOption). The screen displays an SVG card graphic at the top and a form with the following fields:- Card Holder Name — full-pill
InputBox, placeholder'John Doe' - Card Number — full-pill
InputBox, placeholder'000 000 000 0' - Expiry Date —
TextInputwithroundness: 999theme, placeholder'04/28' - CVV —
TextInputwithroundness: 999theme, placeholder'0000'
PaymentSummary screen.Review the Payment Summary
The
PaymentSummary screen shows a full booking invoice before the patient commits to payment. It renders inside a ScrollView and includes:- A large amount display (
$ 100.00) on a primary-coloured banner - Doctor profile image, name (
Dr. Bhushan Badhe), department (Psychiatrist), aribbon-outlinebadge icon, star rating (5), and review count (60) - Invoice rows: Date / Hour (
Month 24, Year / 10:00 AM), Duration (30 Minutes), Amount ($100), Duration (30 Minutes), Total ($100), and Payment Method (Card, with a “Change” underlined link)
PaymentConfirmation screen.View Payment Confirmation
The
PaymentConfirmation screen is a full-page success state rendered on a primary-coloured background. It displays:- A large
checkmark-circle-outlineicon (moderateScale(200)) - “Congratulations” and “Successfully Paid!” headings
- A bordered info card with the text “You have Successfully booked an Appointment with”, the doctor name Dr. Bhushan Badhe, and two
IconInfoBoxrows: acalendar-outlinebox showingMonth 24, Yearand analarm-outlinebox showing10:00 AM
Payment Options
The four payment options available on thePaymentMethod screen are listed below. Note that the option names match the source exactly — “Apple Play” and “Google Play” are the labels used in the code.
| Option | Ionicons Icon | value | Notes |
|---|---|---|---|
| Add New Card | card-outline | '0' | Redirects to AddPaymentCard on press |
| Apple Play | logo-apple | '1' | No redirect configured |
| Paypal | logo-paypal | '2' | No redirect configured |
| Google Play | logo-google | '3' | No redirect configured |
PaymentOption Component
PaymentOption is a reusable pressable row used across the payment selection screen. It combines a round icon button, a label, and a RadioButton into a single horizontally-laid-out pill. The icon background is always colors.shadeLight.
redirect prop is optional. When provided, navigation.navigate(redirect) is called after the onPress handler, allowing the same component to both update radio state and trigger navigation in one tap.
Navigation Routes
The payment screens form a linear stack. The route names used withnavigation.navigate() are:
| Route Name | Screen Component | Navigated To From |
|---|---|---|
Payment | PaymentMethod | ProfileMenu → Payment Method item |
AddPaymentCard | AddPaymentCard | PaymentOption with redirect='AddPaymentCard' |
PaymentSummary | PaymentSummary | AddPaymentCard → Save Card button |
PaymentConfirmation | PaymentConfirmation | PaymentSummary → Pay Now button |
Payment processing in SkinFirts is UI-only. No payment gateway (Stripe, Braintree, etc.) is integrated — the flow is a complete front-end prototype. The amounts, dates, and doctor details shown on
PaymentSummary and PaymentConfirmation are static placeholder values hardcoded in the components.