demo-app/pages/cart/checkout.js (64 lines of code) (raw):
import React from "react";
import Header from "../../components/Header";
import Footer from "../../components/Footer";
import Recommendations from "../../components/Recommendations";
import { renderTotalCost, getShippingCost } from "../../components/Price";
import * as storage from "../../utils/storage";
const Checkout = ({}) => {
const NoOrders = () => (
<>
<Header />
<main role="main">
<div className="py-5">
<div className="container bg-light py-3 px-lg-5">
<>
<h3>No orders found</h3>
</>
</div>
</div>
</main>
<Footer />
</>
);
if (!global.window) {
return <NoOrders />;
}
const orderDetails = storage.get("order");
if (!orderDetails) {
return <NoOrders />;
}
// clear order
storage.del("order");
const { order_id, tracking_id, items, recommendations } = orderDetails;
let Rendered = null;
if (items && items.length > 0) {
Rendered = () => (
<>
<div className="row mt-5 py-2">
<div className="col">
<h3>Your order is complete!</h3>
<p>
Order Confirmation ID: <strong>{order_id}</strong>
<br />
Shipping Tracking ID: <strong>{tracking_id}</strong>
</p>
<p>
Shipping Cost: <strong>{getShippingCost()}</strong>
<br />
Total Paid: <strong>USD {renderTotalCost(items)}</strong>
</p>
<a className="btn btn-primary" href="/" role="button">
Browse other products →{" "}
</a>
</div>
</div>
</>
);
} else {
Rendered = <NoOrders />;
}
return (
<>
<Header />
<main role="main">
<div className="py-5">
<div className="container bg-light py-3 px-lg-5">
<Rendered />
<hr />
{recommendations && recommendations.length > 0 && (
<Recommendations recommendations={recommendations} />
)}
</div>
</div>
</main>
<Footer />
</>
);
};
export default Checkout;