Restore guest mode

This commit is contained in:
mathysPaul
2023-10-08 19:47:03 +02:00
parent 1228eb603e
commit f610de3045
28 changed files with 855 additions and 1062 deletions
@@ -0,0 +1,139 @@
import React from 'react';
import { useDispatch } from 'react-redux';
import { Column, Flex } from 'native-base';
import { useLanguage } from '../../state/LanguageSlice';
import { AvailableLanguages, DefaultLanguage, translate } from '../../i18n/i18n';
import { useSelector } from '../../state/Store';
import { updateSettings } from '../../state/SettingsSlice';
import ElementList from '../../components/GtkUI/ElementList';
import LocalSettings from '../../models/LocalSettings';
import { Brush2, Colorfilter, LanguageSquare, Rank, Sound } from 'iconsax-react-native';
const PreferencesSettings = () => {
const dispatch = useDispatch();
const language = useSelector((state) => state.language.value);
const settings = useSelector((state) => state.settings.local);
return (
<Column space={4} style={{width: '100%'}}>
<ElementList
elements={[
{
icon: <Brush2 size="24" color="#FFF" style={{ minWidth: 24 }} />,
type: 'dropdown',
title: translate('SettingsPreferencesTheme'),
description: 'Définissez le theme (Dark ou Light) de votre application',
data: {
value: settings.colorScheme,
defaultValue: 'system',
onSelect: (newColorScheme) => {
dispatch(
updateSettings({
colorScheme: newColorScheme as LocalSettings['colorScheme'],
})
);
},
options: [
{ label: translate('dark'), value: 'dark' },
{ label: translate('light'), value: 'light' },
{ label: translate('system'), value: 'system' },
],
},
},
{
icon: <LanguageSquare size="24" color="#FFF" style={{ minWidth: 24 }} />,
type: 'dropdown',
title: translate('SettingsPreferencesLanguage'),
description: 'Définissez la langue de votre application',
data: {
value: language,
defaultValue: DefaultLanguage,
onSelect: (itemValue) => {
dispatch(useLanguage(itemValue as AvailableLanguages));
},
options: [
{ label: 'Français', value: 'fr' },
{ label: 'English', value: 'en' },
{ label: 'Espanol', value: 'sp' },
],
},
},
{
icon: <Rank size="24" color="#FFF" style={{ minWidth: 24 }} />,
type: 'dropdown',
title: translate('SettingsPreferencesDifficulty'),
description: 'La précision du tempo est de plus en plus élevée',
data: {
value: settings.difficulty,
defaultValue: 'medium',
onSelect: (itemValue) => {
dispatch(
updateSettings({
difficulty: itemValue as LocalSettings['difficulty'],
})
);
},
options: [
{ label: translate('easy'), value: 'beg' },
{ label: translate('medium'), value: 'inter' },
{ label: translate('hard'), value: 'pro' },
],
},
},
]}
/>
<ElementList
elements={[
{
icon: <Colorfilter size="24" color="#FFF" style={{ minWidth: 24 }} />,
type: 'toggle',
title: translate('SettingsPreferencesColorblindMode'),
description: 'Augmente le contraste',
data: {
value: settings.colorBlind,
onToggle: () => {
dispatch(updateSettings({ colorBlind: !settings.colorBlind }));
},
},
},
]}
/>
<ElementList
elements={[
{
icon: <Sound size="24" color="#FFF" style={{ minWidth: 24 }} />,
type: 'range',
title: translate('SettingsPreferencesMicVolume'),
description: 'Régler le volume de votre micro selon vos preference',
data: {
value: settings.micVolume,
min: 0,
max: 1000,
step: 10,
onChange: (value) => {
dispatch(updateSettings({ micVolume: value }));
},
},
},
/*{
type: "dropdown",
title: translate("SettingsPreferencesDevice"),
data: {
value: settings.preferedInputName || "0",
defaultValue: "0",
onSelect: (itemValue: string) => {
dispatch(updateSettings({ preferedInputName: itemValue }));
},
options: [
{ label: "Mic_0", value: "0" },
{ label: "Mic_1", value: "1" },
{ label: "Mic_2", value: "2" },
],
},
},*/
]}
/>
</Column>
);
};
export default PreferencesSettings;