diff --git a/api/package.json b/api/package.json index 20a5339..8043fbd 100644 --- a/api/package.json +++ b/api/package.json @@ -8,20 +8,17 @@ "test": "jest --coverage" }, "dependencies": { - "google-it": "^1.2.1", "isomorphic-unfetch": "^3.0.0", "npm-name": "^5.5.0", - "typescript": "^3.6.2", "whois-json": "^2.0.4" }, "devDependencies": { - "@types/jest": "^24.0.18", - "@types/nock": "^10.0.3", - "@types/node": "^12.7.3", + "@types/jest": "^25.1.1", + "@types/node": "^13.7.0", "@types/node-fetch": "^2.5.0", "jest": "^24.9.0", - "nock": "^10.0.6", - "ts-jest": "^24.0.2" + "nock": "^11.7.2", + "ts-jest": "^25.2.0" }, "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 6be17ac..1f3eeb5 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "test": "CI=true yarn workspaces run test" }, "dependencies": { - "now": "^16.7.0" + "typescript": "^3.7.5" }, "devDependencies": { "@sentry/cli": "^1.49.0", diff --git a/web/package.json b/web/package.json index d64ac01..0b0a573 100644 --- a/web/package.json +++ b/web/package.json @@ -11,11 +11,11 @@ "test": "react-scripts test --coverage" }, "dependencies": { - "@sentry/browser": "^5.6.3", + "@sentry/browser": "^5.12.1", "fetch-suspense": "^1.2.0", - "i18next": ">=17.0.12", - "i18next-browser-languagedetector": "^3.0.3", - "i18next-chained-backend": "^2.0.0", + "i18next": ">=19.1.0", + "i18next-browser-languagedetector": "^4.0.1", + "i18next-chained-backend": "^2.0.1", "i18next-localstorage-backend": "^3.0.0", "i18next-xhr-backend": "^3.1.2", "isomorphic-unfetch": "^3.0.0", @@ -24,23 +24,29 @@ "react-dom": "^16.9.0", "react-ga": "^2.6.0", "react-helmet": "^5.2.1", - "react-i18next": "10.12.2", - "react-icons": "^3.7.0", - "react-router-dom": "^5.0.1", - "react-scripts": "3.3.0", - "react-spinners": "^0.6.1", - "react-tippy": "^1.2.3", - "styled-components": "^4.3.2", - "typescript": "3.7.4" + "react-i18next": "11.3.1", + "react-icons": "^3.9.0", + "react-router": "^5.1.2", + "react-router-dom": "^5.1.2", + "react-scripts": "3.3.1", + "react-spinners": "^0.8.0", + "react-tippy": "^1.3.4", + "styled-components": "^5.0.1" }, "devDependencies": { - "@testing-library/jest-dom": "^4.1.0", + "@testing-library/jest-dom": "^5.1.1", "@testing-library/react": "^9.1.4", "@types/i18next-node-fs-backend": "^2.1.0", - "@types/jest": "^24.0.18", - "@types/node": "^12.7.3", - "@types/react-helmet": "^5.0.9", - "@types/styled-components": "^4.1.18", + "@types/jest": "^25.1.1", + "@types/node": "^13.7.0", + "@types/react-helmet": "^5.0.15", + "@types/react-router-dom": "^5.1.3", + "@types/styled-components": "^4.4.2", + "@typescript-eslint/eslint-plugin": "^2.19.0", + "@typescript-eslint/parser": "^2.19.0", + "eslint-config-prettier": "^6.10.0", + "eslint-plugin-react": "^7.18.3", + "husky": "^4.2.1", "i18next-node-fs-backend": "^2.1.3" }, "browserslist": { diff --git a/web/src/App.test.tsx b/web/src/App.test.tsx index ecf2761..b30c444 100644 --- a/web/src/App.test.tsx +++ b/web/src/App.test.tsx @@ -1,12 +1,14 @@ import React, {Suspense} from 'react'; import {render, waitForElement} from '@testing-library/react'; - +import {BrowserRouter as Router} from 'react-router-dom'; import App from './App'; it('renders welcome message', async () => { const {getByText} = render( loading}> - + + + , ); const text = await waitForElement(() => getByText('name new project')); diff --git a/web/src/App.tsx b/web/src/App.tsx index dbe3f5f..63ba56d 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -1,8 +1,7 @@ -import React, {useState} from 'react'; +import React from 'react'; import styled, {createGlobalStyle} from 'styled-components'; import {Helmet} from 'react-helmet'; import {useTranslation} from 'react-i18next'; -import {sendQueryStatistics} from './util/analytics'; import Welcome from './components/Welcome'; import Form from './components/Form'; @@ -11,33 +10,55 @@ import Footer from './components/Footer'; import {mobile} from './util/css'; import {isStandalone} from './util/pwa'; +import {Switch, Route, useParams} from 'react-router-dom'; export default function App() { - const [query, setQuery] = useState(''); - const {t} = useTranslation(); - - function onQuery(query: string) { - setQuery(query); - sendQueryStatistics(query.length); - } - return ( <> + + + + + + + + +