Skip to content

Commit 749ae01

Browse files
committed
feat: added tooltips to explain certain calendar filters in more detail
1 parent a4307a6 commit 749ae01

File tree

7 files changed

+79
-6
lines changed

7 files changed

+79
-6
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"react-markdown": "^9.0.1",
4343
"react-router": "^6.22.0",
4444
"react-router-dom": "^6.22.0",
45+
"react-tooltip": "^5.28.0",
4546
"remark-gfm": "^4.0.0"
4647
},
4748
"devDependencies": {

src/i18n/de.json

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"startDate": "Erster Lagertag",
2020
"responsible": "Verantwortlich",
2121
"puffer": "Puffer (Tage)",
22+
"pufferDescription": "Reduziert das Datum der Termine um die angegebene Anzahl an Tagen.",
2223
"responsibleOptions": {
2324
"all": "Alle",
2425
"ll": "Lagerleitung",
@@ -27,6 +28,7 @@
2728
},
2829
"designation": "Bezeichnung",
2930
"defaultDesignation": "Lagerdaten",
31+
"designationDescription": "Diese Bezeichnung wird beim Herunterladen für den Dateinamen und die Kalendereinträge verwendet.",
3032
"resetValues": "Werte zurücksetzen",
3133
"download": "Herunterladen",
3234
"ics": {

src/i18n/fr.json

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"startDate": "Premier jour du camp",
2020
"responsible": "Responsable",
2121
"puffer": "Marge (jours)",
22+
"pufferDescription": "Réduit la date des rendez-vous du nombre de jours indiqué.",
2223
"responsibleOptions": {
2324
"all": "Tous",
2425
"ll": "Responsable de camp",
@@ -27,6 +28,7 @@
2728
},
2829
"designation": "Désignation",
2930
"defaultDesignation": "Données du camp",
31+
"designationDescription": "Cette désignation est utilisée pour le nom du fichier et les entrées du calendrier lors du téléchargement.",
3032
"resetValues": "Réinitialiser les valeurs",
3133
"download": "Télécharger",
3234
"ics": {

src/i18n/it.json

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"startDate": "Primo giorno del campo",
2020
"responsible": "Responsabile",
2121
"puffer": "Tampone (giorni)",
22+
"pufferDescription": "Riduce la data degli appuntamenti del numero di giorni specificato.",
2223
"responsibleOptions": {
2324
"all": "Tutti",
2425
"ll": "Capo campo",
@@ -27,6 +28,7 @@
2728
},
2829
"designation": "Designazione",
2930
"defaultDesignation": "Dati del campo",
31+
"designationDescription": "Questa designazione viene utilizzata per il nome del file e per le voci del calendario durante il download.",
3032
"resetValues": "Azzeramento dei valori",
3133
"download": "Scaricare",
3234
"ics": {

src/pages/calendar/components/CalendarForm.tsx

+33-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import Loading from "../../../components/loading/Loading";
88
import { HApiTask, loadTasks } from "../../../apis/hering-api";
99
import i18n from "i18next";
1010
import './calendar-form.less'
11+
import { Tooltip } from 'react-tooltip'
12+
import { faCircleInfo } from "@fortawesome/free-solid-svg-icons";
13+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
1114

1215
const dateFormat = 'yyyy-MM-dd'
1316
const initialStartDate = format(Date.now(), dateFormat)
@@ -186,17 +189,41 @@ function CalendarForm() {
186189
</div>
187190

188191
<div className='form-entry'>
189-
<label htmlFor={"puffer"}>
190-
{t('calendarPage.puffer')}
191-
</label>
192+
<div className="label-with-icon">
193+
<label htmlFor={"puffer"}>
194+
{t('calendarPage.puffer')}
195+
</label>
196+
<div>
197+
<FontAwesomeIcon icon={faCircleInfo} data-tooltip-id="buffer-tooltip"/>
198+
<Tooltip id="buffer-tooltip">
199+
<div style={{ maxWidth: '200px' }}>
200+
{t('calendarPage.pufferDescription')}
201+
</div>
202+
</Tooltip>
203+
</div>
204+
</div>
205+
192206
<input type="number" id="puffer" name="puffer" value={puffer.toString()}
193207
onChange={onBufferChanged}/>
194208
</div>
195209

196210
<div className='form-entry'>
197-
<label htmlFor="calendar-designation">
198-
{t('calendarPage.designation')}
199-
</label>
211+
<div className="label-with-icon">
212+
<label htmlFor="calendar-designation">
213+
{t('calendarPage.designation')}
214+
</label>
215+
<div>
216+
<FontAwesomeIcon icon={faCircleInfo} data-tooltip-id="designation-tooltip"/>
217+
<Tooltip id="designation-tooltip">
218+
<div style={{
219+
maxWidth: '200px'
220+
}}>
221+
{t('calendarPage.designationDescription')}
222+
</div>
223+
</Tooltip>
224+
</div>
225+
</div>
226+
200227
<div className="input">
201228
<input type='text' name='calendar-designation' id="calendar-designation"
202229
value={designation}

src/pages/calendar/components/calendar-form.less

+6
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@
3737
select {
3838
padding: 4px 0;
3939
}
40+
41+
.label-with-icon {
42+
display: flex;
43+
align-items: center;
44+
gap: 0.5em;
45+
}
4046
}
4147

4248
.download {

yarn.lock

+33
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,26 @@
310310
lodash.isundefined "^3.0.1"
311311
lodash.uniq "^4.5.0"
312312

313+
"@floating-ui/core@^1.6.0":
314+
version "1.6.8"
315+
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12"
316+
integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==
317+
dependencies:
318+
"@floating-ui/utils" "^0.2.8"
319+
320+
"@floating-ui/dom@^1.6.1":
321+
version "1.6.12"
322+
resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556"
323+
integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==
324+
dependencies:
325+
"@floating-ui/core" "^1.6.0"
326+
"@floating-ui/utils" "^0.2.8"
327+
328+
"@floating-ui/utils@^0.2.8":
329+
version "0.2.8"
330+
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62"
331+
integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==
332+
313333
"@fortawesome/[email protected]":
314334
version "6.6.0"
315335
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz#31ab07ca6a06358c5de4d295d4711b675006163f"
@@ -773,6 +793,11 @@ character-reference-invalid@^2.0.0:
773793
resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9"
774794
integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==
775795

796+
classnames@^2.3.0:
797+
version "2.5.1"
798+
resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
799+
integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
800+
776801
combined-stream@^1.0.8:
777802
version "1.0.8"
778803
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -2018,6 +2043,14 @@ [email protected], react-router@^6.22.0:
20182043
dependencies:
20192044
"@remix-run/router" "1.20.0"
20202045

2046+
react-tooltip@^5.28.0:
2047+
version "5.28.0"
2048+
resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-5.28.0.tgz#c7b5343ab2d740a428494a3d8315515af1f26f46"
2049+
integrity sha512-R5cO3JPPXk6FRbBHMO0rI9nkUG/JKfalBSQfZedZYzmqaZQgq7GLzF8vcCWx6IhUCKg0yPqJhXIzmIO5ff15xg==
2050+
dependencies:
2051+
"@floating-ui/dom" "^1.6.1"
2052+
classnames "^2.3.0"
2053+
20212054
react@^18.2.0:
20222055
version "18.3.1"
20232056
resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"

0 commit comments

Comments
 (0)