Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 21 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@
"axios": "^1.12.2",
"lucide-react": "^0.544.0",
"radix-ui": "^1.4.3",
"react": "19.1.1",
"react-dom": "19.1.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-helmet-async": "^2.0.5",
"react-redux": "^9.2.0",
"react-router-dom": "^7.9.3"
Expand Down
173 changes: 173 additions & 0 deletions src/components/Footer/BottomFooter.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
import React from 'react';
import { Link } from 'react-router-dom';

const BottomFooter = () => {
const paymentMethods = [
{
name: 'Amazon Pay',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://upload.wikimedia.org/wikipedia/commons/d/de/Amazon_icon.png"
alt="Amazon Pay"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'American Express',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://www.americanexpress.com/content/dam/amex/us/merchant/supplies-uplift/product/images/CHCKOUTAMEX.jpg"
alt="American Express"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'Apple Pay',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://logos-world.net/wp-content/uploads/2022/03/Apple-Pay-Logo.png"
alt="Apple Pay"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'Google Pay',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQq_S1I-kRo8EmqBe0MSfTSRdtAflozeeDoBQ&s"
alt="Google Pay"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'Mastercard',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://logos-world.net/wp-content/uploads/2020/09/Mastercard-Logo-2016-2020.png"
alt="Mastercard"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'PayPal',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://png.pngtree.com/element_our/png/20180723/paypal-logo-icon-png_44635.jpg"
alt="PayPal"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'Shop Pay',
component: (
<div className="w-full h-full bg-purple-600 rounded flex items-center justify-center">
<img
src="https://digiteon.com/wp-content/uploads/2025/05/about-shop-pay.jpg"
alt="Shop Pay"
className="w-8 h-6 object-contain"
/>
</div>
)
},
{
name: 'Visa',
component: (
<div className="w-full h-full bg-white rounded flex items-center justify-center">
<img
src="https://upload.wikimedia.org/wikipedia/commons/5/5e/Visa_Inc._logo.svg"
alt="Visa"
className="w-8 h-6 object-contain"
/>
</div>
)
},
];

const policyLinks = [
{ name: 'Refund Policy', path: '/return-policy' },
{ name: 'Privacy Policy', path: '/privacy-policy' },
{ name: 'Terms of Service', path: '/terms-of-service' },
{ name: 'Shipping Policy', path: '/shipping-policy' },
];

return (
<div>
{/* FDA Disclaimer - Middle Section */}
<div className="bg-slate-800 px-8 py-5">
<div className="max-w-full mx-auto">
<p className="text-lg text-center text-white leading-relaxed tracking-wide">
**The Food and Drug Administration has not evaluated these statements. This product is not meant to diagnose, treat, cure, or prevent any illness.
</p>
</div>
</div>

{/* Bottom Footer Content */}
<div className="bg-gray-800 text-white px-8 py-8">
<div className="max-w-full mx-auto">
<div className="flex flex-col lg:flex-row justify-between items-start lg:items-center gap-6">
{/* Left Side */}
<div className="flex flex-col space-y-6">
<div>
<p className="text-2xl text-white leading-relaxed">
© 2025 Core<span class="text-4xl text-red-600">X</span> Nutrition

</p>
<p className="text-lg text-white mt-3 leading-relaxed">
Powered by: <span className="text-white">Open Code Chicago</span>
</p>
</div>

{/* Policy Links */}
<div className="flex flex-wrap gap-4 text-base leading-relaxed">
{policyLinks.map((link) => (
<Link
key={link.name}
to={link.path}
className="text-white hover:text-gray-300 transition-colors duration-200"
>
{link.name}
</Link>
))}
</div>
</div>

{/* Right Side - Payment Methods */}
<div className="flex flex-col items-start lg:items-end space-y-3">
<div className="flex flex-wrap gap-2">
{paymentMethods.map((method) => (
<div
key={method.name}
className="flex items-center justify-center w-12 h-8 rounded border border-gray-600 hover:border-gray-500 transition-colors duration-200"
title={method.name}
>
{method.component}
</div>
))}
</div>
</div>
</div>
</div>
</div>
</div>
);
};

export default BottomFooter;
1 change: 0 additions & 1 deletion src/components/Footer/index.js

This file was deleted.

7 changes: 7 additions & 0 deletions src/components/Footer/index.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import BottomFooter from "./BottomFooter";

const Footer = () => {
return <BottomFooter />;
};

