import Button from '@components/Button' import haptics from '@components/haptics' import ComponentSeparator from '@components/Separator' import TimelineDefault from '@components/Timeline/Default' import { StackScreenProps } from '@react-navigation/stack' import { changeFontsize, getSettingsFontsize, SettingsState } from '@utils/slices/settingsSlice' import { StyleConstants } from '@utils/styles/constants' import { adaptiveScale } from '@utils/styles/scaling' import { useTheme } from '@utils/styles/ThemeManager' import React, { useMemo } from 'react' import { useTranslation } from 'react-i18next' import { StyleSheet, Text, View } from 'react-native' import { ScrollView } from 'react-native-gesture-handler' import { useDispatch, useSelector } from 'react-redux' export const mapFontsizeToName = (size: SettingsState['fontsize']) => { switch (size) { case -1: return 'S' case 0: return 'M' case 1: return 'L' case 2: return 'XL' case 3: return 'XXL' } } const ScreenMeSettingsFontsize: React.FC> = () => { const { mode, theme } = useTheme() const { t } = useTranslation('meSettingsFontsize') const initialSize = useSelector(getSettingsFontsize) const dispatch = useDispatch() const item = { id: 'demo', uri: 'https://tooot.app', created_at: new Date(), sensitive: false, visibility: 'public', replies_count: 0, reblogs_count: 0, favourites_count: 0, favourited: true, reblogged: false, muted: false, bookmarked: false, content: t('content.demo'), reblog: null, application: { name: 'tooot', website: 'https://tooot.app' }, account: { id: 'demo', url: 'https://tooot.app', username: 'tooot📱', acct: 'tooot@xmflsct.com', display_name: 'tooot📱', avatar_static: 'https://avatars.githubusercontent.com/u/77554750?s=100' }, media_attachments: [], mentions: [] } const sizesDemo = useMemo(() => { return ( <> {([-1, 0, 1, 2, 3] as [-1, 0, 1, 2, 3]).map(size => ( {t(`content.sizes.${mapFontsizeToName(size)}`)} ))} ) }, [mode, initialSize]) return ( {t('content.showcase')} {t('content.availableSizes')} {sizesDemo}