Add inter, integrate

This commit is contained in:
Eric Bailey
2024-09-15 12:13:29 -05:00
parent d5b62f21f5
commit bf509eb6d5
26 changed files with 82 additions and 9 deletions
+3 -2
View File
@@ -55,7 +55,7 @@ import {TestCtrls} from '#/view/com/testing/TestCtrls'
import {Provider as ActiveVideoProvider} from '#/view/com/util/post-embeds/ActiveVideoNativeContext'
import * as Toast from '#/view/com/util/Toast'
import {Shell} from '#/view/shell'
import {ThemeProvider as Alf} from '#/alf'
import {ThemeProvider as Alf, useFonts} from '#/alf'
import {useColorModeTheme} from '#/alf/util/useColorModeTheme'
import {NuxDialogs} from '#/components/dialogs/nuxs'
import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry'
@@ -73,6 +73,7 @@ function InnerApp() {
const {resumeSession} = useSessionApi()
const theme = useColorModeTheme()
const {_} = useLingui()
const [fontsLoaded] = useFonts()
useIntentHandler()
const hasCheckedReferrer = useStarterPackEntry()
@@ -110,7 +111,7 @@ function InnerApp() {
<StatsigProvider key={currentAccount?.did}>
<Alf theme={theme}>
<ThemeProvider theme={theme}>
<Splash isReady={isReady && hasCheckedReferrer}>
<Splash isReady={isReady && hasCheckedReferrer && fontsLoaded}>
<ActiveVideoProvider>
<RootSiblingParent>
<QueryProvider currentDid={currentAccount?.did}>
+3 -2
View File
@@ -44,7 +44,7 @@ import {Provider as ActiveVideoProvider} from '#/view/com/util/post-embeds/Activ
import * as Toast from '#/view/com/util/Toast'
import {ToastContainer} from '#/view/com/util/Toast.web'
import {Shell} from '#/view/shell/index'
import {ThemeProvider as Alf} from '#/alf'
import {ThemeProvider as Alf, useFonts} from '#/alf'
import {useColorModeTheme} from '#/alf/util/useColorModeTheme'
import {NuxDialogs} from '#/components/dialogs/nuxs'
import {useStarterPackEntry} from '#/components/hooks/useStarterPackEntry'
@@ -60,6 +60,7 @@ function InnerApp() {
const {_} = useLingui()
useIntentHandler()
const hasCheckedReferrer = useStarterPackEntry()
const [fontsLoaded] = useFonts()
// init
useEffect(() => {
@@ -88,7 +89,7 @@ function InnerApp() {
}, [_])
// wait for session to resume
if (!isReady || !hasCheckedReferrer) return null
if (!isReady || !hasCheckedReferrer || !fontsLoaded) return null
return (
<KeyboardProvider enabled={false}>
+43
View File
@@ -0,0 +1,43 @@
import {useFonts as defaultUseFonts} from 'expo-font'
export function useFonts() {
return defaultUseFonts({
'Inter-Thin': require('../../assets/fonts/inter/Inter-Thin.otf'),
'Inter-ThinItalic': require('../../assets/fonts/inter/Inter-ThinItalic.otf'),
'Inter-ExtraLight': require('../../assets/fonts/inter/Inter-ExtraLight.otf'),
'Inter-ExtraLightItalic': require('../../assets/fonts/inter/Inter-ExtraLightItalic.otf'),
'Inter-Light': require('../../assets/fonts/inter/Inter-Light.otf'),
'Inter-LightItalic': require('../../assets/fonts/inter/Inter-LightItalic.otf'),
'Inter-Regular': require('../../assets/fonts/inter/Inter-Regular.otf'),
'Inter-Italic': require('../../assets/fonts/inter/Inter-Italic.otf'),
'Inter-Medium': require('../../assets/fonts/inter/Inter-Medium.otf'),
'Inter-MediumItalic': require('../../assets/fonts/inter/Inter-MediumItalic.otf'),
'Inter-SemiBold': require('../../assets/fonts/inter/Inter-SemiBold.otf'),
'Inter-SemiBoldItalic': require('../../assets/fonts/inter/Inter-SemiBoldItalic.otf'),
'Inter-Bold': require('../../assets/fonts/inter/Inter-Bold.otf'),
'Inter-BoldItalic': require('../../assets/fonts/inter/Inter-BoldItalic.otf'),
'Inter-ExtraBold': require('../../assets/fonts/inter/Inter-ExtraBold.otf'),
'Inter-ExtraBoldItalic': require('../../assets/fonts/inter/Inter-ExtraBoldItalic.otf'),
'Inter-Black': require('../../assets/fonts/inter/Inter-Black.otf'),
'Inter-BlackItalic': require('../../assets/fonts/inter/Inter-BlackItalic.otf'),
})
}
export function applyFonts(style: Record<string, any>) {
style.fontFamily =
{
'100': 'Inter-Thin',
'200': 'Inter-ExtraLight',
'300': 'Inter-Light',
'400': 'Inter-Regular',
'500': 'Inter-Medium',
'600': 'Inter-SemiBold',
'700': 'Inter-Bold',
'800': 'Inter-ExtraBold',
'900': 'Inter-Black',
}[style.fontWeight as string] || 'Inter-Regular'
if (style.fontStyle === 'italic') {
style.fontFamily += 'Italic'
}
}
+5 -1
View File
@@ -8,6 +8,7 @@ import {BLUE_HUE, GREEN_HUE, RED_HUE} from '#/alf/util/colorGeneration'
import * as fontScaling from '#/alf/util/fontScaling'
export {atoms} from '#/alf/atoms'
export * from '#/alf/fonts'
export * as tokens from '#/alf/tokens'
export * from '#/alf/types'
export * from '#/alf/util/flatten'
@@ -51,7 +52,10 @@ export function ThemeProvider({
}: React.PropsWithChildren<{theme: ThemeName}>) {
const gate = useGate()
const [neue] = React.useState(() => gate('typography_neue'))
const [fontScale, setFontScale] = React.useState(() => fontScaling.get())
const [fontScale, setFontScale] = React.useState(() => {
if (!neue) return 1
return fontScaling.get()
})
const setFontScaleAndPersist = React.useCallback(
(fontScale: number) => {
setFontScale(fontScale)
+8 -3
View File
@@ -3,7 +3,7 @@ import {StyleProp, TextProps as RNTextProps, TextStyle} from 'react-native'
import {UITextView} from 'react-native-uitextview'
import {isNative} from '#/platform/detection'
import {atoms, flatten, useAlf, useTheme, web} from '#/alf'
import {applyFonts, atoms, flatten, useAlf, useTheme, web} from '#/alf'
export type TextProps = RNTextProps & {
/**
@@ -36,7 +36,7 @@ export function leading<
*/
export function normalizeTextStyles(
styles: StyleProp<TextStyle>,
{fontScale}: {fontScale: number},
{fontScale, flags}: {fontScale: number; flags: {neue: boolean}},
) {
const s = flatten(styles)
// should always be defined on these components
@@ -50,6 +50,10 @@ export function normalizeTextStyles(
s.lineHeight = s.fontSize
}
if (flags.neue) {
applyFonts(s)
}
return s
}
@@ -57,10 +61,11 @@ export function normalizeTextStyles(
* Our main text component. Use this most of the time.
*/
export function Text({style, selectable, ...rest}: TextProps) {
const {fontScale} = useAlf()
const {fontScale, flags} = useAlf()
const t = useTheme()
const s = normalizeTextStyles([atoms.text_sm, t.atoms.text, flatten(style)], {
fontScale,
flags,
})
return <UITextView selectable={selectable} uiTextView style={s} {...rest} />
+12 -1
View File
@@ -54,7 +54,7 @@ import * as Toast from 'view/com/util/Toast'
import {UserAvatar} from 'view/com/util/UserAvatar'
import {ScrollView} from 'view/com/util/Views'
import {DeactivateAccountDialog} from '#/screens/Settings/components/DeactivateAccountDialog'
import {atoms as a, useTheme} from '#/alf'
import {atoms as a, useAlf, useTheme} from '#/alf'
import {useDialogControl} from '#/components/Dialog'
import {BirthDateSettingsDialog} from '#/components/dialogs/BirthDateSettings'
import {Email2FAToggle} from './Email2FAToggle'
@@ -133,6 +133,7 @@ function SettingsAccountCard({
type Props = NativeStackScreenProps<CommonNavigatorParams, 'Settings'>
export function SettingsScreen({}: Props) {
const {setFontScale} = useAlf()
const queryClient = useQueryClient()
const pal = usePalette('default')
const {_} = useLingui()
@@ -819,6 +820,16 @@ export function SettingsScreen({}: Props) {
</TouchableOpacity>
{__DEV__ ? (
<>
<TouchableOpacity
style={[pal.view, styles.linkCardNoIcon]}
onPress={() => setFontScale(0.9375)}
accessibilityRole="button"
accessibilityLabel={_(msg`Set test font scale`)}
accessibilityHint={_(msg`Set test font scale`)}>
<Text type="lg" style={pal.text}>
<Trans>Enable neue font scale</Trans>
</Text>
</TouchableOpacity>
<TouchableOpacity
style={[pal.view, styles.linkCardNoIcon]}
onPress={onPressStorybook}