()
| 26 | * via the FSM's editPersonalDetails and editPayment inputs. |
| 27 | */ |
| 28 | export function ReviewStep() { |
| 29 | const { context, handle, canHandle } = useCheckout(); |
| 30 | |
| 31 | const personal = context.personalDetails; |
| 32 | const payment = context.paymentDetails; |
| 33 | |
| 34 | return ( |
| 35 | <div className="step-card"> |
| 36 | <h2 className="step-card__title">Review Your Order</h2> |
| 37 | |
| 38 | {/* Personal Details section */} |
| 39 | <div className="review-section"> |
| 40 | <div className="review-section__header"> |
| 41 | <span className="review-section__title">Personal Details</span> |
| 42 | <button |
| 43 | type="button" |
| 44 | className="review-section__edit" |
| 45 | onClick={() => handle("editPersonalDetails")} |
| 46 | disabled={!canHandle("editPersonalDetails")} |
| 47 | > |
| 48 | Edit |
| 49 | </button> |
| 50 | </div> |
| 51 | |
| 52 | {personal ? ( |
| 53 | <> |
| 54 | <div className="review-data-row"> |
| 55 | <span className="review-data-label">Name</span> |
| 56 | <span className="review-data-value">{personal.name}</span> |
| 57 | </div> |
| 58 | <div className="review-data-row"> |
| 59 | <span className="review-data-label">Email</span> |
| 60 | <span className="review-data-value">{personal.email}</span> |
| 61 | </div> |
| 62 | <div className="review-data-row"> |
| 63 | <span className="review-data-label">Address</span> |
| 64 | <span className="review-data-value">{personal.address}</span> |
| 65 | </div> |
| 66 | <div className="review-data-row"> |
| 67 | <span className="review-data-label">City / ZIP</span> |
| 68 | <span className="review-data-value"> |
| 69 | {personal.city}, {personal.zip} |
| 70 | </span> |
| 71 | </div> |
| 72 | </> |
| 73 | ) : ( |
| 74 | <p style={{ color: "#8b949e", fontSize: "0.875rem" }}>No data</p> |
| 75 | )} |
| 76 | </div> |
| 77 | |
| 78 | {/* Payment section */} |
| 79 | <div className="review-section"> |
| 80 | <div className="review-section__header"> |
| 81 | <span className="review-section__title">Payment</span> |
| 82 | <button |
| 83 | type="button" |
| 84 | className="review-section__edit" |
| 85 | onClick={() => handle("editPayment")} |
nothing calls this directly
no test coverage detected