aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Muhamed <unknown>2023-05-27 16:33:26 +0530
committerLibravatar muhamedsalih-tw <104364298+muhamedsalih-tw@users.noreply.github.com>2023-07-23 22:15:29 +0530
commit792077667f19668d7a602f6a40d18517f21d240c (patch)
treee7c3ec4fe4d2d92d8d86159a4d926e29178edacc
parent6.4.1-nightly.10 [skip ci] (diff)
downloadferdium-app-792077667f19668d7a602f6a40d18517f21d240c.tar.gz
ferdium-app-792077667f19668d7a602f6a40d18517f21d240c.tar.zst
ferdium-app-792077667f19668d7a602f6a40d18517f21d240c.zip
update react-router-dom,react-tooltip& react-transition-group
-rw-r--r--package.json7
-rw-r--r--pnpm-lock.yaml95
-rw-r--r--src/components/layout/Sidebar.tsx34
-rw-r--r--src/components/services/tabs/TabItem.tsx3
-rw-r--r--src/components/settings/account/AccountDashboard.tsx9
-rw-r--r--src/components/settings/services/ServiceItem.tsx20
-rw-r--r--src/components/settings/team/TeamDashboard.tsx9
-rw-r--r--src/components/ui/effects/Appear.tsx27
-rw-r--r--src/features/webControls/components/WebControls.tsx22
-rw-r--r--src/features/workspaces/components/WorkspaceDrawer.tsx13
-rw-r--r--src/features/workspaces/components/WorkspaceDrawerItem.tsx3
-rw-r--r--src/routes.tsx1
-rw-r--r--src/styles/main.scss1
13 files changed, 150 insertions, 94 deletions
diff --git a/package.json b/package.json
index 75b9280c1..346076ce1 100644
--- a/package.json
+++ b/package.json
@@ -108,11 +108,11 @@
108 "react-jss": "10.10.0", 108 "react-jss": "10.10.0",
109 "react-loader": "2.4.7", 109 "react-loader": "2.4.7",
110 "react-modal": "3.16.1", 110 "react-modal": "3.16.1",
111 "react-router-dom": "6.4.2", 111 "react-router-dom": "6.11.2",
112 "react-sortable-hoc": "2.0.0", 112 "react-sortable-hoc": "2.0.0",
113 "react-tooltip": "4.5.1", 113 "react-tooltip": "5.13.1",
114 "react-topbar-progress-indicator": "4.1.1", 114 "react-topbar-progress-indicator": "4.1.1",
115 "react-transition-group": "1.2.1", 115 "react-transition-group": "4.4.5",
116 "route-parser": "0.0.5", 116 "route-parser": "0.0.5",
117 "sanitize-filename": "1.6.3", 117 "sanitize-filename": "1.6.3",
118 "semver": "7.5.4", 118 "semver": "7.5.4",
@@ -138,6 +138,7 @@
138 "@types/node": "18.15.3", 138 "@types/node": "18.15.3",
139 "@types/react": "18.2.12", 139 "@types/react": "18.2.12",
140 "@types/react-dom": "18.2.5", 140 "@types/react-dom": "18.2.5",
141 "@types/react-transition-group": "4.4.6",
141 "@types/route-parser": "0.1.4", 142 "@types/route-parser": "0.1.4",
142 "@types/tar": "6.1.5", 143 "@types/tar": "6.1.5",
143 "@types/uuid": "9.0.2", 144 "@types/uuid": "9.0.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index b47b513c8..ba3edd91b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -204,20 +204,20 @@ dependencies:
204 specifier: 3.16.1 204 specifier: 3.16.1
205 version: 3.16.1(react-dom@18.2.0)(react@18.2.0) 205 version: 3.16.1(react-dom@18.2.0)(react@18.2.0)
206 react-router-dom: 206 react-router-dom:
207 specifier: 6.4.2 207 specifier: 6.11.2
208 version: 6.4.2(react-dom@18.2.0)(react@18.2.0) 208 version: 6.11.2(react-dom@18.2.0)(react@18.2.0)
209 react-sortable-hoc: 209 react-sortable-hoc:
210 specifier: 2.0.0 210 specifier: 2.0.0
211 version: 2.0.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0) 211 version: 2.0.0(prop-types@15.8.1)(react-dom@18.2.0)(react@18.2.0)
212 react-tooltip: 212 react-tooltip:
213 specifier: 4.5.1 213 specifier: 5.13.1
214 version: 4.5.1(react-dom@18.2.0)(react@18.2.0) 214 version: 5.13.1(react-dom@18.2.0)(react@18.2.0)
215 react-topbar-progress-indicator: 215 react-topbar-progress-indicator:
216 specifier: 4.1.1 216 specifier: 4.1.1
217 version: 4.1.1(react@18.2.0) 217 version: 4.1.1(react@18.2.0)
218 react-transition-group: 218 react-transition-group:
219 specifier: 1.2.1 219 specifier: 4.4.5
220 version: 1.2.1(react-dom@18.2.0)(react@18.2.0) 220 version: 4.4.5(react-dom@18.2.0)(react@18.2.0)
221 route-parser: 221 route-parser:
222 specifier: 0.0.5 222 specifier: 0.0.5
223 version: 0.0.5 223 version: 0.0.5
@@ -297,6 +297,9 @@ devDependencies:
297 '@types/react-dom': 297 '@types/react-dom':
298 specifier: 18.2.5 298 specifier: 18.2.5
299 version: 18.2.5 299 version: 18.2.5
300 '@types/react-transition-group':
301 specifier: 4.4.6
302 version: 4.4.6
300 '@types/route-parser': 303 '@types/route-parser':
301 specifier: 0.1.4 304 specifier: 0.1.4
302 version: 0.1.4 305 version: 0.1.4
@@ -1511,6 +1514,16 @@ packages:
1511 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1514 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1512 dev: true 1515 dev: true
1513 1516
1517 /@floating-ui/core@1.3.1:
1518 resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==}
1519 dev: false
1520
1521 /@floating-ui/dom@1.4.3:
1522 resolution: {integrity: sha512-nB/68NyaQlcdY22L+Fgd1HERQ7UGv7XFN+tPxwrEfQL4nKtAP/jIZnZtpUlXbtV+VEGHh6W/63Gy2C5biWI3sA==}
1523 dependencies:
1524 '@floating-ui/core': 1.3.1
1525 dev: false
1526
1514 /@formatjs/cli@6.1.3: 1527 /@formatjs/cli@6.1.3:
1515 resolution: {integrity: sha512-PdTXZTY8LqxwmvFqdifn89gjXnPUpGtGyFs0BnoeLuOuxZFSnBfIs5WQCVMaJnr1+0vNNlXyT0VAIAwjRpf6BA==} 1528 resolution: {integrity: sha512-PdTXZTY8LqxwmvFqdifn89gjXnPUpGtGyFs0BnoeLuOuxZFSnBfIs5WQCVMaJnr1+0vNNlXyT0VAIAwjRpf6BA==}
1516 engines: {node: '>= 16'} 1529 engines: {node: '>= 16'}
@@ -2195,8 +2208,8 @@ packages:
2195 dev: true 2208 dev: true
2196 optional: true 2209 optional: true
2197 2210
2198 /@remix-run/router@1.0.2: 2211 /@remix-run/router@1.6.2:
2199 resolution: {integrity: sha512-GRSOFhJzjGN+d4sKHTMSvNeUPoZiDHWmRnXfzaxrqe7dE/Nzlc8BiMSJdLDESZlndM7jIUrZ/F4yWqVYlI0rwQ==} 2212 resolution: {integrity: sha512-LzqpSrMK/3JBAVBI9u3NWtOhWNw5AMQfrUFYB0+bDHTSw17z++WJLsPsxAuK+oSddsxk4d7F/JcdDPM1M5YAhA==}
2200 engines: {node: '>=14'} 2213 engines: {node: '>=14'}
2201 dev: false 2214 dev: false
2202 2215
@@ -2529,6 +2542,12 @@ packages:
2529 '@types/react': 18.2.12 2542 '@types/react': 18.2.12
2530 dev: true 2543 dev: true
2531 2544
2545 /@types/react-transition-group@4.4.6:
2546 resolution: {integrity: sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==}
2547 dependencies:
2548 '@types/react': 18.2.12
2549 dev: true
2550
2532 /@types/react@18.2.12: 2551 /@types/react@18.2.12:
2533 resolution: {integrity: sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==} 2552 resolution: {integrity: sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==}
2534 dependencies: 2553 dependencies:
@@ -3887,10 +3906,6 @@ packages:
3887 resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} 3906 resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
3888 dev: false 3907 dev: false
3889 3908
3890 /chain-function@1.0.1:
3891 resolution: {integrity: sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg==}
3892 dev: false
3893
3894 /chainsaw@0.1.0: 3909 /chainsaw@0.1.0:
3895 resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} 3910 resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==}
3896 dependencies: 3911 dependencies:
@@ -4776,10 +4791,11 @@ packages:
4776 esutils: 2.0.3 4791 esutils: 2.0.3
4777 dev: true 4792 dev: true
4778 4793
4779 /dom-helpers@3.4.0: 4794 /dom-helpers@5.2.1:
4780 resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} 4795 resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
4781 dependencies: 4796 dependencies:
4782 '@babel/runtime': 7.21.5 4797 '@babel/runtime': 7.21.5
4798 csstype: 3.1.2
4783 dev: false 4799 dev: false
4784 4800
4785 /dot-prop@5.3.0: 4801 /dot-prop@5.3.0:
@@ -10114,26 +10130,26 @@ packages:
10114 warning: 4.0.3 10130 warning: 4.0.3
10115 dev: false 10131 dev: false
10116 10132
10117 /react-router-dom@6.4.2(react-dom@18.2.0)(react@18.2.0): 10133 /react-router-dom@6.11.2(react-dom@18.2.0)(react@18.2.0):
10118 resolution: {integrity: sha512-yM1kjoTkpfjgczPrcyWrp+OuQMyB1WleICiiGfstnQYo/S8hPEEnVjr/RdmlH6yKK4Tnj1UGXFSa7uwAtmDoLQ==} 10134 resolution: {integrity: sha512-JNbKtAeh1VSJQnH6RvBDNhxNwemRj7KxCzc5jb7zvDSKRnPWIFj9pO+eXqjM69gQJ0r46hSz1x4l9y0651DKWw==}
10119 engines: {node: '>=14'} 10135 engines: {node: '>=14'}
10120 peerDependencies: 10136 peerDependencies:
10121 react: '>=16.8' 10137 react: '>=16.8'
10122 react-dom: '>=16.8' 10138 react-dom: '>=16.8'
10123 dependencies: 10139 dependencies:
10124 '@remix-run/router': 1.0.2 10140 '@remix-run/router': 1.6.2
10125 react: 18.2.0 10141 react: 18.2.0
10126 react-dom: 18.2.0(react@18.2.0) 10142 react-dom: 18.2.0(react@18.2.0)
10127 react-router: 6.4.2(react@18.2.0) 10143 react-router: 6.11.2(react@18.2.0)
10128 dev: false 10144 dev: false
10129 10145
10130 /react-router@6.4.2(react@18.2.0): 10146 /react-router@6.11.2(react@18.2.0):
10131 resolution: {integrity: sha512-Rb0BAX9KHhVzT1OKhMvCDMw776aTYM0DtkxqUBP8dNBom3mPXlfNs76JNGK8wKJ1IZEY1+WGj+cvZxHVk/GiKw==} 10147 resolution: {integrity: sha512-74z9xUSaSX07t3LM+pS6Un0T55ibUE/79CzfZpy5wsPDZaea1F8QkrsiyRnA2YQ7LwE/umaydzXZV80iDCPkMg==}
10132 engines: {node: '>=14'} 10148 engines: {node: '>=14'}
10133 peerDependencies: 10149 peerDependencies:
10134 react: '>=16.8' 10150 react: '>=16.8'
10135 dependencies: 10151 dependencies:
10136 '@remix-run/router': 1.0.2 10152 '@remix-run/router': 1.6.2
10137 react: 18.2.0 10153 react: 18.2.0
10138 dev: false 10154 dev: false
10139 10155
@@ -10151,17 +10167,16 @@ packages:
10151 react-dom: 18.2.0(react@18.2.0) 10167 react-dom: 18.2.0(react@18.2.0)
10152 dev: false 10168 dev: false
10153 10169
10154 /react-tooltip@4.5.1(react-dom@18.2.0)(react@18.2.0): 10170 /react-tooltip@5.13.1(react-dom@18.2.0)(react@18.2.0):
10155 resolution: {integrity: sha512-Zo+CSFUGXar1uV+bgXFFDe7VeS2iByeIp5rTgTcc2HqtuOS5D76QapejNNfx320MCY91TlhTQat36KGFTqgcvw==} 10171 resolution: {integrity: sha512-9NstDFdjyy6cIH9zjeT70zXTHlW/TIGCOWQmhkAyqLFeQioLg1FXvb9ec7AxSpn0zyFUkFSLdFYxZRuewti3Aw==}
10156 engines: {npm: '>=6.13'}
10157 peerDependencies: 10172 peerDependencies:
10158 react: '>=16.0.0' 10173 react: '>=16.14.0'
10159 react-dom: '>=16.0.0' 10174 react-dom: '>=16.14.0'
10160 dependencies: 10175 dependencies:
10161 prop-types: 15.8.1 10176 '@floating-ui/dom': 1.4.3
10177 classnames: 2.3.2
10162 react: 18.2.0 10178 react: 18.2.0
10163 react-dom: 18.2.0(react@18.2.0) 10179 react-dom: 18.2.0(react@18.2.0)
10164 uuid: 7.0.3
10165 dev: false 10180 dev: false
10166 10181
10167 /react-topbar-progress-indicator@4.1.1(react@18.2.0): 10182 /react-topbar-progress-indicator@4.1.1(react@18.2.0):
@@ -10173,19 +10188,18 @@ packages:
10173 topbar: 0.1.4 10188 topbar: 0.1.4
10174 dev: false 10189 dev: false
10175 10190
10176 /react-transition-group@1.2.1(react-dom@18.2.0)(react@18.2.0): 10191 /react-transition-group@4.4.5(react-dom@18.2.0)(react@18.2.0):
10177 resolution: {integrity: sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==} 10192 resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
10178 peerDependencies: 10193 peerDependencies:
10179 react: ^15.0.0 || ^16.0.0 10194 react: '>=16.6.0'
10180 react-dom: ^15.0.0 || ^16.0.0 10195 react-dom: '>=16.6.0'
10181 dependencies: 10196 dependencies:
10182 chain-function: 1.0.1 10197 '@babel/runtime': 7.21.5
10183 dom-helpers: 3.4.0 10198 dom-helpers: 5.2.1
10184 loose-envify: 1.4.0 10199 loose-envify: 1.4.0
10185 prop-types: 15.8.1 10200 prop-types: 15.8.1
10186 react: 18.2.0 10201 react: 18.2.0
10187 react-dom: 18.2.0(react@18.2.0) 10202 react-dom: 18.2.0(react@18.2.0)
10188 warning: 3.0.0
10189 dev: false 10203 dev: false
10190 10204
10191 /react-window@1.8.8(react-dom@18.2.0)(react@18.2.0): 10205 /react-window@1.8.8(react-dom@18.2.0)(react@18.2.0):
@@ -11983,11 +11997,6 @@ packages:
11983 hasBin: true 11997 hasBin: true
11984 dev: false 11998 dev: false
11985 11999
11986 /uuid@7.0.3:
11987 resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==}
11988 hasBin: true
11989 dev: false
11990
11991 /uuid@8.3.2: 12000 /uuid@8.3.2:
11992 resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 12001 resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
11993 hasBin: true 12002 hasBin: true
@@ -12092,12 +12101,6 @@ packages:
12092 engines: {node: '>=0.10.0'} 12101 engines: {node: '>=0.10.0'}
12093 dev: false 12102 dev: false
12094 12103
12095 /warning@3.0.0:
12096 resolution: {integrity: sha512-jMBt6pUrKn5I+OGgtQ4YZLdhIeJmObddh6CsibPxyQ5yPZm1XExSyzC1LCNX7BzhxWgiHmizBWJTHJIjMjTQYQ==}
12097 dependencies:
12098 loose-envify: 1.4.0
12099 dev: false
12100
12101 /warning@4.0.3: 12104 /warning@4.0.3:
12102 resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} 12105 resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
12103 dependencies: 12106 dependencies:
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx
index fac424477..2b1e87023 100644
--- a/src/components/layout/Sidebar.tsx
+++ b/src/components/layout/Sidebar.tsx
@@ -1,5 +1,5 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import ReactTooltip from 'react-tooltip'; 2import { Tooltip as ReactTooltip } from 'react-tooltip';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import { inject, observer } from 'mobx-react'; 4import { inject, observer } from 'mobx-react';
5import { 5import {
@@ -123,10 +123,6 @@ class Sidebar extends Component<IProps, IState> {
123 }; 123 };
124 } 124 }
125 125
126 componentDidUpdate() {
127 ReactTooltip.rebuild();
128 }
129
130 enableToolTip() { 126 enableToolTip() {
131 this.setState({ tooltipEnabled: true }); 127 this.setState({ tooltipEnabled: true });
132 } 128 }
@@ -232,7 +228,8 @@ class Sidebar extends Component<IProps, IState> {
232 type="button" 228 type="button"
233 onClick={() => openSettings({ path: 'recipes' })} 229 onClick={() => openSettings({ path: 'recipes' })}
234 className="sidebar__button sidebar__button--new-service" 230 className="sidebar__button sidebar__button--new-service"
235 data-tip={`${intl.formatMessage( 231 data-tooltip-id="tooltip-sidebar-button"
232 data-tooltip-content={`${intl.formatMessage(
236 messages.addNewService, 233 messages.addNewService,
237 )} (${addNewServiceShortcutKey(false)})`} 234 )} (${addNewServiceShortcutKey(false)})`}
238 > 235 >
@@ -251,7 +248,8 @@ class Sidebar extends Component<IProps, IState> {
251 }); 248 });
252 }} 249 }}
253 className="sidebar__button sidebar__button--split-mode-toggle" 250 className="sidebar__button sidebar__button--split-mode-toggle"
254 data-tip={`${intl.formatMessage( 251 data-tooltip-id="tooltip-sidebar-button"
252 data-tooltip-content={`${intl.formatMessage(
255 messages.splitModeToggle, 253 messages.splitModeToggle,
256 )} (${splitModeToggleShortcutKey(false)})`} 254 )} (${splitModeToggleShortcutKey(false)})`}
257 > 255 >
@@ -268,7 +266,8 @@ class Sidebar extends Component<IProps, IState> {
268 className={`sidebar__button sidebar__button--workspaces ${ 266 className={`sidebar__button sidebar__button--workspaces ${
269 isWorkspaceDrawerOpen ? 'is-active' : '' 267 isWorkspaceDrawerOpen ? 'is-active' : ''
270 }`} 268 }`}
271 data-tip={`${intl.formatMessage( 269 data-tooltip-id="tooltip-sidebar-button"
270 data-tooltip-content={`${intl.formatMessage(
272 workspaceToggleMessage, 271 workspaceToggleMessage,
273 )} (${workspaceToggleShortcutKey(false)})`} 272 )} (${workspaceToggleShortcutKey(false)})`}
274 > 273 >
@@ -285,7 +284,8 @@ class Sidebar extends Component<IProps, IState> {
285 className={`sidebar__button sidebar__button--audio ${ 284 className={`sidebar__button sidebar__button--audio ${
286 isAppMuted ? 'is-muted' : '' 285 isAppMuted ? 'is-muted' : ''
287 }`} 286 }`}
288 data-tip={`${intl.formatMessage( 287 data-tooltip-id="tooltip-sidebar-button"
288 data-tooltip-content={`${intl.formatMessage(
289 isAppMuted ? messages.unmute : messages.mute, 289 isAppMuted ? messages.unmute : messages.mute,
290 )} (${muteFerdiumShortcutKey(false)})`} 290 )} (${muteFerdiumShortcutKey(false)})`}
291 > 291 >
@@ -303,7 +303,8 @@ class Sidebar extends Component<IProps, IState> {
303 className={`sidebar__button sidebar__button--todos ${ 303 className={`sidebar__button sidebar__button--todos ${
304 todosStore.isTodosPanelVisible ? 'is-active' : '' 304 todosStore.isTodosPanelVisible ? 'is-active' : ''
305 }`} 305 }`}
306 data-tip={`${intl.formatMessage( 306 data-tooltip-id="tooltip-sidebar-button"
307 data-tooltip-content={`${intl.formatMessage(
307 todosToggleMessage, 308 todosToggleMessage,
308 )} (${todosToggleShortcutKey(false)})`} 309 )} (${todosToggleShortcutKey(false)})`}
309 > 310 >
@@ -322,7 +323,8 @@ class Sidebar extends Component<IProps, IState> {
322 }, 323 },
323 }); 324 });
324 }} 325 }}
325 data-tip={`${intl.formatMessage( 326 data-tooltip-id="tooltip-sidebar-button"
327 data-tooltip-content={`${intl.formatMessage(
326 messages.lockFerdium, 328 messages.lockFerdium,
327 )} (${lockFerdiumShortcutKey(false)})`} 329 )} (${lockFerdiumShortcutKey(false)})`}
328 > 330 >
@@ -331,14 +333,20 @@ class Sidebar extends Component<IProps, IState> {
331 ) : null} 333 ) : null}
332 </> 334 </>
333 {this.state.tooltipEnabled && ( 335 {this.state.tooltipEnabled && (
334 <ReactTooltip place="right" type="dark" effect="solid" /> 336 <ReactTooltip
337 id="tooltip-sidebar-button"
338 place="right"
339 variant="dark"
340 style={{ height: 'auto', overflowY: 'unset' }}
341 />
335 )} 342 )}
336 {!hideSettingsButton && !isMenuCollapsed ? ( 343 {!hideSettingsButton && !isMenuCollapsed ? (
337 <button 344 <button
338 type="button" 345 type="button"
339 onClick={() => openSettings({ path: 'app' })} 346 onClick={() => openSettings({ path: 'app' })}
340 className="sidebar__button sidebar__button--settings" 347 className="sidebar__button sidebar__button--settings"
341 data-tip={`${intl.formatMessage( 348 data-tooltip-id="tooltip-sidebar-button"
349 data-tooltip-content={`${intl.formatMessage(
342 globalMessages.settings, 350 globalMessages.settings,
343 )} (${settingsShortcutKey(false)})`} 351 )} (${settingsShortcutKey(false)})`}
344 > 352 >
diff --git a/src/components/services/tabs/TabItem.tsx b/src/components/services/tabs/TabItem.tsx
index c883066ce..c25af4427 100644
--- a/src/components/services/tabs/TabItem.tsx
+++ b/src/components/services/tabs/TabItem.tsx
@@ -359,7 +359,8 @@ class TabItem extends Component<IProps, IState> {
359 onKeyDown={noop} 359 onKeyDown={noop}
360 role="presentation" 360 role="presentation"
361 onContextMenu={() => menu.popup()} 361 onContextMenu={() => menu.popup()}
362 data-tip={`${service.name} ${acceleratorString( 362 data-tooltip-id="tooltip-sidebar-button"
363 data-tooltip-content={`${service.name} ${acceleratorString(
363 shortcutIndex, 364 shortcutIndex,
364 cmdOrCtrlShortcutKey(false), 365 cmdOrCtrlShortcutKey(false),
365 )}`} 366 )}`}
diff --git a/src/components/settings/account/AccountDashboard.tsx b/src/components/settings/account/AccountDashboard.tsx
index 163b0a160..de323c06e 100644
--- a/src/components/settings/account/AccountDashboard.tsx
+++ b/src/components/settings/account/AccountDashboard.tsx
@@ -1,7 +1,7 @@
1import { Component } from 'react'; 1import { Component } from 'react';
2import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
4import ReactTooltip from 'react-tooltip'; 4import { Tooltip as ReactTooltip } from 'react-tooltip';
5import { H1, H2 } from '../../ui/headline'; 5import { H1, H2 } from '../../ui/headline';
6 6
7import Loader from '../../ui/Loader'; 7import Loader from '../../ui/Loader';
@@ -215,7 +215,12 @@ class AccountDashboard extends Component<IProp> {
215 </> 215 </>
216 )} 216 )}
217 </div> 217 </div>
218 <ReactTooltip place="right" type="dark" effect="solid" /> 218 <ReactTooltip
219 place="right"
220 variant="dark"
221 float
222 style={{ height: 'auto' }}
223 />
219 </div> 224 </div>
220 ); 225 );
221 } 226 }
diff --git a/src/components/settings/services/ServiceItem.tsx b/src/components/settings/services/ServiceItem.tsx
index bf2dfa9da..babe06b5a 100644
--- a/src/components/settings/services/ServiceItem.tsx
+++ b/src/components/settings/services/ServiceItem.tsx
@@ -1,6 +1,6 @@
1import { Component, ReactElement } from 'react'; 1import { Component, ReactElement } from 'react';
2import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 2import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
3import ReactTooltip from 'react-tooltip'; 3import { Tooltip as ReactTooltip } from 'react-tooltip';
4import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
5import classnames from 'classnames'; 5import classnames from 'classnames';
6import { mdiBellOff, mdiMessageBulletedOff, mdiPower } from '@mdi/js'; 6import { mdiBellOff, mdiMessageBulletedOff, mdiPower } from '@mdi/js';
@@ -73,7 +73,8 @@ class ServiceItem extends Component<IProps> {
73 {service.isMuted && ( 73 {service.isMuted && (
74 <Icon 74 <Icon
75 icon={mdiBellOff} 75 icon={mdiBellOff}
76 data-tip={intl.formatMessage(messages.tooltipIsMuted)} 76 data-tooltip-id="tooltip-service-item"
77 data-tooltip-content={intl.formatMessage(messages.tooltipIsMuted)}
77 /> 78 />
78 )} 79 )}
79 </td> 80 </td>
@@ -85,7 +86,10 @@ class ServiceItem extends Component<IProps> {
85 {!service.isEnabled && ( 86 {!service.isEnabled && (
86 <Icon 87 <Icon
87 icon={mdiPower} 88 icon={mdiPower}
88 data-tip={intl.formatMessage(messages.tooltipIsDisabled)} 89 data-tooltip-id="tooltip-service-item"
90 data-tooltip-content={intl.formatMessage(
91 messages.tooltipIsDisabled,
92 )}
89 /> 93 />
90 )} 94 )}
91 </td> 95 </td>
@@ -97,12 +101,18 @@ class ServiceItem extends Component<IProps> {
97 {!service.isNotificationEnabled && ( 101 {!service.isNotificationEnabled && (
98 <Icon 102 <Icon
99 icon={mdiMessageBulletedOff} 103 icon={mdiMessageBulletedOff}
100 data-tip={intl.formatMessage( 104 data-tooltip-id="tooltip-service-item"
105 data-tooltip-content={intl.formatMessage(
101 messages.tooltipNotificationsDisabled, 106 messages.tooltipNotificationsDisabled,
102 )} 107 )}
103 /> 108 />
104 )} 109 )}
105 <ReactTooltip place="top" type="dark" effect="solid" /> 110 <ReactTooltip
111 id="tooltip-service-item"
112 place="right"
113 variant="dark"
114 style={{ height: 'auto' }}
115 />
106 </td> 116 </td>
107 </tr> 117 </tr>
108 ); 118 );
diff --git a/src/components/settings/team/TeamDashboard.tsx b/src/components/settings/team/TeamDashboard.tsx
index 6fd2d4426..77bccb8c3 100644
--- a/src/components/settings/team/TeamDashboard.tsx
+++ b/src/components/settings/team/TeamDashboard.tsx
@@ -3,7 +3,7 @@
3import { Component, ReactElement } from 'react'; 3import { Component, ReactElement } from 'react';
4import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
6import ReactTooltip from 'react-tooltip'; 6import { Tooltip as ReactTooltip } from 'react-tooltip';
7import withStyles, { WithStylesProps } from 'react-jss'; 7import withStyles, { WithStylesProps } from 'react-jss';
8import classnames from 'classnames'; 8import classnames from 'classnames';
9import Loader from '../../ui/Loader'; 9import Loader from '../../ui/Loader';
@@ -173,7 +173,12 @@ class TeamDashboard extends Component<IProps> {
173 </> 173 </>
174 )} 174 )}
175 </div> 175 </div>
176 <ReactTooltip place="right" type="dark" effect="solid" /> 176 <ReactTooltip
177 place="right"
178 variant="dark"
179 float
180 style={{ height: 'auto' }}
181 />
177 </div> 182 </div>
178 ) : ( 183 ) : (
179 <div className="settings__main"> 184 <div className="settings__main">
diff --git a/src/components/ui/effects/Appear.tsx b/src/components/ui/effects/Appear.tsx
index 2076f6ba6..06f63a029 100644
--- a/src/components/ui/effects/Appear.tsx
+++ b/src/components/ui/effects/Appear.tsx
@@ -1,5 +1,5 @@
1import { ReactElement, ReactNode, useEffect, useState } from 'react'; 1import { ReactElement, ReactNode, useEffect, useState } from 'react';
2import { CSSTransitionGroup } from 'react-transition-group'; 2import { CSSTransition, TransitionGroup } from 'react-transition-group';
3 3
4interface IProps { 4interface IProps {
5 children: ReactNode; 5 children: ReactNode;
@@ -33,17 +33,20 @@ const Appear = ({
33 } 33 }
34 34
35 return ( 35 return (
36 <CSSTransitionGroup 36 <TransitionGroup component={null}>
37 transitionName={transitionName} 37 <CSSTransition
38 transitionAppear={transitionAppear} 38 classNames={transitionName || className}
39 transitionLeave={transitionLeave} 39 appear={transitionAppear}
40 transitionAppearTimeout={transitionAppearTimeout} 40 exit={transitionLeave}
41 transitionEnterTimeout={transitionEnterTimeout} 41 timeout={{
42 transitionLeaveTimeout={transitionLeaveTimeout} 42 enter: transitionEnterTimeout,
43 className={className} 43 appear: transitionAppearTimeout,
44 > 44 exit: transitionLeaveTimeout,
45 {children} 45 }}
46 </CSSTransitionGroup> 46 >
47 {children}
48 </CSSTransition>
49 </TransitionGroup>
47 ); 50 );
48}; 51};
49 52
diff --git a/src/features/webControls/components/WebControls.tsx b/src/features/webControls/components/WebControls.tsx
index e76fca6a2..54f45c843 100644
--- a/src/features/webControls/components/WebControls.tsx
+++ b/src/features/webControls/components/WebControls.tsx
@@ -9,6 +9,7 @@ import {
9 mdiHomeOutline, 9 mdiHomeOutline,
10 mdiEarth, 10 mdiEarth,
11} from '@mdi/js'; 11} from '@mdi/js';
12import { Tooltip as ReactTooltip } from 'react-tooltip';
12import Icon from '../../../components/ui/icon'; 13import Icon from '../../../components/ui/icon';
13 14
14const messages = defineMessages({ 15const messages = defineMessages({
@@ -151,7 +152,8 @@ class WebControls extends Component<IProps, IState> {
151 onClick={goHome} 152 onClick={goHome}
152 type="button" 153 type="button"
153 className={classes.button} 154 className={classes.button}
154 data-tip={intl.formatMessage(messages.goHome)} 155 data-tooltip-id="tooltip-web-controls"
156 data-tooltip-content={intl.formatMessage(messages.goHome)}
155 data-place="bottom" 157 data-place="bottom"
156 > 158 >
157 <Icon icon={mdiHomeOutline} className={classes.icon} /> 159 <Icon icon={mdiHomeOutline} className={classes.icon} />
@@ -161,7 +163,8 @@ class WebControls extends Component<IProps, IState> {
161 type="button" 163 type="button"
162 className={classes.button} 164 className={classes.button}
163 disabled={!canGoBack} 165 disabled={!canGoBack}
164 data-tip={intl.formatMessage(messages.back)} 166 data-tooltip-id="tooltip-web-controls"
167 data-tooltip-content={intl.formatMessage(messages.back)}
165 data-place="bottom" 168 data-place="bottom"
166 > 169 >
167 <Icon icon={mdiArrowLeft} className={classes.icon} /> 170 <Icon icon={mdiArrowLeft} className={classes.icon} />
@@ -171,7 +174,8 @@ class WebControls extends Component<IProps, IState> {
171 type="button" 174 type="button"
172 className={classes.button} 175 className={classes.button}
173 disabled={!canGoForward} 176 disabled={!canGoForward}
174 data-tip={intl.formatMessage(messages.forward)} 177 data-tooltip-id="tooltip-web-controls"
178 data-tooltip-content={intl.formatMessage(messages.forward)}
175 data-place="bottom" 179 data-place="bottom"
176 > 180 >
177 <Icon icon={mdiArrowRight} className={classes.icon} /> 181 <Icon icon={mdiArrowRight} className={classes.icon} />
@@ -180,7 +184,8 @@ class WebControls extends Component<IProps, IState> {
180 onClick={reload} 184 onClick={reload}
181 type="button" 185 type="button"
182 className={classes.button} 186 className={classes.button}
183 data-tip={intl.formatMessage(messages.reload)} 187 data-tooltip-id="tooltip-web-controls"
188 data-tooltip-content={intl.formatMessage(messages.reload)}
184 data-place="bottom" 189 data-place="bottom"
185 > 190 >
186 <Icon icon={mdiReload} className={classes.icon} /> 191 <Icon icon={mdiReload} className={classes.icon} />
@@ -232,11 +237,18 @@ class WebControls extends Component<IProps, IState> {
232 onClick={openInBrowser} 237 onClick={openInBrowser}
233 type="button" 238 type="button"
234 className={classes.button} 239 className={classes.button}
235 data-tip={intl.formatMessage(messages.openInBrowser)} 240 data-tooltip-id="tooltip-web-controls"
241 data-tooltip-content={intl.formatMessage(messages.openInBrowser)}
236 data-place="bottom" 242 data-place="bottom"
237 > 243 >
238 <Icon icon={mdiEarth} className={classes.icon} /> 244 <Icon icon={mdiEarth} className={classes.icon} />
239 </button> 245 </button>
246 <ReactTooltip
247 id="tooltip-web-controls"
248 place="bottom"
249 variant="dark"
250 style={{ height: 'auto' }}
251 />
240 </div> 252 </div>
241 ); 253 );
242 } 254 }
diff --git a/src/features/workspaces/components/WorkspaceDrawer.tsx b/src/features/workspaces/components/WorkspaceDrawer.tsx
index 61284d81a..1c827e9dd 100644
--- a/src/features/workspaces/components/WorkspaceDrawer.tsx
+++ b/src/features/workspaces/components/WorkspaceDrawer.tsx
@@ -2,7 +2,7 @@ import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 2import { observer } from 'mobx-react';
3import withStyles, { WithStylesProps } from 'react-jss'; 3import withStyles, { WithStylesProps } from 'react-jss';
4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 4import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
5import ReactTooltip from 'react-tooltip'; 5import { Tooltip as ReactTooltip } from 'react-tooltip';
6import { mdiPlusBox, mdiCog } from '@mdi/js'; 6import { mdiPlusBox, mdiCog } from '@mdi/js';
7import { noop } from 'lodash'; 7import { noop } from 'lodash';
8import { H1 } from '../../../components/ui/headline'; 8import { H1 } from '../../../components/ui/headline';
@@ -96,7 +96,6 @@ interface IProps extends WithStylesProps<typeof styles>, WrappedComponentProps {
96class WorkspaceDrawer extends Component<IProps> { 96class WorkspaceDrawer extends Component<IProps> {
97 componentDidMount(): void { 97 componentDidMount(): void {
98 try { 98 try {
99 ReactTooltip.rebuild();
100 getUserWorkspacesRequest.execute(); 99 getUserWorkspacesRequest.execute();
101 } catch (error) { 100 } catch (error) {
102 console.log(error); 101 console.log(error);
@@ -121,7 +120,8 @@ class WorkspaceDrawer extends Component<IProps> {
121 onClick={() => { 120 onClick={() => {
122 workspaceActions.openWorkspaceSettings(); 121 workspaceActions.openWorkspaceSettings();
123 }} 122 }}
124 data-tip={`${intl.formatMessage( 123 data-tooltip-id="tooltip-workspaces-drawer"
124 data-tooltip-content={`${intl.formatMessage(
125 messages.workspacesSettingsTooltip, 125 messages.workspacesSettingsTooltip,
126 )}`} 126 )}`}
127 > 127 >
@@ -176,7 +176,12 @@ class WorkspaceDrawer extends Component<IProps> {
176 <span>{intl.formatMessage(messages.addNewWorkspaceLabel)}</span> 176 <span>{intl.formatMessage(messages.addNewWorkspaceLabel)}</span>
177 </div> 177 </div>
178 </div> 178 </div>
179 <ReactTooltip place="right" type="dark" effect="solid" /> 179 <ReactTooltip
180 id="tooltip-workspaces-drawer"
181 place="right"
182 variant="dark"
183 style={{ height: 'auto', zIndex: 210 }}
184 />
180 </div> 185 </div>
181 ); 186 );
182 } 187 }
diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.tsx b/src/features/workspaces/components/WorkspaceDrawerItem.tsx
index cf8c3b2ba..172b4192c 100644
--- a/src/features/workspaces/components/WorkspaceDrawerItem.tsx
+++ b/src/features/workspaces/components/WorkspaceDrawerItem.tsx
@@ -119,7 +119,8 @@ class WorkspaceDrawerItem extends Component<IProps> {
119 } 119 }
120 }} 120 }}
121 onKeyDown={noop} 121 onKeyDown={noop}
122 data-tip={acceleratorString( 122 data-tooltip-id="tooltip-workspaces-drawer"
123 data-tooltip-content={acceleratorString(
123 shortcutIndex, 124 shortcutIndex,
124 `${cmdOrCtrlShortcutKey(false)}+${altKey(false)}`, 125 `${cmdOrCtrlShortcutKey(false)}+${altKey(false)}`,
125 )} 126 )}
diff --git a/src/routes.tsx b/src/routes.tsx
index 04b6fa96f..beada5c96 100644
--- a/src/routes.tsx
+++ b/src/routes.tsx
@@ -51,6 +51,7 @@ class FerdiumRoutes extends Component<IProps> {
51 const errorProps = { error: routeProps.stores.globalError.error || {} }; 51 const errorProps = { error: routeProps.stores.globalError.error || {} };
52 52
53 return ( 53 return (
54 // @ts-expect-error
54 <HistoryRouter history={history}> 55 <HistoryRouter history={history}>
55 <Routes> 56 <Routes>
56 <Route path="/auth" element={<AuthLayoutContainer {...routeProps} />}> 57 <Route path="/auth" element={<AuthLayoutContainer {...routeProps} />}>
diff --git a/src/styles/main.scss b/src/styles/main.scss
index 8369c9298..eb7649bfa 100644
--- a/src/styles/main.scss
+++ b/src/styles/main.scss
@@ -1,5 +1,6 @@
1@import '../../node_modules/electron-react-titlebar/assets/style'; 1@import '../../node_modules/electron-react-titlebar/assets/style';
2 2
3
3// modules 4// modules
4@import './globals.scss'; 5@import './globals.scss';
5@import './reset.scss'; 6@import './reset.scss';