diff --git a/apps/mobile/src/components/common/ErrorBoundary.tsx b/apps/mobile/src/components/common/ErrorBoundary.tsx
index bc5f6ce51..a8f5c0bfa 100644
--- a/apps/mobile/src/components/common/ErrorBoundary.tsx
+++ b/apps/mobile/src/components/common/ErrorBoundary.tsx
@@ -34,7 +34,7 @@ export const ErrorBoundary = ({
const defaultFallbackRender = ({ error }: { error: Error }) => {
return (
- {error.message}
+ {error.message}
)
}
diff --git a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx
index ea01753c2..bf23e3a29 100644
--- a/apps/mobile/src/components/layouts/header/NavigationHeader.tsx
+++ b/apps/mobile/src/components/layouts/header/NavigationHeader.tsx
@@ -1,4 +1,5 @@
import { cn } from "@follow/utils"
+import { EventBus } from "@follow/utils/src/event-bus"
import type { FC, PropsWithChildren, ReactNode } from "react"
import {
createElement,
@@ -35,7 +36,6 @@ import {
useScreenIsInSheetModal,
} from "@/src/lib/navigation/hooks"
import { ScreenItemContext } from "@/src/lib/navigation/ScreenItemContext"
-import { useHorizontalScrolling } from "@/src/modules/screen/atoms"
import { ThemedBlurView } from "../../common/ThemedBlurView"
import { PlatformActivityIndicator } from "../../ui/loading/PlatformActivityIndicator"
@@ -105,12 +105,11 @@ const useHideableBottom = (
},
)
- const horizontalScrolling = useHorizontalScrolling()
useEffect(() => {
- if (horizontalScrolling) {
+ EventBus.subscribe("SELECT_TIMELINE", () => {
largeHeaderHeight.value = withTiming(largeDefaultHeaderHeightRef.current)
- }
- }, [horizontalScrolling, largeHeaderHeight])
+ })
+ }, [largeHeaderHeight])
const layoutHeightOnceRef = useRef(false)
const onLayout = useCallback(
diff --git a/apps/mobile/src/modules/context-menu/entry.tsx b/apps/mobile/src/modules/context-menu/entry.tsx
index ee79539ab..8c8511140 100644
--- a/apps/mobile/src/modules/context-menu/entry.tsx
+++ b/apps/mobile/src/modules/context-menu/entry.tsx
@@ -12,7 +12,6 @@ import {
import { ContextMenu } from "@/src/components/ui/context-menu"
import { useNavigation } from "@/src/lib/navigation/hooks"
import { toast } from "@/src/lib/toast"
-import { getHorizontalScrolling } from "@/src/modules/screen/atoms"
import { EntryDetailScreen } from "@/src/screens/(stack)/entries/[entryId]/EntryDetailScreen"
import { useIsEntryStarred } from "@/src/store/collection/hooks"
import { collectionSyncService } from "@/src/store/collection/store"
@@ -31,8 +30,7 @@ export const EntryItemContextMenu = ({
const navigation = useNavigation()
const handlePressPreview = useCallback(() => {
- const isHorizontalScrolling = getHorizontalScrolling()
- if (entry && !isHorizontalScrolling) {
+ if (entry) {
preloadWebViewEntry(entry)
navigation.pushControllerView(EntryDetailScreen, {
entryId: id,
diff --git a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx
index 806cb69ab..55036ee71 100644
--- a/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx
+++ b/apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx
@@ -17,7 +17,6 @@ import { PauseCuteFiIcon } from "@/src/icons/pause_cute_fi"
import { PlayCuteFiIcon } from "@/src/icons/play_cute_fi"
import { useNavigation } from "@/src/lib/navigation/hooks"
import { getAttachmentState, player } from "@/src/lib/player"
-import { getHorizontalScrolling } from "@/src/modules/screen/atoms"
import { EntryDetailScreen } from "@/src/screens/(stack)/entries/[entryId]/EntryDetailScreen"
import { useEntry } from "@/src/store/entry/hooks"
import { getInboxFrom } from "@/src/store/entry/utils"
@@ -36,8 +35,7 @@ export const EntryNormalItem = memo(
const feed = useFeed(entry?.feedId as string)
const navigation = useNavigation()
const handlePress = useCallback(() => {
- const isHorizontalScrolling = getHorizontalScrolling()
- if (entry && !isHorizontalScrolling) {
+ if (entry) {
preloadWebViewEntry(entry)
tracker.navigateEntry({
feedId: entry.feedId!,
diff --git a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx
index 0a82ffc0e..06729dae0 100644
--- a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx
+++ b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx
@@ -12,7 +12,6 @@ import { Image } from "@/src/components/ui/image/Image"
import { ItemPressableStyle } from "@/src/components/ui/pressable/enum"
import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable"
import { useNavigation } from "@/src/lib/navigation/hooks"
-import { getHorizontalScrolling } from "@/src/modules/screen/atoms"
import { EntryDetailScreen } from "@/src/screens/(stack)/entries/[entryId]/EntryDetailScreen"
import { FeedScreen } from "@/src/screens/(stack)/feeds/[feedId]/FeedScreen"
import { useEntry } from "@/src/store/entry/hooks"
@@ -32,18 +31,15 @@ export const EntrySocialItem = memo(({ entryId }: { entryId: string }) => {
const navigation = useNavigation()
const handlePress = useCallback(() => {
- const isHorizontalScrolling = getHorizontalScrolling()
- if (!isHorizontalScrolling) {
- unreadSyncService.markEntryAsRead(entryId)
- tracker.navigateEntry({
- feedId: entry?.feedId!,
- entryId,
- })
- navigation.pushControllerView(EntryDetailScreen, {
- entryId,
- view: FeedViewType.SocialMedia,
- })
- }
+ unreadSyncService.markEntryAsRead(entryId)
+ tracker.navigateEntry({
+ feedId: entry?.feedId!,
+ entryId,
+ })
+ navigation.pushControllerView(EntryDetailScreen, {
+ entryId,
+ view: FeedViewType.SocialMedia,
+ })
}, [entry?.feedId, entryId, navigation])
const autoExpandLongSocialMedia = useGeneralSettingKey("autoExpandLongSocialMedia")
diff --git a/apps/mobile/src/modules/screen/PagerList.tsx b/apps/mobile/src/modules/screen/PagerList.tsx
index d22895327..f56a49905 100644
--- a/apps/mobile/src/modules/screen/PagerList.tsx
+++ b/apps/mobile/src/modules/screen/PagerList.tsx
@@ -10,7 +10,6 @@ import { useSharedValue } from "react-native-reanimated"
import { selectTimeline, useSelectedFeed } from "@/src/modules/screen/atoms"
import { useViewWithSubscription } from "@/src/store/subscription/hooks"
-import { setHorizontalScrolling } from "./atoms"
import { PagerListVisibleContext, PagerListWillVisibleContext } from "./PagerListContext"
const AnimatedPagerView = Animated.createAnimatedComponent(PagerView)
@@ -96,7 +95,6 @@ export function PagerList({
setDragging(false)
}
- setHorizontalScrolling(pageScrollState !== "idle")
if (pageScrollState === "settling") {
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)
}
diff --git a/apps/mobile/src/modules/screen/atoms.ts b/apps/mobile/src/modules/screen/atoms.ts
index e1083f5a8..93fed3326 100644
--- a/apps/mobile/src/modules/screen/atoms.ts
+++ b/apps/mobile/src/modules/screen/atoms.ts
@@ -184,16 +184,3 @@ export const useViewDefinition = (view?: FeedViewType) => {
const viewDef = useMemo(() => views.find((v) => v.view === view), [view])
return viewDef
}
-
-// horizontal scrolling state
-
-const horizontalScrollingAtom = atom(false)
-
-export const setHorizontalScrolling = (value: boolean) =>
- jotaiStore.set(horizontalScrollingAtom, value)
-
-export const getHorizontalScrolling = () => jotaiStore.get(horizontalScrollingAtom)
-
-export const useHorizontalScrolling = () => {
- return useAtomValue(horizontalScrollingAtom)
-}
diff --git a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx
index 5399701d0..c0cc065e3 100644
--- a/apps/mobile/src/modules/subscription/CategoryGrouped.tsx
+++ b/apps/mobile/src/modules/subscription/CategoryGrouped.tsx
@@ -8,7 +8,7 @@ import { ItemPressableStyle } from "@/src/components/ui/pressable/enum"
import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable"
import { RightCuteFiIcon } from "@/src/icons/right_cute_fi"
import { useNavigation } from "@/src/lib/navigation/hooks"
-import { closeDrawer, getHorizontalScrolling, selectFeed } from "@/src/modules/screen/atoms"
+import { closeDrawer, selectFeed } from "@/src/modules/screen/atoms"
import { FeedScreen } from "@/src/screens/(stack)/feeds/[feedId]/FeedScreen"
import { useUnreadCounts } from "@/src/store/unread/hooks"
import { useColor } from "@/src/theme/colors"
@@ -50,10 +50,6 @@ export const CategoryGrouped = memo(
{
- const isHorizontalScrolling = getHorizontalScrolling()
- if (isHorizontalScrolling) {
- return
- }
selectFeed({
type: "category",
categoryName: category,
diff --git a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx
index fef7cd783..ef36897a2 100644
--- a/apps/mobile/src/modules/subscription/SubscriptionLists.tsx
+++ b/apps/mobile/src/modules/subscription/SubscriptionLists.tsx
@@ -19,7 +19,7 @@ import { ItemPressableStyle } from "@/src/components/ui/pressable/enum"
import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable"
import { StarCuteFiIcon } from "@/src/icons/star_cute_fi"
import { useNavigation } from "@/src/lib/navigation/hooks"
-import { closeDrawer, getHorizontalScrolling, selectFeed } from "@/src/modules/screen/atoms"
+import { closeDrawer, selectFeed } from "@/src/modules/screen/atoms"
import { TimelineSelectorList } from "@/src/modules/screen/TimelineSelectorList"
import { FeedScreen } from "@/src/screens/(stack)/feeds/[feedId]/FeedScreen"
import { FEED_COLLECTION_LIST } from "@/src/store/entry/utils"
@@ -236,10 +236,6 @@ const StarItem = () => {
{
- const isHorizontalScrolling = getHorizontalScrolling()
- if (isHorizontalScrolling) {
- return
- }
selectFeed({ type: "feed", feedId: FEED_COLLECTION_LIST })
closeDrawer()
navigation.pushControllerView(FeedScreen, {
diff --git a/apps/mobile/src/modules/subscription/items/InboxItem.tsx b/apps/mobile/src/modules/subscription/items/InboxItem.tsx
index 0a9c5a1f4..424f46c8d 100644
--- a/apps/mobile/src/modules/subscription/items/InboxItem.tsx
+++ b/apps/mobile/src/modules/subscription/items/InboxItem.tsx
@@ -9,7 +9,7 @@ import { ItemPressableStyle } from "@/src/components/ui/pressable/enum"
import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable"
import { InboxCuteFiIcon } from "@/src/icons/inbox_cute_fi"
import { useNavigation } from "@/src/lib/navigation/hooks"
-import { getHorizontalScrolling, selectFeed } from "@/src/modules/screen/atoms"
+import { selectFeed } from "@/src/modules/screen/atoms"
import { FeedScreen } from "@/src/screens/(stack)/feeds/[feedId]/FeedScreen"
import { useSubscription } from "@/src/store/subscription/hooks"
import { getInboxStoreId } from "@/src/store/subscription/utils"
@@ -37,10 +37,6 @@ export const InboxItem = memo(({ id, isFirst, isLast }: SubscriptionItemBaseProp
itemStyle={ItemPressableStyle.Grouped}
className="h-12 flex-row items-center px-3"
onPress={() => {
- const isHorizontalScrolling = getHorizontalScrolling()
- if (isHorizontalScrolling) {
- return
- }
selectFeed({ type: "inbox", inboxId: id })
navigation.pushControllerView(FeedScreen, {
feedId: id,
diff --git a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx
index 13e6ac950..d95db5805 100644
--- a/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx
+++ b/apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx
@@ -14,7 +14,7 @@ import { useList } from "@/src/store/list/hooks"
import { useListUnreadCount } from "@/src/store/unread/hooks"
import { SubscriptionListItemContextMenu } from "../../context-menu/lists"
-import { getHorizontalScrolling, selectFeed } from "../../screen/atoms"
+import { selectFeed } from "../../screen/atoms"
import { ItemSeparator } from "../ItemSeparator"
import type { SubscriptionItemBaseProps } from "./types"
import { UnreadCount } from "./UnreadCount"
@@ -41,10 +41,6 @@ export const ListSubscriptionItem = memo(({ id, isFirst, isLast }: ListSubscript
itemStyle={ItemPressableStyle.Grouped}
className="h-12 flex-row items-center px-3"
onPress={() => {
- const isHorizontalScrolling = getHorizontalScrolling()
- if (isHorizontalScrolling) {
- return
- }
selectFeed({
type: "list",
listId: id,
diff --git a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx
index c755a04a7..d95217986 100644
--- a/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx
+++ b/apps/mobile/src/modules/subscription/items/SubscriptionItem.tsx
@@ -11,7 +11,7 @@ import { ItemPressableStyle } from "@/src/components/ui/pressable/enum"
import { ItemPressable } from "@/src/components/ui/pressable/ItemPressable"
import { WifiOffCuteReIcon } from "@/src/icons/wifi_off_cute_re"
import { useNavigation } from "@/src/lib/navigation/hooks"
-import { closeDrawer, getHorizontalScrolling, selectFeed } from "@/src/modules/screen/atoms"
+import { closeDrawer, selectFeed } from "@/src/modules/screen/atoms"
import { FeedScreen } from "@/src/screens/(stack)/feeds/[feedId]/FeedScreen"
import { useFeed, usePrefetchFeed } from "@/src/store/feed/hooks"
import { useSubscription } from "@/src/store/subscription/hooks"
@@ -63,10 +63,6 @@ export const SubscriptionItem = memo(
className,
)}
onPress={() => {
- const isHorizontalScrolling = getHorizontalScrolling()
- if (isHorizontalScrolling) {
- return
- }
selectFeed({
type: "feed",
feedId: id,