diff --git a/reactapp/README.md b/reactapp/README.md deleted file mode 100644 index 8b13789..0000000 --- a/reactapp/README.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/reactapp/package-lock.json b/reactapp/package-lock.json index e129d10..1c5dd0b 100644 --- a/reactapp/package-lock.json +++ b/reactapp/package-lock.json @@ -11,11 +11,16 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "@types/jest": "^29.5.12", + "@types/node": "^20.11.16", + "@types/react": "^18.2.51", + "@types/react-dom": "^18.2.18", "node-sass": "^9.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", "scss": "^0.2.4", + "typescript": "^5.3.3", "web-vitals": "^2.1.4" } }, @@ -4200,9 +4205,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.11", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", - "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -4456,9 +4461,9 @@ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==" }, "node_modules/@types/node": { - "version": "20.11.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.14.tgz", - "integrity": "sha512-w3yWCcwULefjP9DmDDsgUskrMoOy5Z8MiwKHr1FvqGPtx7CvJzQvxD7eKpxNtklQxLruxSXWddyeRtyud0RcXQ==", + "version": "20.11.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", + "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -4507,9 +4512,9 @@ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "node_modules/@types/react": { - "version": "18.2.49", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.49.tgz", - "integrity": "sha512-nEJonYlS7+LUVdqRBHldXLRa7ZDeOm/rJbJwGbjmn2hqhmdO4C6vSgvhhNv2qBDhGSv2oLuUA+f5JtyUJDY6bA==", + "version": "18.2.51", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.51.tgz", + "integrity": "sha512-XeoMaU4CzyjdRr3c4IQQtiH7Rpo18V07rYZUucEZQwOUEtGgTXv7e6igQiQ+xnV6MbMe1qjEmKdgMNnfppnXfg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -18543,16 +18548,15 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "peer": true, + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { diff --git a/reactapp/package.json b/reactapp/package.json index 37d4722..4a8849a 100644 --- a/reactapp/package.json +++ b/reactapp/package.json @@ -6,11 +6,16 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "@types/jest": "^29.5.12", + "@types/node": "^20.11.16", + "@types/react": "^18.2.51", + "@types/react-dom": "^18.2.18", "node-sass": "^9.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", "scss": "^0.2.4", + "typescript": "^5.3.3", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/reactapp/public/favicon.ico b/reactapp/public/favicon.ico index a11777c..97101f6 100644 Binary files a/reactapp/public/favicon.ico and b/reactapp/public/favicon.ico differ diff --git a/reactapp/src/App.js b/reactapp/src/App.tsx similarity index 95% rename from reactapp/src/App.js rename to reactapp/src/App.tsx index 1bf1496..4d5cf54 100644 --- a/reactapp/src/App.js +++ b/reactapp/src/App.tsx @@ -5,6 +5,7 @@ import ProfilePage from "./components/pages/ProfilePage"; import ScamPage from "./components/pages/ScamPage"; import Header from "./components/blocks/Header"; import SearchIcon from "../src/assets/icons/search-form__icon.svg"; +import React from "react"; export default function App() { return ( diff --git a/reactapp/src/components/blocks/CatalogMenu.jsx b/reactapp/src/components/blocks/CatalogMenu.tsx similarity index 100% rename from reactapp/src/components/blocks/CatalogMenu.jsx rename to reactapp/src/components/blocks/CatalogMenu.tsx diff --git a/reactapp/src/components/blocks/Header.jsx b/reactapp/src/components/blocks/Header.tsx similarity index 99% rename from reactapp/src/components/blocks/Header.jsx rename to reactapp/src/components/blocks/Header.tsx index cb80485..21d3b14 100644 --- a/reactapp/src/components/blocks/Header.jsx +++ b/reactapp/src/components/blocks/Header.tsx @@ -1,4 +1,6 @@ -export default function Header() { +import React from "react"; + +export default function Header(SearchIcon:any) { return(

SuSMarket

diff --git a/reactapp/src/components/blocks/LoginMenu.jsx b/reactapp/src/components/blocks/LoginMenu.tsx similarity index 74% rename from reactapp/src/components/blocks/LoginMenu.jsx rename to reactapp/src/components/blocks/LoginMenu.tsx index f26c36a..f4b255b 100644 --- a/reactapp/src/components/blocks/LoginMenu.jsx +++ b/reactapp/src/components/blocks/LoginMenu.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function LoginMenu() { return( <> diff --git a/reactapp/src/components/blocks/PopupMap.jsx b/reactapp/src/components/blocks/PopupMap.tsx similarity index 73% rename from reactapp/src/components/blocks/PopupMap.jsx rename to reactapp/src/components/blocks/PopupMap.tsx index fcc8f36..f894818 100644 --- a/reactapp/src/components/blocks/PopupMap.jsx +++ b/reactapp/src/components/blocks/PopupMap.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function PopupMap() { return( <> diff --git a/reactapp/src/components/blocks/ProductCard.jsx b/reactapp/src/components/blocks/ProductCard.tsx similarity index 74% rename from reactapp/src/components/blocks/ProductCard.jsx rename to reactapp/src/components/blocks/ProductCard.tsx index 593b9ab..7411694 100644 --- a/reactapp/src/components/blocks/ProductCard.jsx +++ b/reactapp/src/components/blocks/ProductCard.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function ProductCard() { return( <> diff --git a/reactapp/src/components/pages/HomePage.jsx b/reactapp/src/components/pages/HomePage.tsx similarity index 76% rename from reactapp/src/components/pages/HomePage.jsx rename to reactapp/src/components/pages/HomePage.tsx index 04151e5..b9d9b5e 100644 --- a/reactapp/src/components/pages/HomePage.jsx +++ b/reactapp/src/components/pages/HomePage.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function HomePage() { return(
diff --git a/reactapp/src/components/pages/PaymentPage.jsx b/reactapp/src/components/pages/PaymentPage.tsx similarity index 74% rename from reactapp/src/components/pages/PaymentPage.jsx rename to reactapp/src/components/pages/PaymentPage.tsx index d21998d..50b5b9c 100644 --- a/reactapp/src/components/pages/PaymentPage.jsx +++ b/reactapp/src/components/pages/PaymentPage.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function PaymentPage() { return( <> diff --git a/reactapp/src/components/pages/ProductPage.jsx b/reactapp/src/components/pages/ProductPage.tsx similarity index 74% rename from reactapp/src/components/pages/ProductPage.jsx rename to reactapp/src/components/pages/ProductPage.tsx index 06cba59..864725e 100644 --- a/reactapp/src/components/pages/ProductPage.jsx +++ b/reactapp/src/components/pages/ProductPage.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function ProductPage() { return( <> diff --git a/reactapp/src/components/pages/ProfilePage.jsx b/reactapp/src/components/pages/ProfilePage.tsx similarity index 74% rename from reactapp/src/components/pages/ProfilePage.jsx rename to reactapp/src/components/pages/ProfilePage.tsx index e509c1c..eda25f7 100644 --- a/reactapp/src/components/pages/ProfilePage.jsx +++ b/reactapp/src/components/pages/ProfilePage.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function ProfilePage() { return( <> diff --git a/reactapp/src/components/pages/ScamPage.jsx b/reactapp/src/components/pages/ScamPage.tsx similarity index 73% rename from reactapp/src/components/pages/ScamPage.jsx rename to reactapp/src/components/pages/ScamPage.tsx index 626a978..4d40bea 100644 --- a/reactapp/src/components/pages/ScamPage.jsx +++ b/reactapp/src/components/pages/ScamPage.tsx @@ -1,3 +1,5 @@ +import React from "react"; + export default function ScamPage() { return( <> diff --git a/reactapp/src/custom.d.ts b/reactapp/src/custom.d.ts new file mode 100644 index 0000000..6db6710 --- /dev/null +++ b/reactapp/src/custom.d.ts @@ -0,0 +1,4 @@ +declare module "*.svg" { + const content: React.FunctionComponent>; + export default content; +} \ No newline at end of file diff --git a/reactapp/src/index.js b/reactapp/src/index.tsx similarity index 93% rename from reactapp/src/index.js rename to reactapp/src/index.tsx index 0fa9200..35f43de 100644 --- a/reactapp/src/index.js +++ b/reactapp/src/index.tsx @@ -4,7 +4,7 @@ import './index.scss'; import './reset.css'; import App from './App'; -const root = ReactDOM.createRoot(document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement); root.render( diff --git a/reactapp/tsconfig.json b/reactapp/tsconfig.json new file mode 100644 index 0000000..ed3b361 --- /dev/null +++ b/reactapp/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "es2016", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "noEmit": true, + "jsx": "react" + }, + "include": [ + "src", + "src/components", + "src/custom.d.ts" + ] +}