├── src ├── App.css ├── index.css ├── components │ ├── ui │ │ ├── footer.jsx │ │ ├── select.jsx │ │ ├── navbar.jsx │ │ ├── header.jsx │ │ └── searchInput.jsx │ └── book │ │ ├── bookGrid.jsx │ │ └── bookGridItem.jsx ├── main.jsx ├── App.jsx └── constants │ └── data.js ├── README.md ├── public ├── assets │ ├── book.png │ ├── logo.png │ ├── star.svg │ └── lws-logo-en.svg └── vite.svg ├── postcss.config.js ├── tailwind.config.js ├── vite.config.js ├── .gitignore ├── .eslintrc.cjs ├── index.html └── package.json /src/App.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 🤒 Hazrat Ali 2 | 3 | # 🤠 Software Engineering 4 | 5 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /public/assets/book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Book-Filtering/HEAD/public/assets/book.png -------------------------------------------------------------------------------- /public/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hazrat-Ali9/Book-Filtering/HEAD/public/assets/logo.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | // postcss config -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: [ 4 | "./index.html", 5 | "./src/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: {}, 9 | }, 10 | plugins: [], 11 | } 12 | // Tailwind Css 13 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | import tailwindcss from 'tailwindcss'; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [react(),tailwindcss()], 8 | }) 9 | // Vite Config -------------------------------------------------------------------------------- /src/components/ui/footer.jsx: -------------------------------------------------------------------------------- 1 | const Footer = () => { 2 | return ( 3 | 10 | ) 11 | } 12 | 13 | export default Footer 14 | 15 | // footer -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | # gitignore 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import App from "./App.jsx"; 4 | import { createBrowserRouter, RouterProvider } from "react-router-dom"; 5 | import "./index.css"; 6 | // Main js 7 | const router = createBrowserRouter([ 8 | { 9 | path: "/", 10 | element: , 11 | }, 12 | ]); 13 | 14 | ReactDOM.createRoot(document.getElementById("root")).render( 15 | 16 | 17 | 18 | ); 19 | 20 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:react/recommended', 7 | 'plugin:react/jsx-runtime', 8 | 'plugin:react-hooks/recommended', 9 | ], 10 | ignorePatterns: ['dist', '.eslintrc.cjs'], 11 | parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, 12 | settings: { react: { version: '18.2' } }, 13 | plugins: ['react-refresh'], 14 | rules: { 15 | 'react-refresh/only-export-components': [ 16 | 'warn', 17 | { allowConstantExport: true }, 18 | ], 19 | }, 20 | } 21 | 22 | // Eslintrc -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import "./App.css"; 2 | import BookGrid from "./components/book/bookGrid"; 3 | import Footer from "./components/ui/footer"; 4 | import Header from "./components/ui/header"; 5 | import Navbar from "./components/ui/navbar"; 6 | // Apps js 7 | function App() { 8 | return ( 9 | 10 | 11 |
12 |
13 | 14 |
15 |