export default Footer;
51 changes: 51 additions & 0 deletions src/pages/ShippingPolicy/ShippingPolicy.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import React from 'react';

const ShippingPolicy = () => {
return (
<div className="min-h-screen bg-white">
<div className="max-w-4xl mx-auto px-6 py-12">
<h1 className="text-4xl font-bold text-gray-900 mb-8">Shipping Policy</h1>

<div className="prose prose-lg max-w-none">
<p className="text-gray-600 mb-6">
Last updated: January 2025
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">1. Shipping Information</h2>
<p className="text-gray-700 mb-6">
CoreX Nutrition ships to all 50 states within the United States. We currently do not ship internationally.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">2. Processing Time</h2>
<p className="text-gray-700 mb-6">
Orders are typically processed within 1-2 business days. Processing time may be longer during peak seasons or holidays.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">3. Shipping Methods</h2>
<ul className="text-gray-700 mb-6 list-disc pl-6">
<li>Standard Shipping (5-7 business days)</li>
<li>Expedited Shipping (2-3 business days)</li>
<li>Overnight Shipping (1 business day)</li>
</ul>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">4. Shipping Costs</h2>
<p className="text-gray-700 mb-6">
Shipping costs are calculated at checkout based on your location and selected shipping method. Free shipping is available on orders over $75.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">5. Delivery</h2>
<p className="text-gray-700 mb-6">
Once your order ships, you will receive a tracking number via email. Please ensure someone is available to receive the package at the delivery address.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">6. Contact Information</h2>
<p className="text-gray-700 mb-6">
If you have any questions about our shipping policy, please contact us at [email protected]
</p>
</div>
</div>
</div>
);
};

export default ShippingPolicy;
44 changes: 44 additions & 0 deletions src/pages/TermsOfService/TermsOfService.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import React from 'react';

const TermsOfService = () => {
return (
<div className="min-h-screen bg-white">
<div className="max-w-4xl mx-auto px-6 py-12">
<h1 className="text-4xl font-bold text-gray-900 mb-8">Terms of Service</h1>

<div className="prose prose-lg max-w-none">
<p className="text-gray-600 mb-6">
Last updated: January 2025
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">1. Acceptance of Terms</h2>
<p className="text-gray-700 mb-6">
By accessing and using CoreX Nutrition's website and services, you accept and agree to be bound by the terms and provision of this agreement.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">2. Use License</h2>
<p className="text-gray-700 mb-6">
Permission is granted to temporarily download one copy of the materials on CoreX Nutrition's website for personal, non-commercial transitory viewing only.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">3. Disclaimer</h2>
<p className="text-gray-700 mb-6">
The materials on CoreX Nutrition's website are provided on an 'as is' basis. CoreX Nutrition makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">4. Limitations</h2>
<p className="text-gray-700 mb-6">
In no event shall CoreX Nutrition or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on CoreX Nutrition's website, even if CoreX Nutrition or a CoreX Nutrition authorized representative has been notified orally or in writing of the possibility of such damage.
</p>

<h2 className="text-2xl font-semibold text-gray-900 mb-4">5. Contact Information</h2>
<p className="text-gray-700 mb-6">
If you have any questions about these Terms of Service, please contact us at [email protected]
</p>
</div>
</div>
</div>
);
};

export default TermsOfService;
7 changes: 5 additions & 2 deletions src/routes/RouterConfig.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const PrivacyPolicy = lazy(
() => import('../pages/PrivacyPolicy/PrivacyPolicyPage')
);
const ReturnPolicy = lazy(() => import('../pages/ReturnPolicy/ReturnPolicy'));
const TermsOfService = lazy(() => import('../pages/TermsOfService/TermsOfService'));
const ShippingPolicy = lazy(() => import('../pages/ShippingPolicy/ShippingPolicy'));
const About = lazy(() => import('../pages/About/About'));

// Router configuration
Expand All @@ -20,8 +22,9 @@ export const RouterConfig = () =>
<Route index element={<Home />} />
<Route path="accessibility" element={<Accessibility />} />
<Route path="privacy-policy" element={<PrivacyPolicy />} />
<Route path="return-policy" element={<ReturnPolicy />} />{' '}
{/* changed to singular for clarity */}
<Route path="return-policy" element={<ReturnPolicy />} />
<Route path="terms-of-service" element={<TermsOfService />} />
<Route path="shipping-policy" element={<ShippingPolicy />} />
<Route path="about-corex" element={<About />} />
</Route>
);