diff --git a/.eslintrc.json b/.eslintrc.json
index 2ad69917..c47385dc 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -36,6 +36,13 @@
"no-unused-vars": "off",
"react/jsx-filename-extension": ["warn", { "extensions": [".tsx"] }],
"import/extensions": "off",
- "prettier/prettier": ["error", { "endOfLine": "auto" }]
+ "prettier/prettier": ["error", { "endOfLine": "auto" }],
+ "react/function-component-definition": [
+ 2,
+ {
+ "namedComponents": "arrow-function",
+ "unnamedComponents": "arrow-function"
+ }
+ ]
}
}
diff --git a/.prettierrc b/.prettierrc
index 17982b21..c6df960b 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -8,5 +8,5 @@
"arrowParens": "avoid",
"orderedImports": true,
"bracketSpacing": true,
- "jsxBracketSameLine": false
+ "jsxBracketSameLine": true
}
diff --git a/package-lock.json b/package-lock.json
index 0743b960..25834f52 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,11 +13,11 @@
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/node": "^16.18.50",
- "@types/react": "^18.2.21",
"@types/react-dom": "^18.2.7",
"firebase": "^10.3.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "react-responsive-carousel": "^3.2.23",
"react-router-dom": "^6.15.0",
"react-scripts": "5.0.1",
"styled-components": "^6.0.7",
@@ -26,6 +26,7 @@
"web-vitals": "^2.1.4"
},
"devDependencies": {
+ "@types/react": "^18.2.21",
"eslint": "^8.49.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^9.0.0",
@@ -6579,6 +6580,11 @@
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
"integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
},
+ "node_modules/classnames": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ },
"node_modules/clean-css": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
@@ -15705,6 +15711,17 @@
"react": "^18.2.0"
}
},
+ "node_modules/react-easy-swipe": {
+ "version": "0.0.21",
+ "resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz",
+ "integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==",
+ "dependencies": {
+ "prop-types": "^15.5.8"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/react-error-overlay": {
"version": "6.0.11",
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
@@ -15723,6 +15740,16 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-responsive-carousel": {
+ "version": "3.2.23",
+ "resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz",
+ "integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==",
+ "dependencies": {
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.8",
+ "react-easy-swipe": "^0.0.21"
+ }
+ },
"node_modules/react-router": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.15.0.tgz",
@@ -23668,6 +23695,11 @@
"resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz",
"integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ=="
},
+ "classnames": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
+ "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ },
"clean-css": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
@@ -30068,6 +30100,14 @@
"scheduler": "^0.23.0"
}
},
+ "react-easy-swipe": {
+ "version": "0.0.21",
+ "resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz",
+ "integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==",
+ "requires": {
+ "prop-types": "^15.5.8"
+ }
+ },
"react-error-overlay": {
"version": "6.0.11",
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
@@ -30083,6 +30123,16 @@
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
"integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A=="
},
+ "react-responsive-carousel": {
+ "version": "3.2.23",
+ "resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz",
+ "integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==",
+ "requires": {
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.8",
+ "react-easy-swipe": "^0.0.21"
+ }
+ },
"react-router": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.15.0.tgz",
diff --git a/package.json b/package.json
index d6c9aaf3..0ac31c27 100644
--- a/package.json
+++ b/package.json
@@ -8,11 +8,11 @@
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/node": "^16.18.50",
- "@types/react": "^18.2.21",
"@types/react-dom": "^18.2.7",
"firebase": "^10.3.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
+ "react-responsive-carousel": "^3.2.23",
"react-router-dom": "^6.15.0",
"react-scripts": "5.0.1",
"styled-components": "^6.0.7",
@@ -45,6 +45,7 @@
]
},
"devDependencies": {
+ "@types/react": "^18.2.21",
"eslint": "^8.49.0",
"eslint-config-airbnb": "^19.0.4",
"eslint-config-prettier": "^9.0.0",
diff --git a/src/App.tsx b/src/App.tsx
index f33f2e09..22cb55a2 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,13 +1,18 @@
-import { BrowserRouter, Routes } from "react-router-dom";
+import { BrowserRouter, Route, Routes } from "react-router-dom";
+import Header from "./components/common/Header";
+import Home from "./pages/Home";
import GlobalStyle from "./styles/globalStyle";
-function App() {
+const App = () => {
return (