Unmount Test Dialog
Will unmount in about 5 seconds
diff --git a/src/view/shell/Composer.ios.tsx b/src/view/shell/Composer.ios.tsx
index 18410bf39..02efad878 100644
--- a/src/view/shell/Composer.ios.tsx
+++ b/src/view/shell/Composer.ios.tsx
@@ -1,19 +1,28 @@
-import React, {useLayoutEffect} from 'react'
+import React from 'react'
import {Modal, View} from 'react-native'
-import {StatusBar} from 'expo-status-bar'
-import * as SystemUI from 'expo-system-ui'
+import {useDialogStateControlContext} from '#/state/dialogs'
import {useComposerState} from '#/state/shell/composer'
import {atoms as a, useTheme} from '#/alf'
-import {getBackgroundColor, useThemeName} from '#/alf/util/useColorModeTheme'
import {ComposePost, useComposerCancelRef} from '../com/composer/Composer'
export function Composer({}: {winHeight: number}) {
+ const {setFullyExpandedCount} = useDialogStateControlContext()
const t = useTheme()
const state = useComposerState()
const ref = useComposerCancelRef()
const open = !!state
+ const prevOpen = React.useRef(open)
+
+ React.useEffect(() => {
+ if (open && !prevOpen.current) {
+ setFullyExpandedCount(c => c + 1)
+ } else if (!open && prevOpen.current) {
+ setFullyExpandedCount(c => c - 1)
+ }
+ prevOpen.current = open
+ }, [open, setFullyExpandedCount])
return (
ref.current?.onPressCancel()}>
-
-
-
+
)
}
-
-function Providers({
- children,
- open,
-}: {
- children: React.ReactNode
- open: boolean
-}) {
- // on iOS, it's a native formSheet. We use FullWindowOverlay to make
- // the dialogs appear over it
- return (
- <>
- {children}
-
- >
- )
-}
-
-// Generally, the backdrop of the app is the theme color, but when this is open
-// we want it to be black due to the modal being a form sheet.
-function IOSModalBackground({active}: {active: boolean}) {
- const theme = useThemeName()
-
- useLayoutEffect(() => {
- SystemUI.setBackgroundColorAsync('black')
-
- return () => {
- SystemUI.setBackgroundColorAsync(getBackgroundColor(theme))
- }
- }, [theme])
-
- // Set the status bar to light - however, only if the modal is active
- // If we rely on this component being mounted to set this,
- // there'll be a delay before it switches back to default.
- return active ? : null
-}
diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx
index aed92cbb7..8bc3de24d 100644
--- a/src/view/shell/index.tsx
+++ b/src/view/shell/index.tsx
@@ -13,6 +13,14 @@ import * as NavigationBar from 'expo-navigation-bar'
import {StatusBar} from 'expo-status-bar'
import {useNavigation, useNavigationState} from '@react-navigation/native'
+import {useDedupe} from '#/lib/hooks/useDedupe'
+import {useNotificationsHandler} from '#/lib/hooks/useNotificationHandler'
+import {usePalette} from '#/lib/hooks/usePalette'
+import {useNotificationsRegistration} from '#/lib/notifications/notifications'
+import {isStateAtTabRoot} from '#/lib/routes/helpers'
+import {useTheme} from '#/lib/ThemeContext'
+import {isAndroid, isIOS} from '#/platform/detection'
+import {useDialogStateControlContext} from '#/state/dialogs'
import {useSession} from '#/state/session'
import {
useIsDrawerOpen,
@@ -20,17 +28,9 @@ import {
useSetDrawerOpen,
} from '#/state/shell'
import {useCloseAnyActiveElement} from '#/state/util'
-import {useDedupe} from 'lib/hooks/useDedupe'
-import {useNotificationsHandler} from 'lib/hooks/useNotificationHandler'
-import {usePalette} from 'lib/hooks/usePalette'
-import {useNotificationsRegistration} from 'lib/notifications/notifications'
-import {isStateAtTabRoot} from 'lib/routes/helpers'
-import {useTheme} from 'lib/ThemeContext'
-import {isAndroid} from 'platform/detection'
-import {useDialogStateContext} from 'state/dialogs'
-import {Lightbox} from 'view/com/lightbox/Lightbox'
-import {ModalsContainer} from 'view/com/modals/Modal'
-import {ErrorBoundary} from 'view/com/util/ErrorBoundary'
+import {Lightbox} from '#/view/com/lightbox/Lightbox'
+import {ModalsContainer} from '#/view/com/modals/Modal'
+import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
import {MutedWordsDialog} from '#/components/dialogs/MutedWords'
import {SigninDialog} from '#/components/dialogs/Signin'
import {Outlet as PortalOutlet} from '#/components/Portal'
@@ -61,7 +61,6 @@ function ShellInner() {
const canGoBack = useNavigationState(state => !isStateAtTabRoot(state))
const {hasSession} = useSession()
const closeAnyActiveElement = useCloseAnyActiveElement()
- const {importantForAccessibility} = useDialogStateContext()
useNotificationsRegistration()
useNotificationsHandler()
@@ -101,9 +100,7 @@ function ShellInner() {
return (
<>
-
+
{
@@ -140,7 +138,14 @@ export const Shell: React.FC = function ShellImpl() {
}, [theme])
return (
-
+ 0)
+ ? 'light'
+ : 'dark'
+ }
+ animated
+ />
diff --git a/yarn.lock b/yarn.lock
index a7ef1e0d6..3bb82371f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -11450,14 +11450,6 @@ expo-structured-headers@~3.8.0:
resolved "https://registry.yarnpkg.com/expo-structured-headers/-/expo-structured-headers-3.8.0.tgz#11797a4c3a7a6770b21126cecffcda148030e361"
integrity sha512-R+gFGn0x5CWl4OVlk2j1bJTJIz4KO8mPoCHpRHmfqMjmrMvrOM0qQSY3V5NHXwp1yT/L2v8aUmFQsBRIdvi1XA==
-expo-system-ui@~3.0.4:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-3.0.4.tgz#5ace49d38eb03c09a8041b3b82c581a6b974741a"
- integrity sha512-v1n6hBO30k9qw6RE8/au4yNoovs71ExGuXizJUlR5KSo4Ruogpb+0/2q3uRZMDIYWWCANvms8L0UOh6fQJ5TXg==
- dependencies:
- "@react-native/normalize-colors" "~0.74.83"
- debug "^4.3.2"
-
expo-task-manager@~11.8.1:
version "11.8.1"
resolved "https://registry.yarnpkg.com/expo-task-manager/-/expo-task-manager-11.8.1.tgz#33089e78ee3fbd83327fb403bce12d69baf7d21b"
@@ -18057,15 +18049,14 @@ react-native-drawer-layout@^4.0.0-alpha.3:
dependencies:
use-latest-callback "^0.1.9"
-react-native-gesture-handler@~2.16.2:
- version "2.16.2"
- resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.16.2.tgz#032bd2a07334292d7f6cff1dc9d1ec928f72e26d"
- integrity sha512-vGFlrDKlmyI+BT+FemqVxmvO7nqxU33cgXVsn6IKAFishvlG3oV2Ds67D5nPkHMea8T+s1IcuMm0bF8ntZtAyg==
+react-native-gesture-handler@2.20.0:
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.20.0.tgz#2d9ec4e9bd22619ebe36269dda3ecb1173928276"
+ integrity sha512-rFKqgHRfxQ7uSAivk8vxCiW4SB3G0U7jnv7kZD4Y90K5kp6YrU8Q3tWhxe3Rx55BIvSd3mBe9ZWbWVJ0FsSHPA==
dependencies:
"@egjs/hammerjs" "^2.0.17"
hoist-non-react-statics "^3.3.0"
invariant "^2.2.4"
- lodash "^4.17.21"
prop-types "^15.7.2"
react-native-get-random-values@^1.6.0:
@@ -18094,10 +18085,10 @@ react-native-ios-context-menu@^1.15.3:
dependencies:
"@dominicstop/ts-event-emitter" "^1.1.0"
-react-native-keyboard-controller@^1.12.1:
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/react-native-keyboard-controller/-/react-native-keyboard-controller-1.12.1.tgz#6de22ed4d060528a0dd25621eeaa7f71772ce35f"
- integrity sha512-2OpQcesiYsMilrTzgcTafSGexd9UryRQRuHudIcOn0YaqvvzNpnhVZMVuJMH93fJv/iaZYp3138rgUKOdHhtSw==
+react-native-keyboard-controller@^1.14.0:
+ version "1.14.0"
+ resolved "https://registry.yarnpkg.com/react-native-keyboard-controller/-/react-native-keyboard-controller-1.14.0.tgz#f6faaa12b3736a10f4eec4236ed5b0343508b9a1"
+ integrity sha512-JW9k2fehFXOpvLWh1YcgyubLodg/HPi6bR11sCZB/BOawf1tnbGnqk967B8XkxDOKHH6mg+z82quCvv8ALh1rg==
react-native-mmkv@^2.12.2:
version "2.12.2"
--
2.51.2
From d17da8474b6aa3985e3a74bc3459b483d23109cd Mon Sep 17 00:00:00 2001
From: Eric Bailey
Date: Fri, 4 Oct 2024 15:31:40 -0500
Subject: [PATCH 5/7] Emoji handling nested (#5609)
---
src/components/Typography.tsx | 31 +++++++++++++++++++------------
src/view/com/util/ViewHeader.tsx | 2 +-
src/view/com/util/text/Text.tsx | 31 ++++++++++++++++++-------------
3 files changed, 38 insertions(+), 26 deletions(-)
diff --git a/src/components/Typography.tsx b/src/components/Typography.tsx
index 501e23872..19eba35fb 100644
--- a/src/components/Typography.tsx
+++ b/src/components/Typography.tsx
@@ -53,11 +53,14 @@ export function childIsString(
)
}
-export function renderChildrenWithEmoji(children: StringChild) {
+export function renderChildrenWithEmoji(
+ children: StringChild,
+ props: Omit = {},
+) {
const normalized = Array.isArray(children) ? children : [children]
return (
-
+
{normalized.map(child => {
if (typeof child !== 'string') return child
@@ -68,10 +71,12 @@ export function renderChildrenWithEmoji(children: StringChild) {
}
return child.split(EMOJI).map((stringPart, index) => (
-
+
{stringPart}
{emojis[index] ? (
-
+
{emojis[index]}
) : null}
@@ -163,15 +168,17 @@ export function Text({
}
}
+ const shared = {
+ uiTextView: true,
+ selectable,
+ style: s,
+ dataSet: Object.assign({tooltip: title}, dataSet || {}),
+ ...rest,
+ }
+
return (
-
- {isIOS && emoji ? renderChildrenWithEmoji(children) : children}
+
+ {isIOS && emoji ? renderChildrenWithEmoji(children, shared) : children}
)
}
diff --git a/src/view/com/util/ViewHeader.tsx b/src/view/com/util/ViewHeader.tsx
index 64fa504eb..1d4cf8ff0 100644
--- a/src/view/com/util/ViewHeader.tsx
+++ b/src/view/com/util/ViewHeader.tsx
@@ -100,7 +100,7 @@ export function ViewHeader({
) : null}
-
+
{title}
diff --git a/src/view/com/util/text/Text.tsx b/src/view/com/util/text/Text.tsx
index 3d885480c..42ea79b8f 100644
--- a/src/view/com/util/text/Text.tsx
+++ b/src/view/com/util/text/Text.tsx
@@ -77,13 +77,16 @@ export function Text({
flattened.fontSize = flattened.fontSize * fonts.scaleMultiplier
}
+ const shared = {
+ uiTextView: true,
+ selectable,
+ style: flattened,
+ ...props,
+ }
+
return (
-
- {isIOS && emoji ? renderChildrenWithEmoji(children) : children}
+
+ {isIOS && emoji ? renderChildrenWithEmoji(children, shared) : children}
)
}
@@ -104,14 +107,16 @@ export function Text({
flattened.fontSize = flattened.fontSize * fonts.scaleMultiplier
}
+ const shared = {
+ selectable,
+ style: flattened,
+ dataSet: Object.assign({tooltip: title}, dataSet || {}),
+ ...props,
+ }
+
return (
-
- {isIOS && emoji ? renderChildrenWithEmoji(children) : children}
+
+ {isIOS && emoji ? renderChildrenWithEmoji(children, shared) : children}
)
}
--
2.51.2
From 1cedd4a3c4980dd2120c287497b6bd3098fdf751 Mon Sep 17 00:00:00 2001
From: Eric Bailey
Date: Fri, 4 Oct 2024 15:33:17 -0500
Subject: [PATCH 6/7] Post alignment (#5580)
Co-authored-by: Hailey
---
.../post-thread/PostThreadComposePrompt.tsx | 2 +-
.../com/post-thread/PostThreadFollowBtn.tsx | 87 ++---
src/view/com/post-thread/PostThreadItem.tsx | 345 +++++++-----------
3 files changed, 170 insertions(+), 264 deletions(-)
diff --git a/src/view/com/post-thread/PostThreadComposePrompt.tsx b/src/view/com/post-thread/PostThreadComposePrompt.tsx
index 5ad4c256d..c5582922a 100644
--- a/src/view/com/post-thread/PostThreadComposePrompt.tsx
+++ b/src/view/com/post-thread/PostThreadComposePrompt.tsx
@@ -48,7 +48,7 @@ export function PostThreadComposePrompt({
accessibilityHint={_(msg`Opens composer`)}
style={[
gtMobile ? a.py_xs : {paddingTop: 8, paddingBottom: 11},
- gtMobile ? {paddingLeft: 6, paddingRight: 6} : a.px_sm,
+ a.px_sm,
a.border_t,
t.atoms.border_contrast_low,
t.atoms.bg,
diff --git a/src/view/com/post-thread/PostThreadFollowBtn.tsx b/src/view/com/post-thread/PostThreadFollowBtn.tsx
index b75731f6f..1808e91a3 100644
--- a/src/view/com/post-thread/PostThreadFollowBtn.tsx
+++ b/src/view/com/post-thread/PostThreadFollowBtn.tsx
@@ -1,14 +1,9 @@
import React from 'react'
-import {StyleSheet, TouchableOpacity, View} from 'react-native'
import {AppBskyActorDefs} from '@atproto/api'
-import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {useNavigation} from '@react-navigation/native'
-import {usePalette} from '#/lib/hooks/usePalette'
-import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
-import {s} from '#/lib/styles'
import {logger} from '#/logger'
import {Shadow, useProfileShadow} from '#/state/cache/profile-shadow'
import {
@@ -16,8 +11,11 @@ import {
useProfileQuery,
} from '#/state/queries/profile'
import {useRequireAuth} from '#/state/session'
-import {Text} from '#/view/com/util/text/Text'
import * as Toast from '#/view/com/util/Toast'
+import {atoms as a, useBreakpoints} from '#/alf'
+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
+import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
export function PostThreadFollowBtn({did}: {did: string}) {
const {data: profile, isLoading} = useProfileQuery({did})
@@ -36,9 +34,7 @@ function PostThreadFollowBtnLoaded({
}) {
const navigation = useNavigation()
const {_} = useLingui()
- const pal = usePalette('default')
- const palInverted = usePalette('inverted')
- const {isTabletOrDesktop} = useWebMediaQueries()
+ const {gtMobile} = useBreakpoints()
const profile: Shadow =
useProfileShadow(profileUnshadowed)
const [queueFollow, queueUnfollow] = useProfileFollowMutationQueue(
@@ -113,51 +109,32 @@ function PostThreadFollowBtnLoaded({
if (!showFollowBtn) return null
return (
-
-
-
- {isTabletOrDesktop && (
-
- )}
-
- {!isFollowing ? (
- isFollowedBy ? (
- Follow Back
- ) : (
- Follow
- )
- ) : (
- Following
- )}
-
-
-
-
+
)
}
-
-const styles = StyleSheet.create({
- btnOuter: {
- marginLeft: 'auto',
- },
- btn: {
- flexDirection: 'row',
- borderRadius: 50,
- paddingVertical: 8,
- paddingHorizontal: 14,
- },
-})
diff --git a/src/view/com/post-thread/PostThreadItem.tsx b/src/view/com/post-thread/PostThreadItem.tsx
index ead9df116..4701f225c 100644
--- a/src/view/com/post-thread/PostThreadItem.tsx
+++ b/src/view/com/post-thread/PostThreadItem.tsx
@@ -14,14 +14,12 @@ import {useLingui} from '@lingui/react'
import {MAX_POST_LINES} from '#/lib/constants'
import {usePalette} from '#/lib/hooks/usePalette'
-import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
import {makeProfileLink} from '#/lib/routes/links'
import {sanitizeDisplayName} from '#/lib/strings/display-names'
import {sanitizeHandle} from '#/lib/strings/handles'
import {countLines} from '#/lib/strings/helpers'
import {niceDate} from '#/lib/strings/time'
import {s} from '#/lib/styles'
-import {isWeb} from '#/platform/detection'
import {POST_TOMBSTONE, Shadow, usePostShadow} from '#/state/cache/post-shadow'
import {useLanguagePrefs} from '#/state/preferences'
import {useOpenLink} from '#/state/preferences/in-app-browser'
@@ -30,9 +28,10 @@ import {useSession} from '#/state/session'
import {useComposerControls} from '#/state/shell/composer'
import {useMergedThreadgateHiddenReplies} from '#/state/threadgate-hidden-replies'
import {PostThreadFollowBtn} from '#/view/com/post-thread/PostThreadFollowBtn'
-import {atoms as a} from '#/alf'
+import {atoms as a, useTheme} from '#/alf'
import {AppModerationCause} from '#/components/Pills'
import {RichText} from '#/components/RichText'
+import {Text as NewText} from '#/components/Typography'
import {ContentHider} from '../../../components/moderation/ContentHider'
import {LabelsOnMyPost} from '../../../components/moderation/LabelsOnMe'
import {PostAlerts} from '../../../components/moderation/PostAlerts'
@@ -180,6 +179,7 @@ let PostThreadItemLoaded = ({
hideTopBorder?: boolean
threadgateRecord?: AppBskyFeedThreadgate.Record
}): React.ReactNode => {
+ const t = useTheme()
const pal = usePalette('default')
const {_, i18n} = useLingui()
const langPrefs = useLanguagePrefs()
@@ -268,8 +268,14 @@ let PostThreadItemLoaded = ({
return (
<>
{rootUri !== post.uri && (
-
-
+
+
-
-
-
-
-
-
-
-
- {sanitizeDisplayName(
- post.author.displayName ||
- sanitizeHandle(post.author.handle),
- moderation.ui('displayName'),
- )}
-
-
-
-
-
-
- {sanitizeHandle(post.author.handle, '@')}
-
-
-
+ a.px_lg,
+ t.atoms.border_contrast_low,
+ // root post styles
+ rootUri === post.uri && [a.pt_lg],
+ ]}>
+
+
+
+
+
+ {sanitizeDisplayName(
+ post.author.displayName ||
+ sanitizeHandle(post.author.handle),
+ moderation.ui('displayName'),
+ )}
+
+
+
+
+ {sanitizeHandle(post.author.handle, '@')}
+
+
{currentAccount?.did !== post.author.did && (
-
+
+
+
)}
-
-
+
+
+ childContainerStyle={[a.pt_sm]}>
{richText?.text ? (
-
-
-
+
) : undefined}
{post.embed && (
-
+
+
{post.repostCount != null && post.repostCount !== 0 ? (
-
-
+
-
+ style={[a.text_md, t.atoms.text_contrast_medium]}>
+
{formatCount(i18n, post.repostCount)}
- {' '}
+ {' '}
-
+
) : null}
{post.quoteCount != null &&
post.quoteCount !== 0 &&
!post.viewer?.embeddingDisabled ? (
-
-
+
-
+ style={[a.text_md, t.atoms.text_contrast_medium]}>
+
{formatCount(i18n, post.quoteCount)}
- {' '}
+ {' '}
-
+
) : null}
{post.likeCount != null && post.likeCount !== 0 ? (
-
-
+
-
+ style={[a.text_md, t.atoms.text_contrast_medium]}>
+
{formatCount(i18n, post.likeCount)}
- {' '}
+ {' '}
-
+
) : null}
) : null}
-
+
-
+
{!isThreadedChild && showParentReplyLine && (
{/* If we are in threaded mode, the avatar is rendered in PostMeta */}
{!isThreadedChild && (
-
+
)}
-
+
-
+
{richText?.text ? (
-
+
) {
- const {isMobile} = useWebMediaQueries()
- const pal = usePalette('default')
+ const t = useTheme()
if (treeView && depth > 0) {
return (
{Array.from(Array(depth - 1)).map((_, n: number) => (
))}
{children}
@@ -691,8 +682,9 @@ function PostOuterWrapper({
return (
-
+
+
{niceDate(i18n, post.indexedAt)}
-
+
{isRootPost && (
)}
{needsTranslation && (
<>
- ·
+
+ ·
+
-
Translate
-
+
>
)}
@@ -773,31 +760,9 @@ const styles = StyleSheet.create({
borderTopWidth: StyleSheet.hairlineWidth,
paddingLeft: 8,
},
- outerHighlighted: {
- borderTopWidth: 0,
- paddingTop: 4,
- paddingLeft: 8,
- paddingRight: 8,
- },
- outerHighlightedRoot: {
- borderTopWidth: StyleSheet.hairlineWidth,
- paddingTop: 16,
- },
noTopBorder: {
borderTopWidth: 0,
},
- layout: {
- flexDirection: 'row',
- paddingHorizontal: 8,
- },
- layoutAvi: {},
- layoutContent: {
- flex: 1,
- marginLeft: 10,
- },
- layoutContentThreaded: {
- flex: 1,
- },
meta: {
flexDirection: 'row',
paddingVertical: 2,
@@ -805,42 +770,6 @@ const styles = StyleSheet.create({
metaExpandedLine1: {
paddingVertical: 0,
},
- alert: {
- marginBottom: 6,
- },
- postTextContainer: {
- flexDirection: 'row',
- alignItems: 'center',
- flexWrap: 'wrap',
- paddingBottom: 4,
- paddingRight: 10,
- overflow: 'hidden',
- },
- postTextLargeContainer: {
- paddingHorizontal: 0,
- paddingRight: 0,
- paddingBottom: 10,
- },
- translateLink: {
- marginBottom: 6,
- },
- contentHider: {
- marginBottom: 6,
- },
- contentHiderChild: {
- marginTop: 6,
- },
- expandedInfo: {
- flexDirection: 'row',
- padding: 10,
- borderTopWidth: StyleSheet.hairlineWidth,
- borderBottomWidth: StyleSheet.hairlineWidth,
- marginTop: 5,
- marginBottom: 10,
- },
- expandedInfoItem: {
- marginRight: 10,
- },
loadMore: {
flexDirection: 'row',
alignItems: 'center',
--
2.51.2
From 3fb14d184a84cb892c751338c9aea625f5767a47 Mon Sep 17 00:00:00 2001
From: Eric Bailey
Date: Fri, 4 Oct 2024 16:28:05 -0500
Subject: [PATCH 7/7] Move font-face defs into HTML for CDN (#5612)
---
bskyweb/templates/base.html | 14 ++++++++++++++
src/alf/fonts.ts | 2 ++
src/style.css | 15 ---------------
web/index.html | 14 ++++++++++++++
4 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/bskyweb/templates/base.html b/bskyweb/templates/base.html
index 885d13d2a..dd2474c82 100644
--- a/bskyweb/templates/base.html
+++ b/bskyweb/templates/base.html
@@ -24,6 +24,20 @@
*
* THIS NEEDS TO BE DUPLICATED IN `bskyweb/templates/base.html`
*/
+ @font-face {
+ font-family: 'InterVariable';
+ src: url(/static/media/InterVariable.c9f788f6e7ebaec75d7c.ttf) format('truetype');
+ font-weight: 300 1000;
+ font-style: normal;
+ font-display: swap;
+ }
+ @font-face {
+ font-family: 'InterVariableItalic';
+ src: url(/static/media/InterVariable-Italic.55d6a3f35e9b605ba6f4.ttf) format('truetype');
+ font-weight: 300 1000;
+ font-style: italic;
+ font-display: swap;
+ }
html {
background-color: white;
scrollbar-gutter: stable both-edges;
diff --git a/src/alf/fonts.ts b/src/alf/fonts.ts
index 54fe7a34e..b46faed1c 100644
--- a/src/alf/fonts.ts
+++ b/src/alf/fonts.ts
@@ -70,6 +70,8 @@ export function applyFonts(
* IMPORTANT: This is unused. Expo statically extracts these fonts.
*
* All used fonts MUST be configured here. Unused fonts can be commented out.
+ *
+ * This is used for both web fonts and native fonts.
*/
export function DO_NOT_USE() {
return useFonts({
diff --git a/src/style.css b/src/style.css
index 72e1ce2a2..a4c501cc1 100644
--- a/src/style.css
+++ b/src/style.css
@@ -6,21 +6,6 @@
* may need to touch all three. Ask Eric if you aren't sure.
*/
-@font-face {
- font-family: 'InterVariable';
- src: url(/assets/fonts/inter/InterVariable.ttf) format('truetype');
- font-weight: 300 1000;
- font-style: normal;
- font-display: swap;
-}
-@font-face {
- font-family: 'InterVariableItalic';
- src: url(/assets/fonts/inter/InterVariable-Italic.ttf) format('truetype');
- font-weight: 300 1000;
- font-style: italic;
- font-display: swap;
-}
-
/**
* BEGIN STYLES
*
diff --git a/web/index.html b/web/index.html
index 8efc2cb68..2a406429c 100644
--- a/web/index.html
+++ b/web/index.html
@@ -29,6 +29,20 @@
*
* THIS NEEDS TO BE DUPLICATED IN `bskyweb/templates/base.html`
*/
+ @font-face {
+ font-family: 'InterVariable';
+ src: url(/static/media/InterVariable.c9f788f6e7ebaec75d7c.ttf) format('truetype');
+ font-weight: 300 1000;
+ font-style: normal;
+ font-display: swap;
+ }
+ @font-face {
+ font-family: 'InterVariableItalic';
+ src: url(/static/media/InterVariable-Italic.55d6a3f35e9b605ba6f4.ttf) format('truetype');
+ font-weight: 300 1000;
+ font-style: italic;
+ font-display: swap;
+ }
html {
background-color: white;
scrollbar-gutter: stable both-edges;