diff options
Diffstat (limited to 'src/view/com/modals')
-rw-r--r-- | src/view/com/modals/DeleteAccount.tsx | 2 | ||||
-rw-r--r-- | src/view/com/modals/Modal.tsx | 4 | ||||
-rw-r--r-- | src/view/com/modals/Modal.web.tsx | 3 | ||||
-rw-r--r-- | src/view/com/modals/lang-settings/PostLanguagesSettings.tsx | 145 |
4 files changed, 1 insertions, 153 deletions
diff --git a/src/view/com/modals/DeleteAccount.tsx b/src/view/com/modals/DeleteAccount.tsx index 5e188ee06..80ff15768 100644 --- a/src/view/com/modals/DeleteAccount.tsx +++ b/src/view/com/modals/DeleteAccount.tsx @@ -10,6 +10,7 @@ import {LinearGradient} from 'expo-linear-gradient' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' +import {DM_SERVICE_HEADERS} from '#/lib/constants' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {cleanError} from '#/lib/strings/errors' @@ -17,7 +18,6 @@ import {colors, gradients, s} from '#/lib/styles' import {useTheme} from '#/lib/ThemeContext' import {isAndroid, isWeb} from '#/platform/detection' import {useModalControls} from '#/state/modals' -import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const' import {useAgent, useSession, useSessionApi} from '#/state/session' import {atoms as a, useTheme as useNewTheme} from '#/alf' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' diff --git a/src/view/com/modals/Modal.tsx b/src/view/com/modals/Modal.tsx index c3628f939..79971e660 100644 --- a/src/view/com/modals/Modal.tsx +++ b/src/view/com/modals/Modal.tsx @@ -11,7 +11,6 @@ import * as CreateOrEditListModal from './CreateOrEditList' import * as DeleteAccountModal from './DeleteAccount' import * as InviteCodesModal from './InviteCodes' import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings' -import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' import * as UserAddRemoveListsModal from './UserAddRemoveLists' const DEFAULT_SNAPPOINTS = ['90%'] @@ -60,9 +59,6 @@ export function ModalsContainer() { } else if (activeModal?.name === 'content-languages-settings') { snapPoints = ContentLanguagesSettingsModal.snapPoints element = <ContentLanguagesSettingsModal.Component /> - } else if (activeModal?.name === 'post-languages-settings') { - snapPoints = PostLanguagesSettingsModal.snapPoints - element = <PostLanguagesSettingsModal.Component /> } else { return null } diff --git a/src/view/com/modals/Modal.web.tsx b/src/view/com/modals/Modal.web.tsx index 08f0e2f85..d0799a390 100644 --- a/src/view/com/modals/Modal.web.tsx +++ b/src/view/com/modals/Modal.web.tsx @@ -10,7 +10,6 @@ import * as CreateOrEditListModal from './CreateOrEditList' import * as DeleteAccountModal from './DeleteAccount' import * as InviteCodesModal from './InviteCodes' import * as ContentLanguagesSettingsModal from './lang-settings/ContentLanguagesSettings' -import * as PostLanguagesSettingsModal from './lang-settings/PostLanguagesSettings' import * as UserAddRemoveLists from './UserAddRemoveLists' export function ModalsContainer() { @@ -59,8 +58,6 @@ function Modal({modal}: {modal: ModalIface}) { element = <InviteCodesModal.Component /> } else if (modal.name === 'content-languages-settings') { element = <ContentLanguagesSettingsModal.Component /> - } else if (modal.name === 'post-languages-settings') { - element = <PostLanguagesSettingsModal.Component /> } else { return null } diff --git a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx b/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx deleted file mode 100644 index 8c2969674..000000000 --- a/src/view/com/modals/lang-settings/PostLanguagesSettings.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import React from 'react' -import {StyleSheet, View} from 'react-native' -import {Trans} from '@lingui/macro' - -import {usePalette} from '#/lib/hooks/usePalette' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' -import {deviceLanguageCodes} from '#/locale/deviceLocales' -import {languageName} from '#/locale/helpers' -import {useModalControls} from '#/state/modals' -import { - hasPostLanguage, - useLanguagePrefs, - useLanguagePrefsApi, -} from '#/state/preferences/languages' -import {ToggleButton} from '#/view/com/util/forms/ToggleButton' -import {LANGUAGES, LANGUAGES_MAP_CODE2} from '../../../../locale/languages' -import {Text} from '../../util/text/Text' -import {ScrollView} from '../util' -import {ConfirmLanguagesButton} from './ConfirmLanguagesButton' - -export const snapPoints = ['100%'] - -export function Component() { - const {closeModal} = useModalControls() - const langPrefs = useLanguagePrefs() - const setLangPrefs = useLanguagePrefsApi() - const pal = usePalette('default') - const {isMobile} = useWebMediaQueries() - const onPressDone = React.useCallback(() => { - closeModal() - }, [closeModal]) - - const languages = React.useMemo(() => { - const langs = LANGUAGES.filter( - lang => - !!lang.code2.trim() && - LANGUAGES_MAP_CODE2[lang.code2].code3 === lang.code3, - ) - // sort so that device & selected languages are on top, then alphabetically - langs.sort((a, b) => { - const hasA = - hasPostLanguage(langPrefs.postLanguage, a.code2) || - deviceLanguageCodes.includes(a.code2) - const hasB = - hasPostLanguage(langPrefs.postLanguage, b.code2) || - deviceLanguageCodes.includes(b.code2) - if (hasA === hasB) return a.name.localeCompare(b.name) - if (hasA) return -1 - return 1 - }) - return langs - }, [langPrefs]) - - const onPress = React.useCallback( - (code2: string) => { - setLangPrefs.togglePostLanguage(code2) - }, - [setLangPrefs], - ) - - return ( - <View - testID="postLanguagesModal" - style={[ - pal.view, - styles.container, - // @ts-ignore vh is on web only - isMobile - ? { - paddingTop: 20, - } - : { - maxHeight: '90vh', - }, - ]}> - <Text style={[pal.text, styles.title]}> - <Trans>Post Languages</Trans> - </Text> - <Text style={[pal.text, styles.description]}> - <Trans>Which languages are used in this post?</Trans> - </Text> - <ScrollView style={styles.scrollContainer}> - {languages.map(lang => { - const isSelected = hasPostLanguage(langPrefs.postLanguage, lang.code2) - - // enforce a max of 3 selections for post languages - let isDisabled = false - if (langPrefs.postLanguage.split(',').length >= 3 && !isSelected) { - isDisabled = true - } - - return ( - <ToggleButton - key={lang.code2} - label={languageName(lang, langPrefs.appLanguage)} - isSelected={isSelected} - onPress={() => (isDisabled ? undefined : onPress(lang.code2))} - style={[ - pal.border, - styles.languageToggle, - isDisabled && styles.dimmed, - ]} - /> - ) - })} - <View - style={{ - height: isMobile ? 60 : 0, - }} - /> - </ScrollView> - <ConfirmLanguagesButton onPress={onPressDone} /> - </View> - ) -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - }, - title: { - textAlign: 'center', - fontWeight: '600', - fontSize: 24, - marginBottom: 12, - }, - description: { - textAlign: 'center', - paddingHorizontal: 16, - marginBottom: 10, - }, - scrollContainer: { - flex: 1, - paddingHorizontal: 10, - }, - languageToggle: { - borderTopWidth: 1, - borderRadius: 0, - paddingHorizontal: 6, - paddingVertical: 12, - }, - dimmed: { - opacity: 0.5, - }, -}) |