@magmamath/students-features 1.8.4 → 1.8.6-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
- package/dist/commonjs/features/profile/Profile.js +90 -0
- package/dist/commonjs/features/profile/Profile.js.map +1 -0
- package/dist/commonjs/features/profile/components/actions/ProfileActions.js +70 -0
- package/dist/commonjs/features/profile/components/actions/ProfileActions.js.map +1 -0
- package/dist/commonjs/features/profile/components/cards/ProfileCard.js +57 -0
- package/dist/commonjs/features/profile/components/cards/ProfileCard.js.map +1 -0
- package/dist/commonjs/features/profile/components/info/AccountInfoCard.js +91 -0
- package/dist/commonjs/features/profile/components/info/AccountInfoCard.js.map +1 -0
- package/dist/commonjs/features/profile/components/modals/JoinClassModal.js +190 -0
- package/dist/commonjs/features/profile/components/modals/JoinClassModal.js.map +1 -0
- package/dist/commonjs/features/profile/components/modals/LogoutConfirmModal.js +61 -0
- package/dist/commonjs/features/profile/components/modals/LogoutConfirmModal.js.map +1 -0
- package/dist/commonjs/features/profile/components/modals/TranslationLanguageModal.js +128 -0
- package/dist/commonjs/features/profile/components/modals/TranslationLanguageModal.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/LanguageSettingsCard.js +22 -0
- package/dist/commonjs/features/profile/components/settings/LanguageSettingsCard.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/PreferencesCard.js +69 -0
- package/dist/commonjs/features/profile/components/settings/PreferencesCard.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/SettingRow.js +48 -0
- package/dist/commonjs/features/profile/components/settings/SettingRow.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/TextSettingsCard.js +77 -0
- package/dist/commonjs/features/profile/components/settings/TextSettingsCard.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/TextSizeSlider.js +119 -0
- package/dist/commonjs/features/profile/components/settings/TextSizeSlider.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/TextToSpeechRow.js +37 -0
- package/dist/commonjs/features/profile/components/settings/TextToSpeechRow.js.map +1 -0
- package/dist/commonjs/features/profile/components/settings/TranslationLanguageRow.js +62 -0
- package/dist/commonjs/features/profile/components/settings/TranslationLanguageRow.js.map +1 -0
- package/dist/commonjs/features/profile/context/ProfileContext.js +18 -0
- package/dist/commonjs/features/profile/context/ProfileContext.js.map +1 -0
- package/dist/commonjs/features/profile/index.js +80 -0
- package/dist/commonjs/features/profile/index.js.map +1 -0
- package/dist/commonjs/features/profile/model/ProfileApi.js +15 -0
- package/dist/commonjs/features/profile/model/ProfileApi.js.map +1 -0
- package/dist/commonjs/features/profile/model/ProfileJoinClassModel.js +60 -0
- package/dist/commonjs/features/profile/model/ProfileJoinClassModel.js.map +1 -0
- package/dist/commonjs/features/profile/model/ProfileLanguageModel.js +30 -0
- package/dist/commonjs/features/profile/model/ProfileLanguageModel.js.map +1 -0
- package/dist/commonjs/features/profile/model/ProfileModel.js +53 -0
- package/dist/commonjs/features/profile/model/ProfileModel.js.map +1 -0
- package/dist/commonjs/features/profile/model/profileModal.types.js +6 -0
- package/dist/commonjs/features/profile/model/profileModal.types.js.map +1 -0
- package/dist/commonjs/features/profile/shared/JoinClassError.js +16 -0
- package/dist/commonjs/features/profile/shared/JoinClassError.js.map +1 -0
- package/dist/commonjs/features/profile/shared/profile.constants.js +29 -0
- package/dist/commonjs/features/profile/shared/profile.constants.js.map +1 -0
- package/dist/commonjs/features/profile/shared/profile.helpers.js +40 -0
- package/dist/commonjs/features/profile/shared/profile.helpers.js.map +1 -0
- package/dist/commonjs/features/profile/shared/profile.types.js +6 -0
- package/dist/commonjs/features/profile/shared/profile.types.js.map +1 -0
- package/dist/commonjs/index.js +12 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/shared/hooks/useKeyboardOffset.js +54 -0
- package/dist/commonjs/shared/hooks/useKeyboardOffset.js.map +1 -0
- package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
- package/dist/module/features/profile/Profile.js +84 -0
- package/dist/module/features/profile/Profile.js.map +1 -0
- package/dist/module/features/profile/components/actions/ProfileActions.js +64 -0
- package/dist/module/features/profile/components/actions/ProfileActions.js.map +1 -0
- package/dist/module/features/profile/components/cards/ProfileCard.js +51 -0
- package/dist/module/features/profile/components/cards/ProfileCard.js.map +1 -0
- package/dist/module/features/profile/components/info/AccountInfoCard.js +85 -0
- package/dist/module/features/profile/components/info/AccountInfoCard.js.map +1 -0
- package/dist/module/features/profile/components/modals/JoinClassModal.js +183 -0
- package/dist/module/features/profile/components/modals/JoinClassModal.js.map +1 -0
- package/dist/module/features/profile/components/modals/LogoutConfirmModal.js +55 -0
- package/dist/module/features/profile/components/modals/LogoutConfirmModal.js.map +1 -0
- package/dist/module/features/profile/components/modals/TranslationLanguageModal.js +122 -0
- package/dist/module/features/profile/components/modals/TranslationLanguageModal.js.map +1 -0
- package/dist/module/features/profile/components/settings/LanguageSettingsCard.js +16 -0
- package/dist/module/features/profile/components/settings/LanguageSettingsCard.js.map +1 -0
- package/dist/module/features/profile/components/settings/PreferencesCard.js +63 -0
- package/dist/module/features/profile/components/settings/PreferencesCard.js.map +1 -0
- package/dist/module/features/profile/components/settings/SettingRow.js +42 -0
- package/dist/module/features/profile/components/settings/SettingRow.js.map +1 -0
- package/dist/module/features/profile/components/settings/TextSettingsCard.js +71 -0
- package/dist/module/features/profile/components/settings/TextSettingsCard.js.map +1 -0
- package/dist/module/features/profile/components/settings/TextSizeSlider.js +112 -0
- package/dist/module/features/profile/components/settings/TextSizeSlider.js.map +1 -0
- package/dist/module/features/profile/components/settings/TextToSpeechRow.js +31 -0
- package/dist/module/features/profile/components/settings/TextToSpeechRow.js.map +1 -0
- package/dist/module/features/profile/components/settings/TranslationLanguageRow.js +56 -0
- package/dist/module/features/profile/components/settings/TranslationLanguageRow.js.map +1 -0
- package/dist/module/features/profile/context/ProfileContext.js +13 -0
- package/dist/module/features/profile/context/ProfileContext.js.map +1 -0
- package/dist/module/features/profile/index.js +11 -0
- package/dist/module/features/profile/index.js.map +1 -0
- package/dist/module/features/profile/model/ProfileApi.js +10 -0
- package/dist/module/features/profile/model/ProfileApi.js.map +1 -0
- package/dist/module/features/profile/model/ProfileJoinClassModel.js +55 -0
- package/dist/module/features/profile/model/ProfileJoinClassModel.js.map +1 -0
- package/dist/module/features/profile/model/ProfileLanguageModel.js +25 -0
- package/dist/module/features/profile/model/ProfileLanguageModel.js.map +1 -0
- package/dist/module/features/profile/model/ProfileModel.js +48 -0
- package/dist/module/features/profile/model/ProfileModel.js.map +1 -0
- package/dist/module/features/profile/model/profileModal.types.js +4 -0
- package/dist/module/features/profile/model/profileModal.types.js.map +1 -0
- package/dist/module/features/profile/shared/JoinClassError.js +11 -0
- package/dist/module/features/profile/shared/JoinClassError.js.map +1 -0
- package/dist/module/features/profile/shared/profile.constants.js +25 -0
- package/dist/module/features/profile/shared/profile.constants.js.map +1 -0
- package/dist/module/features/profile/shared/profile.helpers.js +32 -0
- package/dist/module/features/profile/shared/profile.helpers.js.map +1 -0
- package/dist/module/features/profile/shared/profile.types.js +4 -0
- package/dist/module/features/profile/shared/profile.types.js.map +1 -0
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/shared/hooks/useKeyboardOffset.js +49 -0
- package/dist/module/shared/hooks/useKeyboardOffset.js.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/profile/Profile.d.ts +6 -0
- package/dist/typescript/commonjs/features/profile/Profile.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/__tests__/ProfileModel.test.d.ts +2 -0
- package/dist/typescript/commonjs/features/profile/__tests__/ProfileModel.test.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/__tests__/profile.helpers.test.d.ts +2 -0
- package/dist/typescript/commonjs/features/profile/__tests__/profile.helpers.test.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/actions/ProfileActions.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/actions/ProfileActions.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/cards/ProfileCard.d.ts +10 -0
- package/dist/typescript/commonjs/features/profile/components/cards/ProfileCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/info/AccountInfoCard.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/info/AccountInfoCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/modals/JoinClassModal.d.ts +4 -0
- package/dist/typescript/commonjs/features/profile/components/modals/JoinClassModal.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/modals/LogoutConfirmModal.d.ts +4 -0
- package/dist/typescript/commonjs/features/profile/components/modals/LogoutConfirmModal.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/modals/TranslationLanguageModal.d.ts +4 -0
- package/dist/typescript/commonjs/features/profile/components/modals/TranslationLanguageModal.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/LanguageSettingsCard.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/settings/LanguageSettingsCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/PreferencesCard.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/settings/PreferencesCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/SettingRow.d.ts +11 -0
- package/dist/typescript/commonjs/features/profile/components/settings/SettingRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TextSettingsCard.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TextSettingsCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TextSizeSlider.d.ts +8 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TextSizeSlider.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TextToSpeechRow.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TextToSpeechRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TranslationLanguageRow.d.ts +3 -0
- package/dist/typescript/commonjs/features/profile/components/settings/TranslationLanguageRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/context/ProfileContext.d.ts +13 -0
- package/dist/typescript/commonjs/features/profile/context/ProfileContext.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/index.d.ts +12 -0
- package/dist/typescript/commonjs/features/profile/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileApi.d.ts +11 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileApi.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileJoinClassModel.d.ts +14 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileJoinClassModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileLanguageModel.d.ts +13 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileLanguageModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileModel.d.ts +26 -0
- package/dist/typescript/commonjs/features/profile/model/ProfileModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/model/profileModal.types.d.ts +14 -0
- package/dist/typescript/commonjs/features/profile/model/profileModal.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/shared/JoinClassError.d.ts +5 -0
- package/dist/typescript/commonjs/features/profile/shared/JoinClassError.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/shared/profile.constants.d.ts +20 -0
- package/dist/typescript/commonjs/features/profile/shared/profile.constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/shared/profile.helpers.d.ts +6 -0
- package/dist/typescript/commonjs/features/profile/shared/profile.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/profile/shared/profile.types.d.ts +27 -0
- package/dist/typescript/commonjs/features/profile/shared/profile.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/hooks/useKeyboardOffset.d.ts +11 -0
- package/dist/typescript/commonjs/shared/hooks/useKeyboardOffset.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.d.ts.map +1 -1
- package/dist/typescript/module/features/profile/Profile.d.ts +6 -0
- package/dist/typescript/module/features/profile/Profile.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/__tests__/ProfileModel.test.d.ts +2 -0
- package/dist/typescript/module/features/profile/__tests__/ProfileModel.test.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/__tests__/profile.helpers.test.d.ts +2 -0
- package/dist/typescript/module/features/profile/__tests__/profile.helpers.test.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/actions/ProfileActions.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/actions/ProfileActions.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/cards/ProfileCard.d.ts +10 -0
- package/dist/typescript/module/features/profile/components/cards/ProfileCard.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/info/AccountInfoCard.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/info/AccountInfoCard.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/modals/JoinClassModal.d.ts +4 -0
- package/dist/typescript/module/features/profile/components/modals/JoinClassModal.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/modals/LogoutConfirmModal.d.ts +4 -0
- package/dist/typescript/module/features/profile/components/modals/LogoutConfirmModal.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/modals/TranslationLanguageModal.d.ts +4 -0
- package/dist/typescript/module/features/profile/components/modals/TranslationLanguageModal.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/LanguageSettingsCard.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/settings/LanguageSettingsCard.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/PreferencesCard.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/settings/PreferencesCard.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/SettingRow.d.ts +11 -0
- package/dist/typescript/module/features/profile/components/settings/SettingRow.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/TextSettingsCard.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/settings/TextSettingsCard.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/TextSizeSlider.d.ts +8 -0
- package/dist/typescript/module/features/profile/components/settings/TextSizeSlider.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/TextToSpeechRow.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/settings/TextToSpeechRow.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/components/settings/TranslationLanguageRow.d.ts +3 -0
- package/dist/typescript/module/features/profile/components/settings/TranslationLanguageRow.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/context/ProfileContext.d.ts +13 -0
- package/dist/typescript/module/features/profile/context/ProfileContext.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/index.d.ts +12 -0
- package/dist/typescript/module/features/profile/index.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/model/ProfileApi.d.ts +11 -0
- package/dist/typescript/module/features/profile/model/ProfileApi.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/model/ProfileJoinClassModel.d.ts +14 -0
- package/dist/typescript/module/features/profile/model/ProfileJoinClassModel.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/model/ProfileLanguageModel.d.ts +13 -0
- package/dist/typescript/module/features/profile/model/ProfileLanguageModel.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/model/ProfileModel.d.ts +26 -0
- package/dist/typescript/module/features/profile/model/ProfileModel.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/model/profileModal.types.d.ts +14 -0
- package/dist/typescript/module/features/profile/model/profileModal.types.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/shared/JoinClassError.d.ts +5 -0
- package/dist/typescript/module/features/profile/shared/JoinClassError.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/shared/profile.constants.d.ts +20 -0
- package/dist/typescript/module/features/profile/shared/profile.constants.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/shared/profile.helpers.d.ts +6 -0
- package/dist/typescript/module/features/profile/shared/profile.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/profile/shared/profile.types.d.ts +27 -0
- package/dist/typescript/module/features/profile/shared/profile.types.d.ts.map +1 -0
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/dist/typescript/module/shared/hooks/useKeyboardOffset.d.ts +11 -0
- package/dist/typescript/module/shared/hooks/useKeyboardOffset.d.ts.map +1 -0
- package/package.json +4 -2
- package/src/features/chatbot/components/ChatInput/FreeText/ChatTextInput.tsx +0 -1
- package/src/features/profile/Profile.tsx +83 -0
- package/src/features/profile/__tests__/ProfileModel.test.ts +99 -0
- package/src/features/profile/__tests__/profile.helpers.test.ts +57 -0
- package/src/features/profile/components/actions/ProfileActions.tsx +68 -0
- package/src/features/profile/components/cards/ProfileCard.tsx +53 -0
- package/src/features/profile/components/info/AccountInfoCard.tsx +74 -0
- package/src/features/profile/components/modals/JoinClassModal.tsx +180 -0
- package/src/features/profile/components/modals/LogoutConfirmModal.tsx +64 -0
- package/src/features/profile/components/modals/TranslationLanguageModal.tsx +126 -0
- package/src/features/profile/components/settings/LanguageSettingsCard.tsx +16 -0
- package/src/features/profile/components/settings/PreferencesCard.tsx +67 -0
- package/src/features/profile/components/settings/SettingRow.tsx +42 -0
- package/src/features/profile/components/settings/TextSettingsCard.tsx +64 -0
- package/src/features/profile/components/settings/TextSizeSlider.tsx +117 -0
- package/src/features/profile/components/settings/TextToSpeechRow.tsx +29 -0
- package/src/features/profile/components/settings/TranslationLanguageRow.tsx +60 -0
- package/src/features/profile/context/ProfileContext.tsx +24 -0
- package/src/features/profile/index.ts +11 -0
- package/src/features/profile/model/ProfileApi.ts +23 -0
- package/src/features/profile/model/ProfileJoinClassModel.ts +58 -0
- package/src/features/profile/model/ProfileLanguageModel.ts +26 -0
- package/src/features/profile/model/ProfileModel.ts +57 -0
- package/src/features/profile/model/profileModal.types.ts +16 -0
- package/src/features/profile/shared/JoinClassError.ts +7 -0
- package/src/features/profile/shared/profile.constants.ts +23 -0
- package/src/features/profile/shared/profile.helpers.ts +36 -0
- package/src/features/profile/shared/profile.types.ts +34 -0
- package/src/i18n/.generated/schema.json +9 -1
- package/src/index.ts +1 -0
- package/src/shared/hooks/useKeyboardOffset.ts +57 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { useUnit } from 'effector-react';
|
|
6
|
+
import { BaseModal, Checkbox, CheckboxColor, CheckboxGroup, COLORS, HeadingVariants, Search, SPACING, Typography } from '@magmamath/react-native-ui';
|
|
7
|
+
import { TEST_IDS } from '@magmamath/students-qa';
|
|
8
|
+
import { useText } from "../../../../i18n/i18n.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const LIST_HEIGHT = 360;
|
|
11
|
+
export const TranslationLanguageModal = ({
|
|
12
|
+
modal: {
|
|
13
|
+
closeModal,
|
|
14
|
+
params
|
|
15
|
+
}
|
|
16
|
+
}) => {
|
|
17
|
+
const t = useText();
|
|
18
|
+
const {
|
|
19
|
+
model
|
|
20
|
+
} = params;
|
|
21
|
+
const {
|
|
22
|
+
search,
|
|
23
|
+
languages,
|
|
24
|
+
settings
|
|
25
|
+
} = useUnit({
|
|
26
|
+
search: model.language.$search,
|
|
27
|
+
languages: model.language.$languages,
|
|
28
|
+
settings: model.$settings
|
|
29
|
+
});
|
|
30
|
+
const closeAndReset = () => {
|
|
31
|
+
model.language.reset();
|
|
32
|
+
closeModal();
|
|
33
|
+
};
|
|
34
|
+
const selectLanguage = language => {
|
|
35
|
+
model.language.selectLanguage(language);
|
|
36
|
+
closeAndReset();
|
|
37
|
+
};
|
|
38
|
+
const items = languages.map(language => ({
|
|
39
|
+
id: language,
|
|
40
|
+
label: language,
|
|
41
|
+
radio: true,
|
|
42
|
+
color: CheckboxColor.ORANGE
|
|
43
|
+
}));
|
|
44
|
+
const selectedItems = items.filter(item => item.id === settings.translationLanguage);
|
|
45
|
+
return /*#__PURE__*/_jsx(BaseModal, {
|
|
46
|
+
onClose: closeAndReset,
|
|
47
|
+
style: modalStyle,
|
|
48
|
+
header: /*#__PURE__*/_jsxs(View, {
|
|
49
|
+
style: styles.header,
|
|
50
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
51
|
+
variant: HeadingVariants.H2,
|
|
52
|
+
align: "center",
|
|
53
|
+
style: styles.title,
|
|
54
|
+
children: t('profile.translationModalTitle')
|
|
55
|
+
}), /*#__PURE__*/_jsx(Search, {
|
|
56
|
+
nativeID: "translation-language-search",
|
|
57
|
+
value: search,
|
|
58
|
+
onChangeText: model.language.setSearch,
|
|
59
|
+
placeholder: t('profile.search'),
|
|
60
|
+
containerStyle: styles.search,
|
|
61
|
+
testID: TEST_IDS.LANGUAGE_SEARCH_INPUT
|
|
62
|
+
})]
|
|
63
|
+
}),
|
|
64
|
+
content: /*#__PURE__*/_jsxs(View, {
|
|
65
|
+
style: styles.content,
|
|
66
|
+
children: [/*#__PURE__*/_jsx(Checkbox, {
|
|
67
|
+
radio: true,
|
|
68
|
+
label: t('profile.noLanguage'),
|
|
69
|
+
checked: !settings.translationLanguage,
|
|
70
|
+
color: CheckboxColor.ORANGE,
|
|
71
|
+
style: noLanguageStyle,
|
|
72
|
+
onPress: () => selectLanguage(null)
|
|
73
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
74
|
+
style: styles.divider
|
|
75
|
+
}), /*#__PURE__*/_jsx(CheckboxGroup, {
|
|
76
|
+
items: items,
|
|
77
|
+
selectedItems: selectedItems,
|
|
78
|
+
initialNumToRender: items.length,
|
|
79
|
+
style: listStyle,
|
|
80
|
+
onPress: item => selectLanguage(languages.find(language => language === item.id) ?? null)
|
|
81
|
+
})]
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const styles = StyleSheet.create({
|
|
86
|
+
modal: {
|
|
87
|
+
width: 530
|
|
88
|
+
},
|
|
89
|
+
header: {
|
|
90
|
+
gap: SPACING['500']
|
|
91
|
+
},
|
|
92
|
+
title: {
|
|
93
|
+
color: COLORS.NEUTRAL_9
|
|
94
|
+
},
|
|
95
|
+
search: {
|
|
96
|
+
width: '100%'
|
|
97
|
+
},
|
|
98
|
+
content: {
|
|
99
|
+
gap: SPACING['300']
|
|
100
|
+
},
|
|
101
|
+
noLanguage: {
|
|
102
|
+
paddingLeft: SPACING['200']
|
|
103
|
+
},
|
|
104
|
+
divider: {
|
|
105
|
+
backgroundColor: COLORS.NEUTRAL_3,
|
|
106
|
+
height: 1
|
|
107
|
+
},
|
|
108
|
+
list: {
|
|
109
|
+
height: LIST_HEIGHT,
|
|
110
|
+
width: '100%'
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const modalStyle = {
|
|
114
|
+
container: styles.modal
|
|
115
|
+
};
|
|
116
|
+
const noLanguageStyle = {
|
|
117
|
+
container: styles.noLanguage
|
|
118
|
+
};
|
|
119
|
+
const listStyle = {
|
|
120
|
+
container: styles.list
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=TranslationLanguageModal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","useUnit","BaseModal","Checkbox","CheckboxColor","CheckboxGroup","COLORS","HeadingVariants","Search","SPACING","Typography","TEST_IDS","useText","jsx","_jsx","jsxs","_jsxs","LIST_HEIGHT","TranslationLanguageModal","modal","closeModal","params","t","model","search","languages","settings","language","$search","$languages","$settings","closeAndReset","reset","selectLanguage","items","map","id","label","radio","color","ORANGE","selectedItems","filter","item","translationLanguage","onClose","style","modalStyle","header","styles","children","variant","H2","align","title","nativeID","value","onChangeText","setSearch","placeholder","containerStyle","testID","LANGUAGE_SEARCH_INPUT","content","checked","noLanguageStyle","onPress","divider","initialNumToRender","length","listStyle","find","create","width","gap","NEUTRAL_9","noLanguage","paddingLeft","backgroundColor","NEUTRAL_3","height","list","container"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/modals/TranslationLanguageModal.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useText } from "../../../../i18n/i18n.js";
|
|
5
|
+
import { ProfileCard } from "../cards/ProfileCard.js";
|
|
6
|
+
import { TextToSpeechRow } from "./TextToSpeechRow.js";
|
|
7
|
+
import { TranslationLanguageRow } from "./TranslationLanguageRow.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
export const LanguageSettingsCard = () => {
|
|
10
|
+
const t = useText();
|
|
11
|
+
return /*#__PURE__*/_jsxs(ProfileCard, {
|
|
12
|
+
title: t('profile.languageSettings'),
|
|
13
|
+
children: [/*#__PURE__*/_jsx(TextToSpeechRow, {}), /*#__PURE__*/_jsx(TranslationLanguageRow, {})]
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=LanguageSettingsCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useText","ProfileCard","TextToSpeechRow","TranslationLanguageRow","jsx","_jsx","jsxs","_jsxs","LanguageSettingsCard","t","title","children"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/LanguageSettingsCard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,WAAW,QAAQ,yBAAsB;AAClD,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,sBAAsB,QAAQ,6BAA0B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjE,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;EACxC,MAAMC,CAAC,GAAGT,OAAO,CAAC,CAAC;EAEnB,oBACEO,KAAA,CAACN,WAAW;IAACS,KAAK,EAAED,CAAC,CAAC,0BAA0B,CAAE;IAAAE,QAAA,gBAChDN,IAAA,CAACH,eAAe,IAAE,CAAC,eACnBG,IAAA,CAACF,sBAAsB,IAAE,CAAC;EAAA,CACf,CAAC;AAElB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { useUnit } from 'effector-react';
|
|
6
|
+
import { COLORS, KeyboardIcon, PencilIcon, SelectGroup, SelectOptionColor } from '@magmamath/react-native-ui';
|
|
7
|
+
import { useText } from "../../../../i18n/i18n.js";
|
|
8
|
+
import { useProfile } from "../../context/ProfileContext.js";
|
|
9
|
+
import { ProfileCanvasType } from "../../shared/profile.constants.js";
|
|
10
|
+
import { ProfileCard } from "../cards/ProfileCard.js";
|
|
11
|
+
import { SettingRow } from "./SettingRow.js";
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
const ICON_SIZE = 22;
|
|
14
|
+
const CONTROL_MAX_WIDTH = 248;
|
|
15
|
+
|
|
16
|
+
// Pass the glyph via `title` (children), not `icon`: an icon-only Button locks to a fixed
|
|
17
|
+
// square and collapses the SelectOption's flex stretch.
|
|
18
|
+
const CANVAS_OPTIONS = [{
|
|
19
|
+
key: String(ProfileCanvasType.DRAWING),
|
|
20
|
+
title: /*#__PURE__*/_jsx(PencilIcon, {
|
|
21
|
+
size: ICON_SIZE,
|
|
22
|
+
color: COLORS.NEUTRAL_9
|
|
23
|
+
})
|
|
24
|
+
}, {
|
|
25
|
+
key: String(ProfileCanvasType.SPREADSHEET),
|
|
26
|
+
title: /*#__PURE__*/_jsx(KeyboardIcon, {
|
|
27
|
+
size: ICON_SIZE,
|
|
28
|
+
color: COLORS.NEUTRAL_9
|
|
29
|
+
})
|
|
30
|
+
}];
|
|
31
|
+
export const PreferencesCard = () => {
|
|
32
|
+
const t = useText();
|
|
33
|
+
const {
|
|
34
|
+
model
|
|
35
|
+
} = useProfile();
|
|
36
|
+
const settings = useUnit(model.$settings);
|
|
37
|
+
return /*#__PURE__*/_jsx(ProfileCard, {
|
|
38
|
+
title: t('profile.preferences'),
|
|
39
|
+
children: /*#__PURE__*/_jsx(SettingRow, {
|
|
40
|
+
label: t('profile.solveMode'),
|
|
41
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
42
|
+
style: styles.control,
|
|
43
|
+
children: /*#__PURE__*/_jsx(SelectGroup, {
|
|
44
|
+
color: SelectOptionColor.GREY,
|
|
45
|
+
options: CANVAS_OPTIONS,
|
|
46
|
+
selectedOptions: CANVAS_OPTIONS.filter(({
|
|
47
|
+
key
|
|
48
|
+
}) => key === String(settings.canvasType)),
|
|
49
|
+
onOptionChange: ({
|
|
50
|
+
key
|
|
51
|
+
}) => model.setCanvasType(key === String(ProfileCanvasType.SPREADSHEET) ? ProfileCanvasType.SPREADSHEET : ProfileCanvasType.DRAWING)
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
const styles = StyleSheet.create({
|
|
58
|
+
control: {
|
|
59
|
+
flex: 1,
|
|
60
|
+
maxWidth: CONTROL_MAX_WIDTH
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=PreferencesCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","useUnit","COLORS","KeyboardIcon","PencilIcon","SelectGroup","SelectOptionColor","useText","useProfile","ProfileCanvasType","ProfileCard","SettingRow","jsx","_jsx","ICON_SIZE","CONTROL_MAX_WIDTH","CANVAS_OPTIONS","key","String","DRAWING","title","size","color","NEUTRAL_9","SPREADSHEET","PreferencesCard","t","model","settings","$settings","children","label","style","styles","control","GREY","options","selectedOptions","filter","canvasType","onOptionChange","setCanvasType","create","flex","maxWidth"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/PreferencesCard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SACEC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,iBAAiB,QAEZ,4BAA4B;AAEnC,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,WAAW,QAAQ,yBAAsB;AAClD,SAASC,UAAU,QAAQ,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzC,MAAMC,SAAS,GAAG,EAAE;AACpB,MAAMC,iBAAiB,GAAG,GAAG;;AAE7B;AACA;AACA,MAAMC,cAAmC,GAAG,CAC1C;EACEC,GAAG,EAAEC,MAAM,CAACT,iBAAiB,CAACU,OAAO,CAAC;EACtCC,KAAK,eAAEP,IAAA,CAACT,UAAU;IAACiB,IAAI,EAAEP,SAAU;IAACQ,KAAK,EAAEpB,MAAM,CAACqB;EAAU,CAAE;AAChE,CAAC,EACD;EACEN,GAAG,EAAEC,MAAM,CAACT,iBAAiB,CAACe,WAAW,CAAC;EAC1CJ,KAAK,eAAEP,IAAA,CAACV,YAAY;IAACkB,IAAI,EAAEP,SAAU;IAACQ,KAAK,EAAEpB,MAAM,CAACqB;EAAU,CAAE;AAClE,CAAC,CACF;AAED,OAAO,MAAME,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMC,CAAC,GAAGnB,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEoB;EAAM,CAAC,GAAGnB,UAAU,CAAC,CAAC;EAC9B,MAAMoB,QAAQ,GAAG3B,OAAO,CAAC0B,KAAK,CAACE,SAAS,CAAC;EAEzC,oBACEhB,IAAA,CAACH,WAAW;IAACU,KAAK,EAAEM,CAAC,CAAC,qBAAqB,CAAE;IAAAI,QAAA,eAC3CjB,IAAA,CAACF,UAAU;MAACoB,KAAK,EAAEL,CAAC,CAAC,mBAAmB,CAAE;MAAAI,QAAA,eACxCjB,IAAA,CAACb,IAAI;QAACgC,KAAK,EAAEC,MAAM,CAACC,OAAQ;QAAAJ,QAAA,eAC1BjB,IAAA,CAACR,WAAW;UACViB,KAAK,EAAEhB,iBAAiB,CAAC6B,IAAK;UAC9BC,OAAO,EAAEpB,cAAe;UACxBqB,eAAe,EAAErB,cAAc,CAACsB,MAAM,CAAC,CAAC;YAAErB;UAAI,CAAC,KAAKA,GAAG,KAAKC,MAAM,CAACU,QAAQ,CAACW,UAAU,CAAC,CAAE;UACzFC,cAAc,EAAEA,CAAC;YAAEvB;UAAI,CAAC,KACtBU,KAAK,CAACc,aAAa,CACjBxB,GAAG,KAAKC,MAAM,CAACT,iBAAiB,CAACe,WAAW,CAAC,GACzCf,iBAAiB,CAACe,WAAW,GAC7Bf,iBAAiB,CAACU,OACxB;QACD,CACF;MAAC,CACE;IAAC,CACG;EAAC,CACF,CAAC;AAElB,CAAC;AAED,MAAMc,MAAM,GAAGlC,UAAU,CAAC2C,MAAM,CAAC;EAC/BR,OAAO,EAAE;IACPS,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE7B;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { COLORS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export const SettingRow = ({
|
|
8
|
+
icon,
|
|
9
|
+
label,
|
|
10
|
+
children,
|
|
11
|
+
style
|
|
12
|
+
}) => /*#__PURE__*/_jsxs(View, {
|
|
13
|
+
style: [styles.row, style],
|
|
14
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
15
|
+
style: styles.labelGroup,
|
|
16
|
+
children: [icon, /*#__PURE__*/_jsx(Typography, {
|
|
17
|
+
variant: HeadingVariants.H8,
|
|
18
|
+
style: styles.label,
|
|
19
|
+
children: label
|
|
20
|
+
})]
|
|
21
|
+
}), children]
|
|
22
|
+
});
|
|
23
|
+
const styles = StyleSheet.create({
|
|
24
|
+
row: {
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
flexDirection: 'row',
|
|
27
|
+
gap: SPACING['400'],
|
|
28
|
+
justifyContent: 'space-between',
|
|
29
|
+
padding: SPACING['200']
|
|
30
|
+
},
|
|
31
|
+
labelGroup: {
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
flexDirection: 'row',
|
|
34
|
+
flexShrink: 1,
|
|
35
|
+
gap: SPACING['200']
|
|
36
|
+
},
|
|
37
|
+
label: {
|
|
38
|
+
color: COLORS.NEUTRAL_9,
|
|
39
|
+
flexShrink: 1
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=SettingRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","COLORS","HeadingVariants","SPACING","Typography","jsx","_jsx","jsxs","_jsxs","SettingRow","icon","label","children","style","styles","row","labelGroup","variant","H8","create","alignItems","flexDirection","gap","justifyContent","padding","flexShrink","color","NEUTRAL_9"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/SettingRow.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,SAAoBC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AACrE,SAASC,MAAM,EAAEC,eAAe,EAAEC,OAAO,EAAEC,UAAU,QAAQ,4BAA4B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASzF,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC,QAAQ;EAAEC;AAAuB,CAAC,kBAC1EL,KAAA,CAACR,IAAI;EAACa,KAAK,EAAE,CAACC,MAAM,CAACC,GAAG,EAAEF,KAAK,CAAE;EAAAD,QAAA,gBAC/BJ,KAAA,CAACR,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACE,UAAW;IAAAJ,QAAA,GAC5BF,IAAI,eACLJ,IAAA,CAACF,UAAU;MAACa,OAAO,EAAEf,eAAe,CAACgB,EAAG;MAACL,KAAK,EAAEC,MAAM,CAACH,KAAM;MAAAC,QAAA,EAC1DD;IAAK,CACI,CAAC;EAAA,CACT,CAAC,EACNC,QAAQ;AAAA,CACL,CACP;AAED,MAAME,MAAM,GAAGf,UAAU,CAACoB,MAAM,CAAC;EAC/BJ,GAAG,EAAE;IACHK,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAEnB,OAAO,CAAC,KAAK,CAAC;IACnBoB,cAAc,EAAE,eAAe;IAC/BC,OAAO,EAAErB,OAAO,CAAC,KAAK;EACxB,CAAC;EACDa,UAAU,EAAE;IACVI,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBI,UAAU,EAAE,CAAC;IACbH,GAAG,EAAEnB,OAAO,CAAC,KAAK;EACpB,CAAC;EACDQ,KAAK,EAAE;IACLe,KAAK,EAAEzB,MAAM,CAAC0B,SAAS;IACvBF,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useUnit } from 'effector-react';
|
|
5
|
+
import { StyleSheet, View } from 'react-native';
|
|
6
|
+
import { COLORS, HeadingVariants, ParagraphVariants, SPACING, Typography } from '@magmamath/react-native-ui';
|
|
7
|
+
import { useText } from "../../../../i18n/i18n.js";
|
|
8
|
+
import { useProfile } from "../../context/ProfileContext.js";
|
|
9
|
+
import { TextSizeSlider } from "./TextSizeSlider.js";
|
|
10
|
+
import { ProfileCard } from "../cards/ProfileCard.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
export const TextSettingsCard = () => {
|
|
13
|
+
const t = useText();
|
|
14
|
+
const {
|
|
15
|
+
model
|
|
16
|
+
} = useProfile();
|
|
17
|
+
const settings = useUnit(model.$settings);
|
|
18
|
+
return /*#__PURE__*/_jsxs(ProfileCard, {
|
|
19
|
+
title: t('profile.textSettings'),
|
|
20
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
21
|
+
variant: HeadingVariants.H8,
|
|
22
|
+
style: styles.label,
|
|
23
|
+
children: t('profile.textSize')
|
|
24
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
25
|
+
style: styles.sliderWrap,
|
|
26
|
+
children: [/*#__PURE__*/_jsx(TextSizeSlider, {
|
|
27
|
+
value: settings.textSize,
|
|
28
|
+
onSlidingComplete: model.setTextSize
|
|
29
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
30
|
+
style: styles.markers,
|
|
31
|
+
children: [/*#__PURE__*/_jsx(Typography, {
|
|
32
|
+
variant: ParagraphVariants.XS,
|
|
33
|
+
style: styles.marker,
|
|
34
|
+
selectable: false,
|
|
35
|
+
children: "A"
|
|
36
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
37
|
+
variant: ParagraphVariants.MEDIUM,
|
|
38
|
+
style: styles.marker,
|
|
39
|
+
selectable: false,
|
|
40
|
+
children: "A"
|
|
41
|
+
}), /*#__PURE__*/_jsx(Typography, {
|
|
42
|
+
variant: ParagraphVariants.XL,
|
|
43
|
+
style: styles.marker,
|
|
44
|
+
selectable: false,
|
|
45
|
+
children: "A"
|
|
46
|
+
})]
|
|
47
|
+
})]
|
|
48
|
+
})]
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
label: {
|
|
53
|
+
color: COLORS.NEUTRAL_9,
|
|
54
|
+
padding: SPACING['200']
|
|
55
|
+
},
|
|
56
|
+
sliderWrap: {
|
|
57
|
+
gap: SPACING['200'],
|
|
58
|
+
margin: SPACING['100']
|
|
59
|
+
},
|
|
60
|
+
markers: {
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
flexDirection: 'row',
|
|
63
|
+
justifyContent: 'space-between'
|
|
64
|
+
},
|
|
65
|
+
marker: {
|
|
66
|
+
color: COLORS.NEUTRAL_7,
|
|
67
|
+
fontWeight: '700',
|
|
68
|
+
width: 16
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=TextSettingsCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useUnit","StyleSheet","View","COLORS","HeadingVariants","ParagraphVariants","SPACING","Typography","useText","useProfile","TextSizeSlider","ProfileCard","jsx","_jsx","jsxs","_jsxs","TextSettingsCard","t","model","settings","$settings","title","children","variant","H8","style","styles","label","sliderWrap","value","textSize","onSlidingComplete","setTextSize","markers","XS","marker","selectable","MEDIUM","XL","create","color","NEUTRAL_9","padding","gap","margin","alignItems","flexDirection","justifyContent","NEUTRAL_7","fontWeight","width"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/TextSettingsCard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SACEC,MAAM,EACNC,eAAe,EACfC,iBAAiB,EACjBC,OAAO,EACPC,UAAU,QACL,4BAA4B;AAEnC,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,WAAW,QAAQ,yBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,CAAC,GAAGT,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEU;EAAM,CAAC,GAAGT,UAAU,CAAC,CAAC;EAC9B,MAAMU,QAAQ,GAAGnB,OAAO,CAACkB,KAAK,CAACE,SAAS,CAAC;EAEzC,oBACEL,KAAA,CAACJ,WAAW;IAACU,KAAK,EAAEJ,CAAC,CAAC,sBAAsB,CAAE;IAAAK,QAAA,gBAC5CT,IAAA,CAACN,UAAU;MAACgB,OAAO,EAAEnB,eAAe,CAACoB,EAAG;MAACC,KAAK,EAAEC,MAAM,CAACC,KAAM;MAAAL,QAAA,EAC1DL,CAAC,CAAC,kBAAkB;IAAC,CACZ,CAAC,eACbF,KAAA,CAACb,IAAI;MAACuB,KAAK,EAAEC,MAAM,CAACE,UAAW;MAAAN,QAAA,gBAC7BT,IAAA,CAACH,cAAc;QAACmB,KAAK,EAAEV,QAAQ,CAACW,QAAS;QAACC,iBAAiB,EAAEb,KAAK,CAACc;MAAY,CAAE,CAAC,eAClFjB,KAAA,CAACb,IAAI;QAACuB,KAAK,EAAEC,MAAM,CAACO,OAAQ;QAAAX,QAAA,gBAC1BT,IAAA,CAACN,UAAU;UAACgB,OAAO,EAAElB,iBAAiB,CAAC6B,EAAG;UAACT,KAAK,EAAEC,MAAM,CAACS,MAAO;UAACC,UAAU,EAAE,KAAM;UAAAd,QAAA,EAAC;QAEpF,CAAY,CAAC,eACbT,IAAA,CAACN,UAAU;UAACgB,OAAO,EAAElB,iBAAiB,CAACgC,MAAO;UAACZ,KAAK,EAAEC,MAAM,CAACS,MAAO;UAACC,UAAU,EAAE,KAAM;UAAAd,QAAA,EAAC;QAExF,CAAY,CAAC,eACbT,IAAA,CAACN,UAAU;UAACgB,OAAO,EAAElB,iBAAiB,CAACiC,EAAG;UAACb,KAAK,EAAEC,MAAM,CAACS,MAAO;UAACC,UAAU,EAAE,KAAM;UAAAd,QAAA,EAAC;QAEpF,CAAY,CAAC;MAAA,CACT,CAAC;IAAA,CACH,CAAC;EAAA,CACI,CAAC;AAElB,CAAC;AAED,MAAMI,MAAM,GAAGzB,UAAU,CAACsC,MAAM,CAAC;EAC/BZ,KAAK,EAAE;IACLa,KAAK,EAAErC,MAAM,CAACsC,SAAS;IACvBC,OAAO,EAAEpC,OAAO,CAAC,KAAK;EACxB,CAAC;EACDsB,UAAU,EAAE;IACVe,GAAG,EAAErC,OAAO,CAAC,KAAK,CAAC;IACnBsC,MAAM,EAAEtC,OAAO,CAAC,KAAK;EACvB,CAAC;EACD2B,OAAO,EAAE;IACPY,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDZ,MAAM,EAAE;IACNK,KAAK,EAAErC,MAAM,CAAC6C,SAAS;IACvBC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useRef, useState } from 'react';
|
|
4
|
+
import { PanResponder, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { COLORS } from '@magmamath/react-native-ui';
|
|
6
|
+
import { TEST_IDS } from '@magmamath/students-qa';
|
|
7
|
+
import { TEXT_SIZE } from "../../shared/profile.constants.js";
|
|
8
|
+
import { snapTextSize } from "../../shared/profile.helpers.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const THUMB_SIZE = 20;
|
|
11
|
+
const DOT_SIZE = 6;
|
|
12
|
+
const TRACK_HEIGHT = 10;
|
|
13
|
+
const TRACK_RADIUS = 5;
|
|
14
|
+
const STEPS = (TEXT_SIZE.MAX - TEXT_SIZE.MIN) / TEXT_SIZE.STEP + 1;
|
|
15
|
+
const RANGE = TEXT_SIZE.MAX - TEXT_SIZE.MIN;
|
|
16
|
+
const TRACK_PADDING = THUMB_SIZE / 2 - DOT_SIZE / 2;
|
|
17
|
+
export const TextSizeSlider = ({
|
|
18
|
+
value,
|
|
19
|
+
onSlidingComplete
|
|
20
|
+
}) => {
|
|
21
|
+
const [trackWidth, setTrackWidth] = useState(0);
|
|
22
|
+
const [dragValue, setDragValue] = useState(null);
|
|
23
|
+
const widthRef = useRef(0);
|
|
24
|
+
const onCompleteRef = useRef(onSlidingComplete);
|
|
25
|
+
onCompleteRef.current = onSlidingComplete;
|
|
26
|
+
const currentValue = dragValue ?? value;
|
|
27
|
+
const fraction = RANGE === 0 ? 0 : (currentValue - TEXT_SIZE.MIN) / RANGE;
|
|
28
|
+
const travel = Math.max(0, trackWidth - THUMB_SIZE);
|
|
29
|
+
const measureTrack = event => {
|
|
30
|
+
const width = event.nativeEvent.layout.width;
|
|
31
|
+
widthRef.current = width;
|
|
32
|
+
setTrackWidth(width);
|
|
33
|
+
};
|
|
34
|
+
const valueFromX = x => {
|
|
35
|
+
const width = widthRef.current;
|
|
36
|
+
if (width <= 0) return TEXT_SIZE.MIN;
|
|
37
|
+
const ratio = Math.min(1, Math.max(0, x / width));
|
|
38
|
+
return snapTextSize(TEXT_SIZE.MIN + ratio * RANGE);
|
|
39
|
+
};
|
|
40
|
+
const panResponder = useRef(PanResponder.create({
|
|
41
|
+
onStartShouldSetPanResponder: () => true,
|
|
42
|
+
onMoveShouldSetPanResponder: () => true,
|
|
43
|
+
onPanResponderGrant: event => setDragValue(valueFromX(event.nativeEvent.locationX)),
|
|
44
|
+
onPanResponderMove: event => setDragValue(valueFromX(event.nativeEvent.locationX)),
|
|
45
|
+
onPanResponderRelease: event => {
|
|
46
|
+
const next = valueFromX(event.nativeEvent.locationX);
|
|
47
|
+
setDragValue(null);
|
|
48
|
+
onCompleteRef.current(next);
|
|
49
|
+
},
|
|
50
|
+
onPanResponderTerminate: () => setDragValue(null)
|
|
51
|
+
})).current;
|
|
52
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
53
|
+
style: styles.container,
|
|
54
|
+
onLayout: measureTrack,
|
|
55
|
+
testID: TEST_IDS.TEXT_SIZE_SLIDER,
|
|
56
|
+
...panResponder.panHandlers,
|
|
57
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
58
|
+
style: styles.track,
|
|
59
|
+
children: Array.from({
|
|
60
|
+
length: STEPS
|
|
61
|
+
}, (_, index) => {
|
|
62
|
+
const isEdge = index === 0 || index === STEPS - 1;
|
|
63
|
+
return /*#__PURE__*/_jsx(View, {
|
|
64
|
+
style: [styles.dot, isEdge && styles.dotHidden]
|
|
65
|
+
}, index);
|
|
66
|
+
})
|
|
67
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
68
|
+
style: [styles.thumb, {
|
|
69
|
+
left: fraction * travel
|
|
70
|
+
}]
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
const styles = StyleSheet.create({
|
|
75
|
+
container: {
|
|
76
|
+
cursor: 'pointer',
|
|
77
|
+
height: THUMB_SIZE,
|
|
78
|
+
justifyContent: 'center',
|
|
79
|
+
width: '100%'
|
|
80
|
+
},
|
|
81
|
+
track: {
|
|
82
|
+
alignItems: 'center',
|
|
83
|
+
backgroundColor: COLORS.NEUTRAL_3,
|
|
84
|
+
borderColor: COLORS.NEUTRAL_4,
|
|
85
|
+
borderRadius: TRACK_RADIUS,
|
|
86
|
+
borderWidth: 0.5,
|
|
87
|
+
boxShadow: 'inset -3px -3px 3px rgba(255, 255, 255, 0.6), inset 2px 2px 3px rgba(0, 0, 0, 0.12)',
|
|
88
|
+
flexDirection: 'row',
|
|
89
|
+
height: TRACK_HEIGHT,
|
|
90
|
+
justifyContent: 'space-between',
|
|
91
|
+
paddingHorizontal: TRACK_PADDING,
|
|
92
|
+
width: '100%'
|
|
93
|
+
},
|
|
94
|
+
dot: {
|
|
95
|
+
backgroundColor: COLORS.NEUTRAL_5,
|
|
96
|
+
borderRadius: DOT_SIZE / 2,
|
|
97
|
+
height: DOT_SIZE,
|
|
98
|
+
width: DOT_SIZE
|
|
99
|
+
},
|
|
100
|
+
dotHidden: {
|
|
101
|
+
opacity: 0
|
|
102
|
+
},
|
|
103
|
+
thumb: {
|
|
104
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
105
|
+
borderRadius: THUMB_SIZE / 2,
|
|
106
|
+
boxShadow: '0px 2px 6px rgba(0, 0, 0, 0.2)',
|
|
107
|
+
height: THUMB_SIZE,
|
|
108
|
+
position: 'absolute',
|
|
109
|
+
width: THUMB_SIZE
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=TextSizeSlider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","PanResponder","StyleSheet","View","COLORS","TEST_IDS","TEXT_SIZE","snapTextSize","jsx","_jsx","jsxs","_jsxs","THUMB_SIZE","DOT_SIZE","TRACK_HEIGHT","TRACK_RADIUS","STEPS","MAX","MIN","STEP","RANGE","TRACK_PADDING","TextSizeSlider","value","onSlidingComplete","trackWidth","setTrackWidth","dragValue","setDragValue","widthRef","onCompleteRef","current","currentValue","fraction","travel","Math","max","measureTrack","event","width","nativeEvent","layout","valueFromX","x","ratio","min","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","locationX","onPanResponderMove","onPanResponderRelease","next","onPanResponderTerminate","style","styles","container","onLayout","testID","TEXT_SIZE_SLIDER","panHandlers","children","track","Array","from","length","_","index","isEdge","dot","dotHidden","thumb","left","cursor","height","justifyContent","alignItems","backgroundColor","NEUTRAL_3","borderColor","NEUTRAL_4","borderRadius","borderWidth","boxShadow","flexDirection","paddingHorizontal","NEUTRAL_5","opacity","NEUTRAL_1","position"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/TextSizeSlider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useUnit } from 'effector-react';
|
|
5
|
+
import { COLORS, SpeakerIcon, Toggle } from '@magmamath/react-native-ui';
|
|
6
|
+
import { TEST_IDS } from '@magmamath/students-qa';
|
|
7
|
+
import { useText } from "../../../../i18n/i18n.js";
|
|
8
|
+
import { useProfile } from "../../context/ProfileContext.js";
|
|
9
|
+
import { SettingRow } from "./SettingRow.js";
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
const ICON_SIZE = 20;
|
|
12
|
+
export const TextToSpeechRow = () => {
|
|
13
|
+
const t = useText();
|
|
14
|
+
const {
|
|
15
|
+
model
|
|
16
|
+
} = useProfile();
|
|
17
|
+
const settings = useUnit(model.$settings);
|
|
18
|
+
return /*#__PURE__*/_jsx(SettingRow, {
|
|
19
|
+
icon: /*#__PURE__*/_jsx(SpeakerIcon, {
|
|
20
|
+
size: ICON_SIZE,
|
|
21
|
+
color: COLORS.NEUTRAL_7
|
|
22
|
+
}),
|
|
23
|
+
label: t('profile.textToSpeech'),
|
|
24
|
+
children: /*#__PURE__*/_jsx(Toggle, {
|
|
25
|
+
value: settings.textToSpeech,
|
|
26
|
+
onValueChange: model.setTextToSpeech,
|
|
27
|
+
testID: TEST_IDS.PROFILE_TTS_SWITCH
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=TextToSpeechRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useUnit","COLORS","SpeakerIcon","Toggle","TEST_IDS","useText","useProfile","SettingRow","jsx","_jsx","ICON_SIZE","TextToSpeechRow","t","model","settings","$settings","icon","size","color","NEUTRAL_7","label","children","value","textToSpeech","onValueChange","setTextToSpeech","testID","PROFILE_TTS_SWITCH"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/TextToSpeechRow.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,MAAM,EAAEC,WAAW,EAAEC,MAAM,QAAQ,4BAA4B;AACxE,SAASC,QAAQ,QAAQ,wBAAwB;AAEjD,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,UAAU,QAAQ,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzC,MAAMC,SAAS,GAAG,EAAE;AAEpB,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACnC,MAAMC,CAAC,GAAGP,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEQ;EAAM,CAAC,GAAGP,UAAU,CAAC,CAAC;EAC9B,MAAMQ,QAAQ,GAAGd,OAAO,CAACa,KAAK,CAACE,SAAS,CAAC;EAEzC,oBACEN,IAAA,CAACF,UAAU;IACTS,IAAI,eAAEP,IAAA,CAACP,WAAW;MAACe,IAAI,EAAEP,SAAU;MAACQ,KAAK,EAAEjB,MAAM,CAACkB;IAAU,CAAE,CAAE;IAChEC,KAAK,EAAER,CAAC,CAAC,sBAAsB,CAAE;IAAAS,QAAA,eAEjCZ,IAAA,CAACN,MAAM;MACLmB,KAAK,EAAER,QAAQ,CAACS,YAAa;MAC7BC,aAAa,EAAEX,KAAK,CAACY,eAAgB;MACrCC,MAAM,EAAEtB,QAAQ,CAACuB;IAAmB,CACrC;EAAC,CACQ,CAAC;AAEjB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { useUnit } from 'effector-react';
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import { COLORS, FilterDropdown, FilterDropdownSize, FilterDropdownVariant, GlobeIcon } from '@magmamath/react-native-ui';
|
|
7
|
+
import { TEST_IDS } from '@magmamath/students-qa';
|
|
8
|
+
import { useText } from "../../../../i18n/i18n.js";
|
|
9
|
+
import { useProfile } from "../../context/ProfileContext.js";
|
|
10
|
+
import { SettingRow } from "./SettingRow.js";
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const ICON_SIZE = 20;
|
|
13
|
+
export const TranslationLanguageRow = () => {
|
|
14
|
+
const t = useText();
|
|
15
|
+
const {
|
|
16
|
+
model,
|
|
17
|
+
onOpenTranslationModal
|
|
18
|
+
} = useProfile();
|
|
19
|
+
const settings = useUnit(model.$settings);
|
|
20
|
+
return /*#__PURE__*/_jsx(SettingRow, {
|
|
21
|
+
icon: /*#__PURE__*/_jsx(GlobeIcon, {
|
|
22
|
+
size: ICON_SIZE,
|
|
23
|
+
color: COLORS.NEUTRAL_7
|
|
24
|
+
}),
|
|
25
|
+
label: t('profile.translationLanguage'),
|
|
26
|
+
style: styles.settingRow,
|
|
27
|
+
children: /*#__PURE__*/_jsx(FilterDropdown, {
|
|
28
|
+
variant: FilterDropdownVariant.SECONDARY,
|
|
29
|
+
size: FilterDropdownSize.MEDIUM,
|
|
30
|
+
value: settings.translationLanguage ?? undefined,
|
|
31
|
+
placeholder: t('profile.selectLanguage'),
|
|
32
|
+
disabled: settings.isTranslationLocked,
|
|
33
|
+
onPress: onOpenTranslationModal,
|
|
34
|
+
accessibilityLabel: t('profile.translationLanguage'),
|
|
35
|
+
testID: TEST_IDS.PROFILE_LANGUAGE_SELECTOR,
|
|
36
|
+
style: {
|
|
37
|
+
text: styles.filterLabel,
|
|
38
|
+
container: styles.filterContainer
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
const styles = StyleSheet.create({
|
|
44
|
+
settingRow: {
|
|
45
|
+
paddingVertical: 0
|
|
46
|
+
},
|
|
47
|
+
filterLabel: {
|
|
48
|
+
color: COLORS.NEUTRAL_7,
|
|
49
|
+
fontSize: 16,
|
|
50
|
+
fontWeight: '400'
|
|
51
|
+
},
|
|
52
|
+
filterContainer: {
|
|
53
|
+
maxWidth: 231
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=TranslationLanguageRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useUnit","StyleSheet","COLORS","FilterDropdown","FilterDropdownSize","FilterDropdownVariant","GlobeIcon","TEST_IDS","useText","useProfile","SettingRow","jsx","_jsx","ICON_SIZE","TranslationLanguageRow","t","model","onOpenTranslationModal","settings","$settings","icon","size","color","NEUTRAL_7","label","style","styles","settingRow","children","variant","SECONDARY","MEDIUM","value","translationLanguage","undefined","placeholder","disabled","isTranslationLocked","onPress","accessibilityLabel","testID","PROFILE_LANGUAGE_SELECTOR","text","filterLabel","container","filterContainer","create","paddingVertical","fontSize","fontWeight","maxWidth"],"sourceRoot":"../../../../../../src","sources":["features/profile/components/settings/TranslationLanguageRow.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,UAAU,QAAQ,cAAc;AACzC,SACEC,MAAM,EACNC,cAAc,EACdC,kBAAkB,EAClBC,qBAAqB,EACrBC,SAAS,QACJ,4BAA4B;AACnC,SAASC,QAAQ,QAAQ,wBAAwB;AAEjD,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,UAAU,QAAQ,iBAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzC,MAAMC,SAAS,GAAG,EAAE;AAEpB,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EAC1C,MAAMC,CAAC,GAAGP,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEQ,KAAK;IAAEC;EAAuB,CAAC,GAAGR,UAAU,CAAC,CAAC;EACtD,MAAMS,QAAQ,GAAGlB,OAAO,CAACgB,KAAK,CAACG,SAAS,CAAC;EAEzC,oBACEP,IAAA,CAACF,UAAU;IACTU,IAAI,eAAER,IAAA,CAACN,SAAS;MAACe,IAAI,EAAER,SAAU;MAACS,KAAK,EAAEpB,MAAM,CAACqB;IAAU,CAAE,CAAE;IAC9DC,KAAK,EAAET,CAAC,CAAC,6BAA6B,CAAE;IACxCU,KAAK,EAAEC,MAAM,CAACC,UAAW;IAAAC,QAAA,eAEzBhB,IAAA,CAACT,cAAc;MACb0B,OAAO,EAAExB,qBAAqB,CAACyB,SAAU;MACzCT,IAAI,EAAEjB,kBAAkB,CAAC2B,MAAO;MAChCC,KAAK,EAAEd,QAAQ,CAACe,mBAAmB,IAAIC,SAAU;MACjDC,WAAW,EAAEpB,CAAC,CAAC,wBAAwB,CAAE;MACzCqB,QAAQ,EAAElB,QAAQ,CAACmB,mBAAoB;MACvCC,OAAO,EAAErB,sBAAuB;MAChCsB,kBAAkB,EAAExB,CAAC,CAAC,6BAA6B,CAAE;MACrDyB,MAAM,EAAEjC,QAAQ,CAACkC,yBAA0B;MAC3ChB,KAAK,EAAE;QACLiB,IAAI,EAAEhB,MAAM,CAACiB,WAAW;QACxBC,SAAS,EAAElB,MAAM,CAACmB;MACpB;IAAE,CACH;EAAC,CACQ,CAAC;AAEjB,CAAC;AAED,MAAMnB,MAAM,GAAGzB,UAAU,CAAC6C,MAAM,CAAC;EAC/BnB,UAAU,EAAE;IACVoB,eAAe,EAAE;EACnB,CAAC;EACDJ,WAAW,EAAE;IACXrB,KAAK,EAAEpB,MAAM,CAACqB,SAAS;IACvByB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDJ,eAAe,EAAE;IACfK,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
const ProfileContext = /*#__PURE__*/createContext(null);
|
|
5
|
+
export function useProfile() {
|
|
6
|
+
const value = useContext(ProfileContext);
|
|
7
|
+
if (!value) {
|
|
8
|
+
throw new Error('useProfile must be used within ProfileProvider');
|
|
9
|
+
}
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
export const ProfileProvider = ProfileContext.Provider;
|
|
13
|
+
//# sourceMappingURL=ProfileContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","ProfileContext","useProfile","value","Error","ProfileProvider","Provider"],"sourceRoot":"../../../../../src","sources":["features/profile/context/ProfileContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAwB,OAAO;AAajE,MAAMC,cAAc,gBAAGF,aAAa,CAA6B,IAAI,CAAC;AAEtE,OAAO,SAASG,UAAUA,CAAA,EAAwB;EAChD,MAAMC,KAAK,GAAGH,UAAU,CAACC,cAAc,CAAC;EACxC,IAAI,CAACE,KAAK,EAAE;IACV,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACA,OAAOD,KAAK;AACd;AAEA,OAAO,MAAME,eAAe,GAAGJ,cAAc,CAACK,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { Profile } from "./Profile.js";
|
|
4
|
+
export { ProfileModel } from "./model/ProfileModel.js";
|
|
5
|
+
export { TranslationLanguageModal } from "./components/modals/TranslationLanguageModal.js";
|
|
6
|
+
export { JoinClassModal } from "./components/modals/JoinClassModal.js";
|
|
7
|
+
export { LogoutConfirmModal } from "./components/modals/LogoutConfirmModal.js";
|
|
8
|
+
export { JoinClassError } from "./shared/JoinClassError.js";
|
|
9
|
+
export * from "./shared/profile.types.js";
|
|
10
|
+
export * from "./shared/profile.constants.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Profile","ProfileModel","TranslationLanguageModal","JoinClassModal","LogoutConfirmModal","JoinClassError"],"sourceRoot":"../../../../src","sources":["features/profile/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,cAAW;AACnC,SAASC,YAAY,QAAQ,yBAAsB;AAGnD,SAASC,wBAAwB,QAAQ,iDAA8C;AACvF,SAASC,cAAc,QAAQ,uCAAoC;AACnE,SAASC,kBAAkB,QAAQ,2CAAwC;AAE3E,SAASC,cAAc,QAAQ,4BAAyB;AACxD,cAAc,2BAAwB;AACtC,cAAc,+BAA4B","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createEffect } from 'effector';
|
|
4
|
+
export class ProfileApi {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
this.updateSettingsFx = createEffect(props.updateSettings);
|
|
7
|
+
this.joinClassFx = createEffect(props.joinClass);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ProfileApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createEffect","ProfileApi","constructor","props","updateSettingsFx","updateSettings","joinClassFx","joinClass"],"sourceRoot":"../../../../../src","sources":["features/profile/model/ProfileApi.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,UAAU;AAcvC,OAAO,MAAMC,UAAU,CAAC;EAItBC,WAAWA,CAACC,KAAsB,EAAE;IAClC,IAAI,CAACC,gBAAgB,GAAGJ,YAAY,CAACG,KAAK,CAACE,cAAc,CAAC;IAC1D,IAAI,CAACC,WAAW,GAAGN,YAAY,CAACG,KAAK,CAACI,SAAS,CAAC;EAClD;AACF","ignoreList":[]}
|