Skip to content

Commit 09d1739

Browse files
authored
Merge pull request #44 from accso/NikAcc/fix-language-reload
Fix language dropdown to trigger page reload
2 parents 0fb4392 + 70e79ac commit 09d1739

4 files changed

Lines changed: 15 additions & 13 deletions

File tree

frontend/src/components/DropdownMenu.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,4 @@ const dropdownStyle = (props: DropdownProps, backgroundColor: string) => {
5555
}
5656
}
5757

58-
export default DropdownMenu
58+
export default DropdownMenu

frontend/src/components/ImageDropDown.tsx

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React, {useState} from "react";
2-
import {colors, ListItemIcon, ListItemText, MenuItem, Select} from "@mui/material";
2+
import {ListItemText, MenuItem, Select} from "@mui/material";
33
import KeyboardDoubleArrowDownRoundedIcon from "@mui/icons-material/KeyboardDoubleArrowDownRounded";
44
import {ImageDropdownProps} from "../utilities/interfaces/ImageDropdownProps";
55

@@ -24,25 +24,22 @@ const ImageDropDown: React.FunctionComponent<ImageDropdownProps> = (props: Image
2424
currentValue = e.target.value;
2525
props.localStorageItemKey ? localStorage.setItem(props.localStorageItemKey, currentValue) : gotImageURLs = gotImageURLs /* Do nothing */;
2626
currentIndex = props.values.indexOf(currentValue);
27-
setText(props.texts[currentIndex]);
27+
const currText = props.texts[currentIndex]
28+
setText(currText);
2829
props.imageURLs ? setImageURL(props.imageURLs[currentIndex]) : setImageURL("");
2930
props.colors ? setBackgroundColor(props.colors[currentIndex]) : setBackgroundColor(currentBackgroundColor);
31+
props.onSelectionChange?.(currText, currentValue)
3032
}
3133

3234
return (
3335
<Select
3436
sx={imageDropDownStyle(currentBackgroundColor)}
3537
IconComponent={KeyboardDoubleArrowDownRoundedIcon}
3638
onChange={handleChange}
37-
value={props.texts}
38-
renderValue={() => (
39-
<MenuItem sx={menuItemStyle} value={currentValue}>
40-
<ListItemText sx={visibleElement(!showImagesOnly)} style={{textAlign:"left"}} primary={currentText}/>
41-
</MenuItem>
42-
)}
39+
value={currentValue}
4340
>
44-
{props.texts.map((value) => (
45-
<MenuItem sx={menuItemStyle} value={props.values[props.texts.indexOf(value)]}>
41+
{props.texts.map((value, index) => (
42+
<MenuItem key={value} sx={menuItemStyle} value={props.values[index]}>
4643
<ListItemText sx={visibleElement(!showImagesOnly)} style={{textAlign:"left"}} primary={value}/>
4744
</MenuItem>
4845
))}

frontend/src/components/LoginBox.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const LoginBox: React.FunctionComponent = () => {
4141
username: username,
4242
password: password,
4343
keepMeLoggedIn: stayLoggedIn,
44-
}).then(navigateAfterLogin).catch(() => {
44+
}).then(reloadPage).catch(() => {
4545
notification.error(localization.notificationMessage.incorrectLogin)
4646
})
4747
} else {
@@ -50,7 +50,7 @@ const LoginBox: React.FunctionComponent = () => {
5050
}
5151
}
5252

53-
const navigateAfterLogin = () => {
53+
const reloadPage = () => {
5454
window.location.reload();
5555
}
5656

@@ -64,6 +64,7 @@ const LoginBox: React.FunctionComponent = () => {
6464
imagesOnly={false}
6565
localStorageItemKey={localStorageItemKeys.selectedLanguage}
6666
defaultIndex={defaultLanguageIndex != -1 ? defaultLanguageIndex : 0}
67+
onSelectionChange={reloadPage}
6768
/>
6869
</Stack>
6970
<Stack sx={headlineContainer}>

frontend/src/utilities/interfaces/ImageDropdownProps.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,8 @@ export interface ImageDropdownProps {
3939
* Show images only (no text)
4040
*/
4141
imagesOnly?: boolean
42+
/**
43+
* Triggered whenever the selection changes
44+
*/
45+
onSelectionChange?: (text: string, value: string) => void
4246
}

0 commit comments

Comments
 (0)