c6a0cfc2b1
* Initial factoring out of parts of the LayerUI component 2360 → 2224 LOC * Create a Section component * Break up src/index.tsx * Refactor actions to reduce duplication, fix CSS Also consolidate icons * Move scene/data.ts to its own directory * Fix accidental reverts, banish further single-character variables * ACTIVE_ELEM_COLOR → ACTIVE_ELEMENT_COLOR * Further refactoring the icons file * Log all errors * Pointer Event polyfill to make the tests work * add test hooks & fix tests Co-authored-by: dwelle <luzar.david@gmail.com>
34 lines
862 B
TypeScript
34 lines
862 B
TypeScript
import React from "react";
|
|
import * as i18n from "../i18n";
|
|
|
|
export function LanguageList({
|
|
onChange,
|
|
languages = i18n.languages,
|
|
currentLanguage = i18n.getLanguage(),
|
|
floating,
|
|
}: {
|
|
languages?: { lng: string; label: string }[];
|
|
onChange: (value: string) => void;
|
|
currentLanguage?: string;
|
|
floating?: boolean;
|
|
}) {
|
|
return (
|
|
<React.Fragment>
|
|
<select
|
|
className={`dropdown-select dropdown-select__language${
|
|
floating ? " dropdown-select--floating" : ""
|
|
}`}
|
|
onChange={({ target }) => onChange(target.value)}
|
|
value={currentLanguage}
|
|
aria-label={i18n.t("buttons.selectLanguage")}
|
|
>
|
|
{languages.map(language => (
|
|
<option key={language.lng} value={language.lng}>
|
|
{language.label}
|
|
</option>
|
|
))}
|
|
</select>
|
|
</React.Fragment>
|
|
);
|
|
}
|