Skip to content

Commit

Permalink
Merge branch 'main' into feat-faqs
Browse files Browse the repository at this point in the history
  • Loading branch information
priyanshuverma-dev authored Nov 9, 2024
2 parents 3a91165 + 1c6b5de commit c6394ab
Show file tree
Hide file tree
Showing 6 changed files with 194 additions and 10 deletions.
4 changes: 4 additions & 0 deletions client/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import MyImagesPage from "./pages/MyImages";
import MyChatbotsPage from "./pages/MyChatbots";
import { AnimatePresence } from "framer-motion";
import CustomSwitch from "./lib/custom-switch";
import Privacy from "./pages/Privacy";
import Terms from "./pages/Terms";

const queryClient = new QueryClient();

Expand All @@ -44,6 +46,8 @@ function App() {
<AnimatePresence mode="wait">
<CustomSwitch>
<Route path="*" element={<NotFound />} />
<Route path="/terms" element={<Terms />} />
<Route path="/privacy" element={<Privacy />} />
<Route path="/" element={<LandingPage />} />
<Route path="/login" element={<LoginPage />} />
<Route path="/signup" element={<SignupPage />} />
Expand Down
25 changes: 16 additions & 9 deletions client/src/components/Footer.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,23 @@
import { Link } from "react-router-dom";

export default function Footer() {
return (
<footer className="text-center p-6 flex justify-between dark:text-gray-300">
<p className="text-gray-600">
<footer className="text-center p-6 flex justify-between items-center">
<p className="text-muted-foreground">
Made by{" "}
<a
href="https://github.com/kom-senapati"
className="text-gray-400 hover:underline"
>
kom-senapati
</a>
<Link to="/about" className="text-muted-foreground hover:underline">
kom-senapati and Team
</Link>
</p>
<p className="text-gray-600">
<div className="flex items-center space-x-4">
<Link to="/terms" className="text-muted-foreground hover:underline">
Terms of Service
</Link>
<Link to="/privacy" className="text-muted-foreground hover:underline">
Privacy Policy
</Link>
</div>
<p className="text-muted-foreground">
<span className="text-yellow-600">MIT</span> License
</p>
</footer>
Expand Down
2 changes: 1 addition & 1 deletion client/src/components/Navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export default function Navbar() {
{t("navbar.sign_up")}
</Link>
</li>
<li className="w-full ">
<li className="w-full">
<Link to="/login" className="py-2">
{t("navbar.login")}
</Link>
Expand Down
82 changes: 82 additions & 0 deletions client/src/pages/Privacy.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import Footer from "@/components/Footer";
import Navbar from "@/components/Navbar";
import transition from "@/components/transition";

const Privacy = () => {
return (
<>
<Navbar />
<div className="container mx-auto px-4 py-8 min-h-[85vh]">
<h1 className="text-3xl font-bold mb-6">Privacy Policy</h1>
<p className="mb-4">
This Privacy Policy explains how we collect, use, disclose, and
protect your information when you use our services.
</p>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
1. Information We Collect
</h2>
<p className="text-muted-foreground">
We collect information you provide directly to us, such as your
username, email address, and any other information you choose to
submit.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
2. How We Use Your Information
</h2>
<p className="text-muted-foreground">
We use your information to provide, operate, and maintain our
services, and to improve, personalize, and expand our services.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
3. Sharing Your Information
</h2>
<p className="text-muted-foreground">
We do not share your personal information with third parties except
as described in this Privacy Policy or with your consent.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
4. Security of Your Information
</h2>
<p className="text-muted-foreground">
We implement reasonable security measures to protect your
information. However, no method of transmission over the Internet or
method of electronic storage is 100% secure, and we cannot guarantee
absolute security.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
5. Changes to This Policy
</h2>
<p className="text-muted-foreground">
We may update our Privacy Policy from time to time. We will notify
you of any changes by posting the new Privacy Policy on this page.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">6. Contact Us</h2>
<p className="text-muted-foreground">
If you have any questions about this Privacy Policy, please contact
us at support@example.com.
</p>
</section>
</div>
<Footer />
</>
);
};

export default transition(Privacy);
21 changes: 21 additions & 0 deletions client/src/pages/Signup.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,27 @@ function SignupPage() {
</FormItem>
)}
/>
<div className="flex">
<p>
By authenticating, you agree to our{" "}
<Link
to="/terms"
className="text-blue-500 hover:underline"
target="_blank"
>
Terms of Service
</Link>{" "}
and{" "}
<Link
to="/privacy"
className="text-blue-500 hover:underline"
target="_blank"
>
Privacy Policy
</Link>
.
</p>
</div>
<Button className="w-full" type="submit" disabled={loading}>
{loading ? (
<Loader2 className="animate-spin" />
Expand Down
70 changes: 70 additions & 0 deletions client/src/pages/Terms.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import Footer from "@/components/Footer";
import Navbar from "@/components/Navbar";
import transition from "@/components/transition";

const Terms = () => {
return (
<>
<Navbar />
<div className="container mx-auto px-4 py-8 min-h-[85vh]">
<h1 className="text-3xl font-bold mb-6">Terms of Service</h1>
<p className="mb-4">
By using this service, you agree to the following terms and
conditions. Please read them carefully.
</p>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
1. Acceptance of Terms
</h2>
<p className="text-muted-foreground">
Your access to and use of our services is conditional on your
acceptance of and compliance with these Terms. These Terms apply to
all visitors, users, and others who access or use our services.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">2. Use of the Service</h2>
<p className="text-muted-foreground">
You agree not to misuse the service in any way. Any form of
unauthorized access, data scraping, or unauthorized reproduction of
data is strictly prohibited.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">3. Termination</h2>
<p className="text-muted-foreground">
We may terminate or suspend access to our service immediately,
without prior notice or liability, for any reason, including without
limitation if you breach the Terms.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">4. Changes to Terms</h2>
<p className="text-muted-foreground">
We reserve the right to modify or replace these Terms at any time.
It is your responsibility to check for updates periodically. Your
continued use of the service following any changes signifies your
acceptance of the updated terms.
</p>
</section>

<section className="mb-8">
<h2 className="text-2xl font-semibold mb-4">
5. Contact Information
</h2>
<p className="text-muted-foreground">
If you have any questions about these Terms, please contact us at
support@example.com.
</p>
</section>
</div>
<Footer />
</>
);
};

export default transition(Terms);

0 comments on commit c6394ab

Please sign in to comment.