├── src ├── assets │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ ├── 9.png │ └── 10.png ├── App.jsx ├── main.jsx ├── global.css └── constants │ └── mockData.js ├── vite.config.js ├── .gitignore ├── index.html ├── README.md ├── .eslintrc.cjs ├── package.json └── public └── vite.svg /src/assets/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/1.png -------------------------------------------------------------------------------- /src/assets/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/2.png -------------------------------------------------------------------------------- /src/assets/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/3.png -------------------------------------------------------------------------------- /src/assets/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/4.png -------------------------------------------------------------------------------- /src/assets/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/5.png -------------------------------------------------------------------------------- /src/assets/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/6.png -------------------------------------------------------------------------------- /src/assets/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/7.png -------------------------------------------------------------------------------- /src/assets/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/8.png -------------------------------------------------------------------------------- /src/assets/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/9.png -------------------------------------------------------------------------------- /src/assets/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milad-azami/rjs-book-app-files/HEAD/src/assets/10.png -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | function App() { 2 | return ( 3 | <> 4 |

Book App Starting files

5 | 6 | ); 7 | } 8 | 9 | export default App; 10 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import App from "./App.jsx"; 4 | import "./global.css"; 5 | 6 | ReactDOM.createRoot(document.getElementById("root")).render( 7 | 8 | 9 | 10 | ); 11 | -------------------------------------------------------------------------------- /.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 | 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/global.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | } 5 | 6 | body { 7 | margin: auto; 8 | max-width: 1000px; 9 | min-height: 100vh; 10 | padding: 10px; 11 | background-color: #1e1e1e; 12 | color: #e0e0e0; 13 | } 14 | 15 | * { 16 | padding: 0; 17 | margin: 0; 18 | box-sizing: border-box; 19 | } 20 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@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 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "untitled-folder-2", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.2.15", 18 | "@types/react-dom": "^18.2.7", 19 | "@vitejs/plugin-react": "^4.0.3", 20 | "eslint": "^8.45.0", 21 | "eslint-plugin-react": "^7.32.2", 22 | "eslint-plugin-react-hooks": "^4.6.0", 23 | "eslint-plugin-react-refresh": "^0.4.3", 24 | "vite": "^4.4.5" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/constants/mockData.js: -------------------------------------------------------------------------------- 1 | const books = [ 2 | { 3 | id: "001", 4 | author: "Chinua Achebe", 5 | country: "Nigeria", 6 | image: "1.png", 7 | language: "English", 8 | link: "https://en.wikipedia.org/wiki/Things_Fall_Apart\n", 9 | pages: 209, 10 | title: "Things Fall Apart", 11 | year: 1958, 12 | }, 13 | { 14 | id: "002", 15 | author: "Hans Christian Andersen", 16 | country: "Denmark", 17 | image: "2.png", 18 | language: "Danish", 19 | link: "https://en.wikipedia.org/wiki/Fairy_Tales_Told_for_Children._First_Collection.\n", 20 | pages: 784, 21 | title: "Fairy tales", 22 | year: 1836, 23 | }, 24 | { 25 | id: "003", 26 | author: "Dante Alighieri", 27 | country: "Italy", 28 | image: "3.png", 29 | language: "Italian", 30 | link: "https://en.wikipedia.org/wiki/Divine_Comedy\n", 31 | pages: 928, 32 | title: "The Divine Comedy", 33 | year: 1315, 34 | }, 35 | { 36 | id: "004", 37 | author: "Maureen Gallery Kovacs", 38 | country: "Sumer and Akkadian Empire", 39 | image: "4.png", 40 | language: "Akkadian", 41 | link: "https://en.wikipedia.org/wiki/Epic_of_Gilgamesh\n", 42 | pages: 160, 43 | title: "The Epic Of Gilgamesh", 44 | year: -1700, 45 | }, 46 | { 47 | id: "005", 48 | author: "Graham Ricardo", 49 | country: "Achaemenid Empire", 50 | image: "5.png", 51 | language: "Hebrew", 52 | link: "https://en.wikipedia.org/wiki/Book_of_Job\n", 53 | pages: 176, 54 | title: "The Book Of Job", 55 | year: -600, 56 | }, 57 | { 58 | id: "006", 59 | author: "Hanan Al-Shaykh", 60 | country: "India/Iran/Iraq/Egypt/Tajikistan", 61 | image: "6.png", 62 | language: "Arabic", 63 | link: "https://en.wikipedia.org/wiki/One_Thousand_and_One_Nights\n", 64 | pages: 288, 65 | title: "One Thousand and One Nights", 66 | year: 1200, 67 | }, 68 | { 69 | id: "007", 70 | author: "Robert Cook", 71 | country: "Iceland", 72 | image: "7.png", 73 | language: "English", 74 | link: "https://en.wikipedia.org/wiki/Nj%C3%A1ls_saga\n", 75 | pages: 384, 76 | title: "Nj\u00e1l's Saga", 77 | year: 1350, 78 | }, 79 | { 80 | id: "008", 81 | author: "Jane Austen", 82 | country: "United Kingdom", 83 | image: "8.png", 84 | language: "English", 85 | link: "https://en.wikipedia.org/wiki/Pride_and_Prejudice\n", 86 | pages: 226, 87 | title: "Pride and Prejudice", 88 | year: 1813, 89 | }, 90 | { 91 | id: "009", 92 | author: "Honor\u00e9 de Balzac", 93 | country: "France", 94 | image: "9.png", 95 | language: "French", 96 | link: "https://en.wikipedia.org/wiki/Le_P%C3%A8re_Goriot\n", 97 | pages: 443, 98 | title: "Le P\u00e8re Goriot", 99 | year: 1835, 100 | }, 101 | { 102 | id: "010", 103 | author: "Samuel Beckett", 104 | country: "Republic of Ireland", 105 | image: "10.png", 106 | language: "French", 107 | link: "https://en.wikipedia.org/wiki/Molloy_(novel)\n", 108 | pages: 256, 109 | title: "Molloy, Malone Die", 110 | year: 1952, 111 | }, 112 | ]; 113 | 114 | export { books }; 115 | --------------------------------------------------------------------------------