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.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..53c9a79 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "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/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-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..efb4665 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,39 @@ +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"; + +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/Footer.jsx b/src/Components/Footer.jsx new file mode 100644 index 0000000..09379a2 --- /dev/null +++ b/src/Components/Footer.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +const Footer = () => { + return ( +
Footer
+ ) +} + +export default Footer \ No newline at end of file diff --git a/src/Components/Header.jsx b/src/Components/Header.jsx new file mode 100644 index 0000000..041aba3 --- /dev/null +++ b/src/Components/Header.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +const Header = () => { + return ( +
Header
+ ) +} + +export default Header \ No newline at end of file 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 ( + +
+ +