Skip to content

Commit c2336c4

Browse files
authored
Merge pull request #310 from labzero/develop
Merge to master
2 parents bd9e356 + 4e8a22e commit c2336c4

File tree

22 files changed

+17216
-12458
lines changed

22 files changed

+17216
-12458
lines changed

.gitignore

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,14 @@ test-results.xml
4545
screenshots
4646
Dockerfile.bak
4747

48-
#Docker postgres-data
49-
postgres-data
48+
# Docker postgres-data
49+
postgres-data
50+
51+
# Yarn
52+
.pnp.*
53+
.yarn/*
54+
!.yarn/patches
55+
!.yarn/plugins
56+
!.yarn/releases
57+
!.yarn/sdks
58+
!.yarn/versions

.yarn/releases/yarn-3.5.1.cjs

Lines changed: 873 additions & 0 deletions
Large diffs are not rendered by default.

.yarnrc.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
nodeLinker: node-modules
2+
3+
yarnPath: .yarn/releases/yarn-3.5.1.cjs

package.json

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,12 @@
77
"npm": ">=5.0"
88
},
99
"browserslist": [
10-
">1%",
11-
"last 4 versions",
12-
"Firefox ESR",
13-
"not ie < 9"
10+
"defaults"
1411
],
1512
"dependencies": {
16-
"@babel/polyfill": "^7.0.0",
1713
"@googlemaps/js-api-loader": "^1.15.1",
1814
"@honeybadger-io/js": "^5.0.0",
15+
"@popperjs/core": "^2.11.7",
1916
"@reduxjs/toolkit": "^1.9.2",
2017
"bcrypt": "^5.1.0",
2118
"body-parser": "^1.18.3",
@@ -26,7 +23,7 @@
2623
"connect-flash": "^0.1.1",
2724
"connect-session-sequelize": "^7.1.5",
2825
"cookie-parser": "^1.4.6",
29-
"core-js": "^2.5.4",
26+
"core-js": "^3.30.2",
3027
"cors": "^2.8.3",
3128
"dayjs": "^1.11.7",
3229
"dotenv": "^2.0.0",
@@ -58,11 +55,10 @@
5855
"pretty-error": "^3.0.4",
5956
"prop-types": "^15.8.1",
6057
"query-string": "^7.1.3",
61-
"react": "^16.14.0",
58+
"react": "^18.2.0",
6259
"react-autosuggest": "^10.0.2",
6360
"react-bootstrap": "^2.7.0",
64-
"react-dom": "^16.14.0",
65-
"react-flip-move": "^3.0.5",
61+
"react-dom": "^18.2.0",
6662
"react-flip-toolkit": "^7.0.17",
6763
"react-geosuggest": "^2.14.1",
6864
"react-icons": "^4.7.1",
@@ -101,6 +97,9 @@
10197
"@jedmao/redux-mock-store": "^3.0.5",
10298
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.10",
10399
"@redux-devtools/extension": "^3.2.5",
100+
"@testing-library/dom": "^9.2.0",
101+
"@testing-library/react": "^14.0.0",
102+
"@testing-library/user-event": "^14.4.3",
104103
"@types/bcrypt": "^5.0.0",
105104
"@types/chai": "^4.3.4",
106105
"@types/compression": "^1.7.2",
@@ -120,34 +119,26 @@
120119
"@types/passport": "^1.0.11",
121120
"@types/passport-google-oauth20": "^2.0.11",
122121
"@types/passport-local": "^1.0.35",
123-
"@types/react-dom": "16.9.8",
122+
"@types/proxyquire": "^1.3.28",
123+
"@types/react-dom": "^18.2.4",
124124
"@types/uuid": "^9.0.0",
125125
"@types/webpack-env": "^1.18.0",
126126
"@typescript-eslint/eslint-plugin": "^5.59.1",
127127
"@typescript-eslint/parser": "^5.59.1",
128128
"assets-webpack-plugin": "^7.1.1",
129129
"autoprefixer": "^9.1.5",
130-
"babel-core": "^7.0.0-bridge.0",
131130
"babel-loader": "^9.1.0",
132131
"babel-plugin-istanbul": "^6.1.1",
133-
"babel-plugin-react-transform": "^2.0.2",
134132
"babel-plugin-transform-react-remove-prop-types": "^0.4.18",
135-
"babel-preset-env": "^1.5.2",
136-
"babel-preset-react": "^6.24.1",
137-
"babel-preset-react-optimize": "^1.0.1",
138-
"babel-preset-stage-2": "^6.24.1",
139-
"babel-template": "^6.25.0",
140-
"babel-types": "^6.25.0",
141133
"browser-sync": "2.29.1",
142134
"chai": "4.3.7",
135+
"chai-jsdom": "^0.2.3",
143136
"chokidar": "^3.5.3",
144137
"cross-env": "^5.0.1",
145138
"css-loader": "^6.7.3",
146139
"custom-event-polyfill": "^0.3.0",
147140
"cypress": "^12.5.1",
148141
"del": "^2.2.2",
149-
"enzyme": "^3.11.0",
150-
"enzyme-adapter-react-16": "^1.15.7",
151142
"es6-promise": "^4.1.0",
152143
"eslint": "^8.34.0",
153144
"eslint-config-airbnb": "^19.0.4",
@@ -157,12 +148,15 @@
157148
"eslint-plugin-import": "^2.27.5",
158149
"eslint-plugin-jsx-a11y": "^6.7.1",
159150
"eslint-plugin-react": "^7.32.2",
151+
"eslint-plugin-react-hooks": "^4.6.0",
160152
"file-loader": "^6.2.0",
161153
"fork-ts-checker-webpack-plugin": "^7.3.0",
162154
"git-repository": "^0.1.4",
163155
"glob": "^7.1.3",
156+
"global-jsdom": "^9.0.1",
164157
"husky": "^8.0.3",
165158
"identity-obj-proxy": "^3.0.0",
159+
"jsdom": "^22.0.0",
166160
"json-loader": "^0.5.7",
167161
"lint-staged": "^13.2.2",
168162
"mkdirp": "^2.1.3",
@@ -178,7 +172,7 @@
178172
"react-dev-utils": "^12.0.1",
179173
"react-error-overlay": "^4.0.1",
180174
"react-refresh": "^0.14.0",
181-
"react-test-renderer": "^16.14.0",
175+
"react-test-renderer": "^18.2.0",
182176
"rimraf": "^2.6.2",
183177
"sass": "^1.58.0",
184178
"sass-loader": "^13.2.0",
@@ -259,5 +253,6 @@
259253
"serve": "babel-node tools/run runServer || true",
260254
"start": "babel-node tools/run start",
261255
"prepare": "husky install"
262-
}
256+
},
257+
"packageManager": "yarn@3.5.1"
263258
}

src/client.tsx

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@
99

1010
import 'whatwg-fetch';
1111
import es6Promise from 'es6-promise';
12-
import React from 'react';
13-
import ReactDOM from 'react-dom';
12+
import React, { useEffect } from 'react';
13+
import { createRoot, hydrateRoot } from 'react-dom/client';
1414
import queryString from 'query-string';
1515
import { Action, createPath, Location } from 'history';
16+
import { ResolveContext } from 'universal-router';
1617
import App from './components/App';
1718
import createFetch from './createFetch';
1819
import configureStore from './store/configureStore';
1920
import history from './history';
2021
import { updateMeta } from './DOMUtils';
2122
import routerCreator from './router';
22-
import { ResolveContext } from 'universal-router';
2323
import { Style } from '../global';
2424

2525
es6Promise.polyfill();
@@ -82,13 +82,15 @@ const scrollPositionsHistory: {[index: string]: { scrollX: number, scrollY: numb
8282

8383
let routes;
8484
if (subdomain) {
85-
routes = require('./routes/team').default; // eslint-disable-line global-require
85+
routes = require('./routes/team').default; // eslint-disable-line global-require, @typescript-eslint/no-var-requires
8686
} else {
87-
routes = require('./routes/main').default; // eslint-disable-line global-require
87+
routes = require('./routes/main').default; // eslint-disable-line global-require, @typescript-eslint/no-var-requires
8888
}
8989

9090
const router = routerCreator(routes);
9191

92+
const root = createRoot(container!);
93+
9294
// Re-render the app when window.location changes
9395
const onLocationChange = async ({ action, location }: { action?: Action, location: Location }) => {
9496
// Remember the latest scroll position for the previous location
@@ -129,11 +131,8 @@ const onLocationChange = async ({ action, location }: { action?: Action, locatio
129131
return;
130132
}
131133

132-
const renderReactApp = isInitialRender ? ReactDOM.hydrate : ReactDOM.render;
133-
renderReactApp(
134-
<App context={context}>{route.component}</App>,
135-
container,
136-
() => {
134+
const AppWithCallbackAfterRender = () => {
135+
useEffect(() => {
137136
if (isInitialRender) {
138137
// Switch off the native scroll restoration behavior and handle it manually
139138
// https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration
@@ -182,8 +181,16 @@ const onLocationChange = async ({ action, location }: { action?: Action, locatio
182181
if (window.ga) {
183182
window.ga('send', 'pageview', createPath(location));
184183
}
185-
}
186-
);
184+
});
185+
186+
return <App context={context}>{route.component}</App>;
187+
};
188+
189+
if (isInitialRender) {
190+
hydrateRoot(container!, <AppWithCallbackAfterRender />);
191+
} else {
192+
root.render(<AppWithCallbackAfterRender />);
193+
}
187194
} catch (error) {
188195
if (__DEV__) {
189196
throw error;
@@ -197,7 +204,7 @@ const onLocationChange = async ({ action, location }: { action?: Action, locatio
197204
window.location.reload();
198205
}
199206
}
200-
}
207+
};
201208

202209
// Handle client-side navigation by using HTML5 History API
203210
// For more information visit https://github.com/mjackson/history#readme

src/components/AddUserForm/AddUserForm.test.js

Lines changed: 0 additions & 103 deletions
This file was deleted.

0 commit comments

Comments
 (0)