fix: 404 Pages and responsiveness

This commit is contained in:
2025-09-26 08:29:42 +05:45
parent 8ecd9e6a37
commit 74e1081381
11 changed files with 335 additions and 32 deletions

View File

@@ -144,14 +144,14 @@ export const handle: Handle = async ({ event, resolve }) => {
// Only check authentication for routes under /(auth) // Only check authentication for routes under /(auth)
if (routeId?.startsWith('/(auth)')) { if (routeId?.startsWith('/(auth)')) {
if (!event.locals.authenticated) { if (!event.locals.authenticated) {
throw redirect(302, '/signin'); throw redirect(302, '/login');
} }
} }
// Redirect authenticated users away from auth pages // Redirect authenticated users away from auth pages
if ( if (
event.locals.authenticated && event.locals.authenticated &&
(event.url.pathname === '/signin' || event.url.pathname === '/register') (event.url.pathname === '/login' || event.url.pathname === '/register')
) { ) {
throw redirect(303, '/'); throw redirect(303, '/');
} }

View File

@@ -3,33 +3,13 @@
import { Phone, MapPin, Mail } from '@lucide/svelte'; import { Phone, MapPin, Mail } from '@lucide/svelte';
import { SIIcon } from '@willingtonortiz/svelte-simple-icons'; import { SIIcon } from '@willingtonortiz/svelte-simple-icons';
import { siFacebook, siInstagram, siTiktok } from 'simple-icons'; import { siFacebook, siInstagram, siTiktok } from 'simple-icons';
let { user } = $props();
</script> </script>
<footer class="mx-auto w-full bg-primary/10 px-12 pt-10 pb-4 max-md:px-4"> <footer class="mx-auto w-full bg-primary/10 px-12 pt-10 pb-4 max-md:px-4">
<div itemscope itemtype="https://schema.org/LocalBusiness" class="hidden">
<div itemprop="name">Korean Skin Care and Beauty Clinic</div>
<div>Phone: <span itemprop="telephone">+977 984936576</span></div>
<div>
Url: <span itemprop="url"
><a href="koreanskincareandclinic.com">koreanskincareandclinic.com</a></span
>
</div>
<meta
itemprop="openingHours"
style="display: none"
datetime="Mo,Tu,We,Th,Fr,Sa,Su 10:00-19:00"
/>
<div itemtype="http://schema.org/PostalAddress" itemscope="" itemprop="address">
<div itemprop="streetAddress">City Center</div>
<div>
<span itemprop="addressLocality">Kathmandu</span>, <span itemprop="addressRegion">KTM</span>
<span itemprop="postalCode">44600</span>
</div>
</div>
</div>
<div <div
class="grid w-full grid-cols-4 items-start justify-between gap-12 max-md:flex max-md:flex-col max-md:gap-4" class="mx-auto grid w-full max-w-screen-2xl grid-cols-4 items-start justify-between gap-12 max-md:flex max-md:flex-col max-md:gap-4"
> >
<div> <div>
<div class="flex flex-col gap-4"> <div class="flex flex-col gap-4">
@@ -62,13 +42,13 @@
<p class="text-lg font-semibold tracking-tight">About KSCBC</p> <p class="text-lg font-semibold tracking-tight">About KSCBC</p>
<ul class="flex flex-col gap-2"> <ul class="flex flex-col gap-2">
<li> <li>
<a href="/about-us" class="text-sm">About us</a> <a href="https://www.kscclinicnepal.com/" target="_blank" class="text-sm">About us</a>
</li> </li>
<li> <li>
<a href="/about-us" class="text-sm">My Account</a> <a href={user?.authenticated ? '/profile' : '/login'} class="text-sm">My Account</a>
</li> </li>
<li> <li>
<a href="/about-us" class="text-sm">Privacy & Policy</a> <a href="/privacy-policy" class="text-sm">Privacy & Policy</a>
</li> </li>
<li> <li>
<a href="/contact-us" class="text-sm">Contact Us</a> <a href="/contact-us" class="text-sm">Contact Us</a>
@@ -99,7 +79,7 @@
</div> </div>
<hr class="mt-6 border border-primary/10" /> <hr class="mt-6 border border-primary/10" />
<div <div
class="mt-4 flex items-center justify-between max-md:flex-col max-md:items-start max-md:gap-4" class="mx-auto mt-4 flex max-w-screen-2xl items-center justify-between max-md:flex-col max-md:items-start max-md:gap-4"
> >
<p class="text-sm">&copy; {new Date().getFullYear()} Korean Skin Care & Beauty Clinic</p> <p class="text-sm">&copy; {new Date().getFullYear()} Korean Skin Care & Beauty Clinic</p>
<ul class="flex items-center gap-4"> <ul class="flex items-center gap-4">
@@ -120,4 +100,26 @@
</li> </li>
</ul> </ul>
</div> </div>
<div itemscope itemtype="https://schema.org/LocalBusiness" class="hidden">
<div itemprop="name">Korean Skin Care and Beauty Clinic</div>
<div>Phone: <span itemprop="telephone">+977 984936576</span></div>
<div>
Url: <span itemprop="url"
><a href="koreanskincareandclinic.com">koreanskincareandclinic.com</a></span
>
</div>
<meta
itemprop="openingHours"
style="display: none"
datetime="Mo,Tu,We,Th,Fr,Sa,Su 10:00-19:00"
/>
<div itemtype="http://schema.org/PostalAddress" itemscope="" itemprop="address">
<div itemprop="streetAddress">City Center</div>
<div>
<span itemprop="addressLocality">Kathmandu</span>, <span itemprop="addressRegion">KTM</span>
<span itemprop="postalCode">44600</span>
</div>
</div>
</div>
</footer> </footer>

View File

@@ -5,11 +5,13 @@
import { Toaster } from '$lib/components/ui/sonner'; import { Toaster } from '$lib/components/ui/sonner';
import Navbar from '$lib/components/layouts/Navbar.svelte'; import Navbar from '$lib/components/layouts/Navbar.svelte';
import Footer from '$lib/components/layouts/Footer.svelte'; import Footer from '$lib/components/layouts/Footer.svelte';
import { page } from '$app/state';
let { children, data } = $props(); let { children, data } = $props();
</script> </script>
<svelte:head> <svelte:head>
<link rel="canonical" href={`https://${page.url.host}${page.url.pathname}`} />
<title> <title>
{$metaTitle.title} | Korean Skin Care and Beauty Clinic {$metaTitle.title} | Korean Skin Care and Beauty Clinic
</title> </title>
@@ -38,5 +40,5 @@
<main> <main>
{@render children?.()} {@render children?.()}
</main> </main>
<Footer /> <Footer user={data?.locals} />
</div> </div>

View File

@@ -1,3 +1,6 @@
<script></script> <script lang="ts">
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'About Us';
</script>
<div></div> <div></div>

View File

View File

@@ -0,0 +1,121 @@
<script lang="ts">
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'Refund and Exchange Policy';
</script>
<section class="mx-auto max-w-screen-2xl px-12 py-8">
<div class="flex flex-col gap-4">
<div>
<h1 class="text-3xl font-semibold tracking-tight">Refund and Exchange Policy</h1>
<p class="text-sm text-gray-800">Last Updated: 2025-09-26</p>
</div>
<div class="flex flex-col gap-6 text-sm">
<p>
At Korean Skin Care and Beauty Clinic, we want you to be fully satisfied with your purchase.
If for any reason you are not happy with your order, we are here to help. Please read our
Refund & Exchange Policy carefully before making a purchase.
</p>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">1. Eligibility for Refunds & Exchanges</p>
<div class="flex flex-col gap-2">
To be eligible for a refund or exchange, the following conditions must be met:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>
The item must be unused, unopened, and in the same condition that you received it.
</li>
<li>The item must be returned in its original packaging.</li>
<li>You must provide proof of purchase (order confirmation or receipt).</li>
<li>Requests must be made within 7 days of receiving your order.</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">2. Non-Returnable & Non-Refundable items</p>
<div class="flex flex-col gap-2">
For health, hygiene, and safety reasons, the following items cannot be returned or
refunded:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>Opened or used skincare, cosmetic, or personal care products</li>
<li>Gift cards</li>
<li>Sale, clearance, or promotional items (unless defective or damaged)</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">3. Exchanges</p>
<div class="flex flex-col gap-2">
We only replace items if they are:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>Defective</li>
<li>Damaged upon arrival</li>
<li>Incorrect item received</li>
</ul>
<p>
If you need to exchange an item for the same product, contact us at
info@koreanskincareandclinic.com with your order number and details.
</p>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">4. Refunds</p>
<div class="flex flex-col gap-2">
Once we receive and inspect your returned item, we will notify you of the approval or
rejection of your refund.
<ul class="flex list-disc flex-col gap-1 px-6">
<li>
Approved refunds will be processed to your original method of payment within 7-14
business days.
</li>
<li>Shipping costs are non-refundable.</li>
<li>
If you received free shipping, the actual cost may be deducted from your refund.
</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">5. Return Shipping</p>
<div class="flex flex-col gap-2">
<ul class="flex list-disc flex-col gap-1 px-6">
<li>
Customers are responsible for paying return shipping costs, except in cases where the
product was defective, damaged, or incorrect.
</li>
<li>
We recommend using a trackable shipping service. We are not responsible for lost or
undelivered return parcels.
</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">6. Order Cancellations</p>
<div class="flex flex-col gap-2">
<ul class="flex list-disc flex-col gap-1 px-6">
<li>
Orders may only be cancelled within 24 hours of purchase if the order has not yet been
processed or shipped.
</li>
<li>Once shipped, the order cannot be cancelled.</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">10. Contact Us</p>
<p>
If you have any questions about this Privacy Policy or how we handle your information,
please contact us at:
</p>
<ul>
<li>Korean Skin Care and Beauty Clinic</li>
<li>Website: https://koreanskincareandclinic.com</li>
<li>Email: info@koreanskincareandclinic.com</li>
</ul>
</div>
</div>
</div>
</section>

View File

@@ -1,5 +1,7 @@
<script lang="ts"> <script lang="ts">
import * as Accordion from '$lib/components/ui/accordion/index.js'; import * as Accordion from '$lib/components/ui/accordion/index.js';
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'FAQs';
</script> </script>
<div class="mx-auto my-8 grid max-w-screen-2xl grid-cols-12 gap-12 px-12"> <div class="mx-auto my-8 grid max-w-screen-2xl grid-cols-12 gap-12 px-12">

View File

@@ -1,4 +1,6 @@
<script> <script lang="ts">
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'Forgot Password';
</script> </script>
<div></div> <div></div>

View File

@@ -0,0 +1,6 @@
<script lang="ts">
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'Payment Information';
</script>
<div></div>

View File

@@ -0,0 +1,159 @@
<script lang="ts">
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'Privacy Policy';
</script>
<section class="mx-auto max-w-screen-2xl px-12 py-8">
<div class="flex flex-col gap-4">
<div>
<h1 class="text-3xl font-semibold tracking-tight">Privacy Policy</h1>
<p class="text-sm text-gray-800">Last Updated: 2025-09-26</p>
</div>
<div class="flex flex-col gap-6 text-sm">
<p>
Welcome to Korean Skin Care and Beauty Clinic (“Company,” “we,” “our,” or “us”). We value
your trust and are committed to protecting your privacy. This Privacy Policy explains how we
collect, use, and safeguard your personal information when you visit our website
https://koreanskincareandclinic.com (the “Site”) and when you purchase our products or
services. <br /> By using our Site, you agree to the terms of this Privacy Policy. If you do
not agree, please discontinue use of our Site.
</p>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">1. Information We Collect</p>
<div class="flex flex-col gap-2">
We may collect the following types of personal information when you interact with our
Site:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>
<strong> Personal Identifiable Information (PII): </strong>
such as your name, email address, phone number, billing/shipping address, and payment details
when you place an order.
</li>
<li>
<strong> Account Information: </strong>
if you create an account, we may store your username, password, and order history.
</li>
<li>
<strong> Transaction Data: </strong>
including purchase history and payment confirmation.
</li>
<li>
<strong> Technical Information: </strong>
such as your IP address, browser type, device information, and cookies to improve website
functionality.
</li>
<li>
<strong> Marketing Preferences: </strong>
such as your subscription choices for newsletters or promotional offers.
</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">2. How We Use Your Information</p>
<div class="flex flex-col gap-2">
We use your information for purposes including but not limited to:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>Processing and fulfilling your orders</li>
<li>Providing customer support</li>
<li>Managing your account and purchage history</li>
<li>Sending updates, offers, and promotions (if you consent)</li>
<li>Improving our website, services, and user experience</li>
<li>Preventing faudulent transactions and ensuring security</li>
<li>Complying with legal obligations</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">3. Sharing of Information</p>
<div class="flex flex-col gap-2">
We do not sell your personal information. However, we may share your data with: Site:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>
<strong> Service Providers:</strong>
such as payment processors, shipping carriers, and IT service providers who help operate
our Site.
</li>
<li>
<strong> Legal Authorities: </strong>
if required by law or in response to valid requests by public authorities.
</li>
<li>
<strong> Business Transfers: </strong>
in the event of a merger, acquisition, or sale of assets, your data may be transferred.
</li>
</ul>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">4. Cookies & Tracking Technologies</p>
<div class="flex flex-col gap-2">
We use cookies and similar technologies to:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>Remember your preferences</li>
<li>Analyze website traffic</li>
<li>Improve performance and user experience</li>
<li>Deliver relevant advertisements</li>
</ul>
<p>You can adjust your cookie settings through your browser at any time.</p>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">5. Data Security</p>
<p>
We implement industry-standard security measures to protect your personal information.
However, no method of transmission over the Internet or electronic storage is 100% secure.
We cannot guarantee absolute security.
</p>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">6. Your Rights</p>
<div class="flex flex-col gap-2">
Depending on your location, you may have the right to:
<ul class="flex list-disc flex-col gap-1 px-6">
<li>Access and request a copy of your personal data</li>
<li>Correct or update inaccurate information</li>
<li>Request deletion of your data</li>
<li>Opt-out of marketing communications</li>
<li>Restrict or object to certain processing activities</li>
</ul>
<p>To exercise these rights, please contact us at info@koreanskincareandclinic.com</p>
</div>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">7. Children's Privacy</p>
<p>
Our Site is not directed to individuals under the age of 13 (or the minimum age in your
jurisdiction). We do not knowingly collect personal data from children. If we learn we
have collected such information, we will delete it immediately.
</p>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">8. Third-Party Links</p>
<p>
Our Site may contain links to third-party websites. We are not responsible for the privacy
practices or content of those websites. We encourage you to review their privacy policies.
</p>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">9. Changes to This Privacy Policy</p>
<p>
We may update this Privacy Policy from time to time. Any changes will be posted on this
page with the updated date. We encourage you to review this Policy regularly.
</p>
</div>
<div class="flex flex-col gap-2">
<p class="text-lg font-semibold">10. Contact Us</p>
<p>
If you have any questions about this Privacy Policy or how we handle your information,
please contact us at:
</p>
<ul>
<li>Korean Skin Care and Beauty Clinic</li>
<li>Website: https://koreanskincareandclinic.com</li>
<li>Email: info@koreanskincareandclinic.com</li>
</ul>
</div>
</div>
</div>
</section>

View File

@@ -0,0 +1,6 @@
<script lang="ts">
import { metaTitle } from '$lib/stores/metaTitle.svelte';
$metaTitle.title = 'Shipping Information';
</script>
<div></div>