From fe42b764c98985a142ac0f4a1374c29a2f1d93eb Mon Sep 17 00:00:00 2001 From: Swapnil Bendal <84583651+Swapnil155@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:36:25 +0530 Subject: [PATCH] first commit --- .eslintrc.cjs | 21 + .gitignore | 24 + README.md | 8 + README.mdgit | 0 index.html | 13 + init | 0 package.json | 34 + public/vite.svg | 1 + src/App.jsx | 41 + src/Components/AboutCard.jsx | 67 + src/Components/Advertising.jsx | 59 + src/Components/Footer.jsx | 122 + src/Components/Header.jsx | 91 + src/Components/Hero.jsx | 101 + src/Components/HeroHeader.jsx | 40 + src/Components/InvestmentPlatform.jsx | 272 ++ src/Components/PrivacyPolicy.jsx | 53 + src/Components/TermsService.jsx | 53 + src/Layout/DefaultLayout.jsx | 32 + src/Pages/AboutUs.jsx | 123 + src/Pages/Faq.jsx | 20 + src/Pages/Home.jsx | 16 + src/Pages/NoInternetScreen.jsx | 9 + src/Pages/NotFound.jsx | 9 + src/Routes/RoutLink.jsx | 13 + src/assets/AppStore.png | Bin 0 -> 5967 bytes src/assets/Ellipse-37.png | Bin 0 -> 30639 bytes src/assets/Ellipse-38.png | Bin 0 -> 15389 bytes src/assets/Ellipse-39.png | Bin 0 -> 5503 bytes src/assets/Ellipse.png | Bin 0 -> 337824 bytes src/assets/EmptySearchList.svg | 1 + src/assets/Error.svg | 1 + src/assets/PlayBtn.png | Bin 0 -> 6549 bytes src/assets/adImage.png | Bin 0 -> 2578150 bytes src/assets/apple.png | Bin 0 -> 474 bytes src/assets/asset1.png | Bin 0 -> 10157 bytes src/assets/asset2.png | Bin 0 -> 7937 bytes src/assets/communityBanner.webp | Bin 0 -> 19600 bytes src/assets/earth.png | Bin 0 -> 572 bytes src/assets/fallBackImage.png | Bin 0 -> 11591 bytes src/assets/favicon.png | Bin 0 -> 732 bytes src/assets/favicone.png | Bin 0 -> 1445 bytes src/assets/heroImage.png | Bin 0 -> 205373 bytes src/assets/image/Client.png | Bin 0 -> 3534 bytes src/assets/image/Knowledge.png | Bin 0 -> 2179 bytes src/assets/image/Seamless.png | Bin 0 -> 3492 bytes src/assets/image/experienced.png | Bin 0 -> 4839 bytes src/assets/image/global.png | Bin 0 -> 2886 bytes src/assets/image/low.png | Bin 0 -> 4414 bytes src/assets/image/paltform-img.png | Bin 0 -> 1983459 bytes src/assets/linkedin.png | Bin 0 -> 1276 bytes src/assets/logo-min.png | Bin 0 -> 990 bytes src/assets/logo.png | Bin 0 -> 2280 bytes src/assets/logo2.png | Bin 0 -> 3009 bytes src/assets/pattern.png | Bin 0 -> 4909 bytes src/assets/pdfscreen.png | Bin 0 -> 9638 bytes .../photo-1472313420546-a46e561861d8.avif | Bin 0 -> 198964 bytes src/assets/playstore.png | Bin 0 -> 421 bytes src/assets/react.svg | 1 + src/assets/slider1.png | Bin 0 -> 268352 bytes src/assets/slider2.png | Bin 0 -> 799935 bytes src/assets/slider3.png | Bin 0 -> 331184 bytes src/assets/ultp-fallback-img.webp | Bin 0 -> 810 bytes src/assets/underline.png | Bin 0 -> 1135 bytes src/index.css | 26 + src/main.jsx | 13 + vite.config.js | 7 + yarn.lock | 3489 +++++++++++++++++ 68 files changed, 4760 insertions(+) create mode 100644 .eslintrc.cjs create mode 100644 .gitignore create mode 100644 README.md create mode 100644 README.mdgit create mode 100644 index.html create mode 100644 init create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.jsx create mode 100644 src/Components/AboutCard.jsx create mode 100644 src/Components/Advertising.jsx create mode 100644 src/Components/Footer.jsx create mode 100644 src/Components/Header.jsx create mode 100644 src/Components/Hero.jsx create mode 100644 src/Components/HeroHeader.jsx create mode 100644 src/Components/InvestmentPlatform.jsx create mode 100644 src/Components/PrivacyPolicy.jsx create mode 100644 src/Components/TermsService.jsx create mode 100644 src/Layout/DefaultLayout.jsx create mode 100644 src/Pages/AboutUs.jsx create mode 100644 src/Pages/Faq.jsx create mode 100644 src/Pages/Home.jsx create mode 100644 src/Pages/NoInternetScreen.jsx create mode 100644 src/Pages/NotFound.jsx create mode 100644 src/Routes/RoutLink.jsx create mode 100644 src/assets/AppStore.png create mode 100644 src/assets/Ellipse-37.png create mode 100644 src/assets/Ellipse-38.png create mode 100644 src/assets/Ellipse-39.png create mode 100644 src/assets/Ellipse.png create mode 100644 src/assets/EmptySearchList.svg create mode 100644 src/assets/Error.svg create mode 100644 src/assets/PlayBtn.png create mode 100644 src/assets/adImage.png create mode 100644 src/assets/apple.png create mode 100644 src/assets/asset1.png create mode 100644 src/assets/asset2.png create mode 100644 src/assets/communityBanner.webp create mode 100644 src/assets/earth.png create mode 100644 src/assets/fallBackImage.png create mode 100644 src/assets/favicon.png create mode 100644 src/assets/favicone.png create mode 100644 src/assets/heroImage.png create mode 100644 src/assets/image/Client.png create mode 100644 src/assets/image/Knowledge.png create mode 100644 src/assets/image/Seamless.png create mode 100644 src/assets/image/experienced.png create mode 100644 src/assets/image/global.png create mode 100644 src/assets/image/low.png create mode 100644 src/assets/image/paltform-img.png create mode 100644 src/assets/linkedin.png create mode 100644 src/assets/logo-min.png create mode 100644 src/assets/logo.png create mode 100644 src/assets/logo2.png create mode 100644 src/assets/pattern.png create mode 100644 src/assets/pdfscreen.png create mode 100644 src/assets/photo-1472313420546-a46e561861d8.avif create mode 100644 src/assets/playstore.png create mode 100644 src/assets/react.svg create mode 100644 src/assets/slider1.png create mode 100644 src/assets/slider2.png create mode 100644 src/assets/slider3.png create mode 100644 src/assets/ultp-fallback-img.webp create mode 100644 src/assets/underline.png create mode 100644 src/index.css create mode 100644 src/main.jsx create mode 100644 vite.config.js create mode 100644 yarn.lock diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..3e212e1 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,21 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + settings: { react: { version: '18.2' } }, + plugins: ['react-refresh'], + rules: { + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/README.mdgit b/README.mdgit new file mode 100644 index 0000000..e69de29 diff --git a/index.html b/index.html new file mode 100644 index 0000000..2e5e3ac --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Tanami + + +
+ + + diff --git a/init b/init new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json new file mode 100644 index 0000000..07f41c7 --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "name": "tanami-website", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "@chakra-ui/icons": "^2.1.1", + "@chakra-ui/react": "^2.8.2", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "bootstrap": "5.3.3", + "framer-motion": "^11.2.11", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-icons": "^5.2.1", + "react-router-dom": "^6.23.1" + }, + "devDependencies": { + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@vitejs/plugin-react-swc": "^3.5.0", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.1", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.6", + "vite": "^5.2.0" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..846e9b1 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,41 @@ +import React from 'react' +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; +import Home from "./Pages/Home"; +import { useEffect, useState } from "react"; +import NoInternetScreen from "./Pages/NoInternetScreen"; +import DefaultLayout from "./Layout/DefaultLayout"; +import NotFound from './Pages/NotFound'; + +const App = () => { + + const [isOnline, setIsOnline] = useState(navigator.onLine); + + useEffect(() => { + const handleOnlineStatusChange = () => { + setIsOnline(navigator.onLine); + }; + + window.addEventListener("online", handleOnlineStatusChange); + window.addEventListener("offline", handleOnlineStatusChange); + + return () => { + window.removeEventListener("online", handleOnlineStatusChange); + window.removeEventListener("offline", handleOnlineStatusChange); + }; + }, []); + + + return ( + + + : } + /> + } /> + + + ); +}; + +export default App; diff --git a/src/Components/AboutCard.jsx b/src/Components/AboutCard.jsx new file mode 100644 index 0000000..9901d38 --- /dev/null +++ b/src/Components/AboutCard.jsx @@ -0,0 +1,67 @@ +import { Box, Container, Image, SimpleGrid, Text } from "@chakra-ui/react"; +import React from "react"; +import global from "../assets/image/global.png"; +import Low from "../assets/image/low.png"; +import Experienced from "../assets/image/experienced.png"; +import Client from "../assets/image/Client.png"; +import Seamless from "../assets/image/Seamless.png"; +import Knowledge from "../assets/image/Knowledge.png"; + +const data = [ + { + imgSrc: global, + title: "Global Access with Premier Managers:", + description: + "Tanami Capital's platform provides investors with unparalleled access to a diverse range of alternative investments managed by best-in-class managers from around the world", + }, + { + imgSrc: Low, + title: "Low Minimum Investment:", + description: + "Our platforms ensures that all investors have access to alternative investment opportunities through imposing minimal investment size limits", + }, + { + imgSrc: Experienced, + title: "Experienced Investment Team:", + description: + "Our in-house team comprises seasoned professionals with vast experience and knowledge of alternative investments to select the best available opportunities", + }, + { + imgSrc: Client, + title: "Client-Centric Fee Structure:", + description: + "We prioritize client interests by providing a transparent and competitive fee structure. We do not receive compensations from fund managers to avoid potential conflict of interest ", + }, + { + imgSrc: Seamless, + title: "Seamless and Transparent Execution:", + description: + "Our advanced app allows investors to select and deploy capital seamlessly around the clock ", + }, + { + imgSrc: Knowledge, + title: "The 'Knowledge Zone' Initiative: ", + description: + "Our dedicated knowledge platform, the 'Knowledge Zone,' equips clients with a toolkit to simplify and easily understand the complexities of alternative investments", + }, +]; + +const AboutCard = () => { + return ( + <> + + {data.map((item, index) => ( + + + + {item.title} + + {item.description} + + ))} + + + ); +}; + +export default AboutCard; diff --git a/src/Components/Advertising.jsx b/src/Components/Advertising.jsx new file mode 100644 index 0000000..d992adb --- /dev/null +++ b/src/Components/Advertising.jsx @@ -0,0 +1,59 @@ +import { Box, Container, Image, Text } from "@chakra-ui/react"; +import React from "react"; +import pattern from "../assets/pattern.png"; +import adImage from "../assets/adImage.png"; +import appButton from "../assets/AppStore.png"; +import playButton from "../assets/PlayBtn.png"; + + +const Advertising = () => { + return ( + + + + + + Ready to get started? + + + Risus habitant leo egestas mauris diam eget morbi tempus + vulputate. + + + + + + + + + + + + + + + + ); +}; + +export default Advertising; diff --git a/src/Components/Footer.jsx b/src/Components/Footer.jsx new file mode 100644 index 0000000..d40822a --- /dev/null +++ b/src/Components/Footer.jsx @@ -0,0 +1,122 @@ +import { Box, Container, Text } from "@chakra-ui/react"; +import React from "react"; +import { Link } from "react-router-dom"; +import { IoLogoTwitter } from "react-icons/io5"; +import { FaFacebookF } from "react-icons/fa6"; +import { FaInstagram } from "react-icons/fa"; +import { IoLogoGithub } from "react-icons/io"; + +const Footer = () => { + return ( + + + + + + Yes, it’s that simple. + + + Download the Tanami app today and start growing your wealth. + + + + + + + + About Tanami + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam + dictum aliquet accumsan porta lectus ridiculus in mattis. Netus + sodales in volutpat ullamcorper amet adipiscing fermentum. + + + + + + + + + info@tanamicapital.com + + + + Company + + + + Home + {" "} + + + + Investment + + + + + How it works + + + + + FAQ's + + + + + + + Help + + + + About Us + {" "} + + + + Investment + + + + + How it works + + + + + FAQ's + + + + + + + + + + Copyright © 2024 Tanami Capital + + + Tanami Capital is authorized to participate in the Central Bank of + Bahrain’s Fintench Regualatory Sandbox + + + + + ); +}; + +export default Footer; diff --git a/src/Components/Header.jsx b/src/Components/Header.jsx new file mode 100644 index 0000000..95a58b6 --- /dev/null +++ b/src/Components/Header.jsx @@ -0,0 +1,91 @@ +import { Box, Button, Container, Image } from "@chakra-ui/react"; +import React, { useEffect, useState } from "react"; +import logo from "../assets/logo.png"; +import earth from "../assets/earth.png"; +import { Link, NavLink } from "react-router-dom"; +import { ChevronDownIcon } from "@chakra-ui/icons"; + + +export const nav = [ + { + title: "Investment", + path: "/investment", + }, + { + title: "How it works", + path: "/how-it-works", + }, + { + title: "FAQ", + path: "/faq", + }, + { + title: "About Us", + path: "/aboutus", + }, +]; + +const Header = () => { + const [showHeader, setShowHeader] = useState(true); + const [lastScrollY, setLastScrollY] = useState(0); + const threshold = 50; // Adjust this value to change sensitivity + const controlHeader = () => { + if (window.scrollY > lastScrollY + threshold) { + setShowHeader(false); + } else if (window.scrollY < lastScrollY - threshold) { + setShowHeader(true); + } + setLastScrollY(window.scrollY); + }; + + useEffect(() => { + window.addEventListener("scroll", controlHeader); + return () => { + window.removeEventListener("scroll", controlHeader); + }; + }, [lastScrollY]); + + return ( + + + + + + {nav.map(({ title, path }, index) => ( + + {title} + + ))} + + + + + En + + + + + + ); +}; + +export default Header; diff --git a/src/Components/Hero.jsx b/src/Components/Hero.jsx new file mode 100644 index 0000000..5cfdda3 --- /dev/null +++ b/src/Components/Hero.jsx @@ -0,0 +1,101 @@ +import { Box, Button, Container, Image, Text } from "@chakra-ui/react"; +import React from "react"; +import underline from "../assets/underline.png"; +import heroImage from "../assets/heroImage.png"; + + +import apple from "../assets/apple.png"; +import playstore from "../assets/playstore.png"; + +const Hero = () => { + return ( + + + + + Access{" "} + + private markets{" "} + + today{" "} + + + + + Tanami provides Shariah-compliant global private investments + alongside world class managers, simplified through an app. + + + + + + + + + + + Download the app & grow your wealth with Tanami today. + + + + + + + + + ); +}; + +export default Hero; diff --git a/src/Components/HeroHeader.jsx b/src/Components/HeroHeader.jsx new file mode 100644 index 0000000..8020e2e --- /dev/null +++ b/src/Components/HeroHeader.jsx @@ -0,0 +1,40 @@ +import { Box, Button, Grid, Heading, Stack, Text } from '@chakra-ui/react' +import React from 'react' + + + +const HeroHeader = ({title,content,showButtons}) => { + + return ( + <> + + {title} + {content} + {showButtons && ( + // + + + + + + + + // + )} + + + + ) +} + +export default HeroHeader diff --git a/src/Components/InvestmentPlatform.jsx b/src/Components/InvestmentPlatform.jsx new file mode 100644 index 0000000..9efdd59 --- /dev/null +++ b/src/Components/InvestmentPlatform.jsx @@ -0,0 +1,272 @@ +import { + Box, + Button, + Container, + Image, + Tab, + TabList, + TabPanel, + TabPanels, + Tabs, + Text, +} from "@chakra-ui/react"; +import React, { useState, useEffect } from "react"; +import asset2 from "../assets/asset2.png"; +import slider1 from "../assets/slider1.png"; +import slider2 from "../assets/slider2.png"; +import slider3 from "../assets/slider3.png"; +import { ArrowForwardIcon } from "@chakra-ui/icons"; + +const content = [ + { + title: "Higher returns", + description: + "We invest smart. From real estate to private equity, Tanami invests alongside global managers with a proven track record of consistent outperformance.", + }, + { + title: "Expert Diligence", + description: + "We understand investments. From real estate to private equity, Tanami invests alongside global managers with a proven track record of consistent outperformance.", + }, + { + title: "Low Minimums", + description: + "We make it easy. From real estate to private equity, Tanami invests alongside global managers with a proven track record of consistent outperformance.", + }, +]; + +const InvestmentPlatform = () => { + const [tabIndex, setTabIndex] = useState(0); + + useEffect(() => { + const interval = setInterval(() => { + setTabIndex((prevIndex) => (prevIndex + 1) % 3); + }, 3000); + + return () => clearInterval(interval); + }, []); + + return ( + + + + Why Choose Our Investment Platform + + + + + + + + + + + + Select + + + Onboard + + + Invest + + + + + + + + + + + + Higher returns + + + We invest smart. From real estate to private equity, Tanami + invests alongside global managers with a proven track record + of consistent outperformance. + + + + + Expert Diligence + + + We understand investments. From real estate to private + equity, Tanami invests alongside global managers with a + proven track record of consistent outperformance. + + + + + Low Minimums + + + We make it easy. From real estate to private equity, Tanami + invests alongside global managers with a proven track record + of consistent outperformance. + + + + + + + + + + + + + ); +}; + +export default InvestmentPlatform; diff --git a/src/Components/PrivacyPolicy.jsx b/src/Components/PrivacyPolicy.jsx new file mode 100644 index 0000000..437b2b1 --- /dev/null +++ b/src/Components/PrivacyPolicy.jsx @@ -0,0 +1,53 @@ +import React from 'react' +import HeroHeader from './HeroHeader' +import { Box, Container, Heading, Text } from '@chakra-ui/react' + + +const AboutCont = [ + { + id: 1, + title:'Privacy Policy for Tanami!', + content:[ + { + text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu turpis molestie, dictum est a, mattis tellus. Sed dignissim, metus nec fringilla accumsan, risus sem sollicitudin lacus, ut interdum tellus elit sed risus. Maecenas eget condimentum velit, sit amet feugiat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent auctor purus luctus enim egestas, ac scelerisque ante pulvinar. Donec ut rhoncus ex. Suspendisse ac rhoncus nisl, eu tempor urna. Curabitur vel bibendum lorem. Morbi convallis convallis diam sit amet lacinia. Aliquam in elementum tellus." + }, + { + text: "Curabitur tempor quis eros tempus lacinia. Nam bibendum pellentesque quam a convallis. Sed ut vulputate nisi. Integer in felis sed leo vestibulum venenatis. Suspendisse quis arcu sem. Aenean feugiat ex eu vestibulum vestibulum. Morbi a eleifend magna. Nam metus lacus, porttitor eu mauris a, blandit ultrices nibh. Mauris sit amet magna non ligula vestibulum eleifend. Nulla varius volutpat turpis sed lacinia. Nam eget mi in purus lobortis eleifend. Sed nec ante dictum sem condimentum ullamcorper quis venenatis nisi. Proin vitae facilisis nisi, ac posuere leo." + }, + { + text:"Nam pulvinar blandit velit, id condimentum diam faucibus at. Aliquam lacus nisi, sollicitudin at nisi nec, fermentum congue felis. Quisque mauris dolor, fringilla sed tincidunt ac, finibus non odio. Sed vitae mauris nec ante pretium finibus. Donec nisl neque, pharetra ac elit eu, faucibus aliquam ligula. Nullam dictum, tellus tincidunt tempor laoreet, nibh elit sollicitudin felis, eget feugiat sapien diam nec nisl. Aenean gravida turpis nisi, consequat dictum risus dapibus a. Duis felis ante, varius in neque eu, tempor suscipit sem. Maecenas ullamcorper gravida sem sit amet cursus. Etiam pulvinar purus vitae justo pharetra consequat. Mauris id mi ut arcu feugiat maximus. Mauris consequat tellus id tempus aliquet." + }, + { + text:"Vestibulum dictum ultrices elit a luctus. Sed in ante ut leo congue posuere at sit amet ligula. Pellentesque eget augue nec nisl sodales blandit sed et sem. Aenean quis finibus arcu, in hendrerit purus. Praesent ac aliquet lorem. Morbi feugiat aliquam ligula, et vestibulum ligula hendrerit vitae. Sed ex lorem, pulvinar sed auctor sit amet, molestie a nibh. Ut euismod nisl arcu, sed placerat nulla volutpat aliquet. Ut id convallis nisl. Ut mauris leo, lacinia sed elit id, sagittis rhoncus odio. Pellentesque sapien libero, lobortis a placerat et, malesuada sit amet dui. Nam sem sapien, congue eu rutrum nec, pellentesque eget ligula." + }, + { + text:"Nunc tempor interdum ex, sed cursus nunc egestas aliquet. Pellentesque interdum vulputate elementum. Donec erat diam, pharetra nec enim ut, bibendum pretium tellus. Vestibulum et turpis nibh. Cras vel ornare velit, ac pretium arcu. Cras justo augue, finibus id sollicitudin et, rutrum eget metus. Suspendisse ut mauris eu massa pulvinar sollicitudin vel sed enim. Pellentesque viverra arcu et dignissim vehicula." + }, + ] + } +] + +const PrivacyPolicy = () => { + return ( + <> + + + {AboutCont.map((cont) =>( + + + {cont.title} + {cont.content.map((item, index) => ( + {item.text} + ))} + + + ))} + + + ) +} + +export default PrivacyPolicy diff --git a/src/Components/TermsService.jsx b/src/Components/TermsService.jsx new file mode 100644 index 0000000..bfdd336 --- /dev/null +++ b/src/Components/TermsService.jsx @@ -0,0 +1,53 @@ +import React from 'react' +import HeroHeader from './HeroHeader' +import { Box, Container, Heading, Text } from '@chakra-ui/react' + + +const AboutCont = [ + { + id: 1, + title:'Terms of Service for Tanami!', + content:[ + { + text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam eu turpis molestie, dictum est a, mattis tellus. Sed dignissim, metus nec fringilla accumsan, risus sem sollicitudin lacus, ut interdum tellus elit sed risus. Maecenas eget condimentum velit, sit amet feugiat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent auctor purus luctus enim egestas, ac scelerisque ante pulvinar. Donec ut rhoncus ex. Suspendisse ac rhoncus nisl, eu tempor urna. Curabitur vel bibendum lorem. Morbi convallis convallis diam sit amet lacinia. Aliquam in elementum tellus." + }, + { + text: "Curabitur tempor quis eros tempus lacinia. Nam bibendum pellentesque quam a convallis. Sed ut vulputate nisi. Integer in felis sed leo vestibulum venenatis. Suspendisse quis arcu sem. Aenean feugiat ex eu vestibulum vestibulum. Morbi a eleifend magna. Nam metus lacus, porttitor eu mauris a, blandit ultrices nibh. Mauris sit amet magna non ligula vestibulum eleifend. Nulla varius volutpat turpis sed lacinia. Nam eget mi in purus lobortis eleifend. Sed nec ante dictum sem condimentum ullamcorper quis venenatis nisi. Proin vitae facilisis nisi, ac posuere leo." + }, + { + text:"Nam pulvinar blandit velit, id condimentum diam faucibus at. Aliquam lacus nisi, sollicitudin at nisi nec, fermentum congue felis. Quisque mauris dolor, fringilla sed tincidunt ac, finibus non odio. Sed vitae mauris nec ante pretium finibus. Donec nisl neque, pharetra ac elit eu, faucibus aliquam ligula. Nullam dictum, tellus tincidunt tempor laoreet, nibh elit sollicitudin felis, eget feugiat sapien diam nec nisl. Aenean gravida turpis nisi, consequat dictum risus dapibus a. Duis felis ante, varius in neque eu, tempor suscipit sem. Maecenas ullamcorper gravida sem sit amet cursus. Etiam pulvinar purus vitae justo pharetra consequat. Mauris id mi ut arcu feugiat maximus. Mauris consequat tellus id tempus aliquet." + }, + { + text:"Vestibulum dictum ultrices elit a luctus. Sed in ante ut leo congue posuere at sit amet ligula. Pellentesque eget augue nec nisl sodales blandit sed et sem. Aenean quis finibus arcu, in hendrerit purus. Praesent ac aliquet lorem. Morbi feugiat aliquam ligula, et vestibulum ligula hendrerit vitae. Sed ex lorem, pulvinar sed auctor sit amet, molestie a nibh. Ut euismod nisl arcu, sed placerat nulla volutpat aliquet. Ut id convallis nisl. Ut mauris leo, lacinia sed elit id, sagittis rhoncus odio. Pellentesque sapien libero, lobortis a placerat et, malesuada sit amet dui. Nam sem sapien, congue eu rutrum nec, pellentesque eget ligula." + }, + { + text:"Nunc tempor interdum ex, sed cursus nunc egestas aliquet. Pellentesque interdum vulputate elementum. Donec erat diam, pharetra nec enim ut, bibendum pretium tellus. Vestibulum et turpis nibh. Cras vel ornare velit, ac pretium arcu. Cras justo augue, finibus id sollicitudin et, rutrum eget metus. Suspendisse ut mauris eu massa pulvinar sollicitudin vel sed enim. Pellentesque viverra arcu et dignissim vehicula." + }, + ] + } +] + +const TermsService = () => { + return ( + <> + + + {AboutCont.map((cont) =>( + + + {cont.title} + {cont.content.map((item, index) => ( + {item.text} + ))} + + + ))} + + + ) +} + +export default TermsService diff --git a/src/Layout/DefaultLayout.jsx b/src/Layout/DefaultLayout.jsx new file mode 100644 index 0000000..0b4e659 --- /dev/null +++ b/src/Layout/DefaultLayout.jsx @@ -0,0 +1,32 @@ +import React from 'react' +import { Route, Routes } from 'react-router-dom'; +import NotFound from '../Pages/NotFound'; +import { Box } from '@chakra-ui/react'; +import Header from '../Components/Header'; +import Footer from '../Components/Footer'; +import { RouteLink } from '../Routes/RoutLink'; + +const DefaultLayout = () => { + return ( + +
+ +