element?: React.ReactElement
}
-export type NavigationControllerViewExtraProps = {
+
+export interface NavigationControllerViewExtraProps
+ extends Pick<
+ ScreenProps,
+ | "sheetAllowedDetents"
+ | "sheetCornerRadius"
+ | "sheetExpandsWhenScrolledToEdge"
+ | "sheetElevation"
+ | "sheetGrabberVisible"
+ | "sheetInitialDetentIndex"
+ | "sheetLargestUndimmedDetentIndex"
+ > {
/**
* Unique identifier for the view.
*/
@@ -20,17 +31,7 @@ export type NavigationControllerViewExtraProps = {
* Whether the view is transparent.
*/
transparent?: boolean
-} & Pick<
- ScreenProps,
- | "sheetAllowedDetents"
- | "sheetCornerRadius"
- | "sheetExpandsWhenScrolledToEdge"
- | "sheetElevation"
- | "sheetGrabberVisible"
- | "sheetInitialDetentIndex"
- | "sheetLargestUndimmedDetentIndex"
->
-
+}
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
export type NavigationControllerView = FC
& NavigationControllerViewExtraProps
export type NavigationControllerViewType = StackPresentationTypes
diff --git a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx
index 1ce706528..5b728d008 100644
--- a/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx
+++ b/apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx
@@ -11,6 +11,7 @@ import { Galeria } from "@/src/components/ui/image/galeria"
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 { NativePressable } from "@/src/components/ui/pressable/NativePressable"
import { VideoPlayer } from "@/src/components/ui/video/VideoPlayer"
import { useNavigation } from "@/src/lib/navigation/hooks"
import { EntryDetailScreen } from "@/src/screens/(stack)/entries/[entryId]/EntryDetailScreen"
@@ -53,6 +54,14 @@ export const EntrySocialItem = memo(({ entryId }: { entryId: string }) => {
.filter(Boolean) || []) as string[]
}, [entry])
+ const navigationToFeedEntryList = useCallback(() => {
+ if (!entry) return
+ if (!entry.feedId) return
+ navigation.pushControllerView(FeedScreen, {
+ feedId: entry.feedId,
+ })
+ }, [entry?.feedId, navigation])
+
if (!entry) return
const { description, publishedAt, media } = entry
@@ -67,26 +76,25 @@ export const EntrySocialItem = memo(({ entryId }: { entryId: string }) => {
{!entry.read && }
- {
- if (!entry.feedId) return
- navigation.pushControllerView(FeedScreen, {
- feedId: entry.feedId,
- })
- }}
- >
+
{entry.authorAvatar ? (
-
+
) : (
feed &&
)}
-
+
-
- {entry.author || feed?.title}
-
+
+
+ {entry.author || feed?.title}
+
+
·
From 1ad7598a96215b6c3da9bf1f581b13e4b3ebd080 Mon Sep 17 00:00:00 2001
From: lawvs <18554747+lawvs@users.noreply.github.com>
Date: Fri, 9 May 2025 14:44:32 +0800
Subject: [PATCH 003/104] fix: adjust padding in Settings screen scroll view
---
apps/mobile/src/screens/(stack)/(tabs)/settings.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx b/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx
index 964379567..87bc75a16 100644
--- a/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx
+++ b/apps/mobile/src/screens/(stack)/(tabs)/settings.tsx
@@ -35,7 +35,7 @@ export function Settings() {
ref={scrollViewRef}
style={{ paddingTop: insets.top }}
className="bg-system-grouped-background flex-1"
- contentViewClassName="-mt-24 pb-36"
+ contentViewClassName="-mt-24 pb-8"
>
From b9d841600dbd7f34f8a222a20da57bf163a44578 Mon Sep 17 00:00:00 2001
From: Innei
Date: Fri, 9 May 2025 14:46:49 +0800
Subject: [PATCH 004/104] fix(desktop): refactor UpdateNotice component to use
useRef for handleClick and adjust styles
Signed-off-by: Innei
---
.../src/modules/update-notice/UpdateNotice.tsx | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/apps/desktop/layer/renderer/src/modules/update-notice/UpdateNotice.tsx b/apps/desktop/layer/renderer/src/modules/update-notice/UpdateNotice.tsx
index 3874c868d..928d293e0 100644
--- a/apps/desktop/layer/renderer/src/modules/update-notice/UpdateNotice.tsx
+++ b/apps/desktop/layer/renderer/src/modules/update-notice/UpdateNotice.tsx
@@ -2,7 +2,7 @@ import { Spring } from "@follow/components/constants/spring.js"
import { tracker } from "@follow/tracker"
import { cn } from "@follow/utils/utils"
import { m, useMotionTemplate, useMotionValue } from "motion/react"
-import { useCallback, useEffect } from "react"
+import { useCallback, useEffect, useRef } from "react"
import { useTranslation } from "react-i18next"
import { useAudioPlayerAtomSelector } from "~/atoms/player"
@@ -24,7 +24,7 @@ export const UpdateNotice = () => {
return unlisten
}, [])
- const handleClick = useCallback(() => {
+ const handleClick = useRef(() => {
const status = getUpdaterStatus()
if (!status) return
tracker.updateRestart({
@@ -45,7 +45,7 @@ export const UpdateNotice = () => {
}
}
setUpdaterStatus(null)
- }, [])
+ }).current
const playerIsShow = useAudioPlayerAtomSelector((s) => s.show)
@@ -70,8 +70,8 @@ export const UpdateNotice = () => {
Date: Fri, 9 May 2025 14:51:04 +0800
Subject: [PATCH 005/104] fix(desktop): scroll in GuideModalContent for
improved scrolling experience
Signed-off-by: Innei
---
.../new-user-guide/guide-modal-content.tsx | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx b/apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx
index 787898f06..317a8e645 100644
--- a/apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx
+++ b/apps/desktop/layer/renderer/src/modules/new-user-guide/guide-modal-content.tsx
@@ -1,6 +1,7 @@
import { Logo } from "@follow/components/icons/logo.jsx"
import { Button } from "@follow/components/ui/button/index.js"
import { Kbd } from "@follow/components/ui/kbd/Kbd.js"
+import { ScrollArea } from "@follow/components/ui/scroll-area/index.js"
import { tracker } from "@follow/tracker"
import { cn } from "@follow/utils/utils"
import { AnimatePresence, m } from "motion/react"
@@ -188,13 +189,15 @@ export function GuideModalContent({ onClose }: { onClose: () => void }) {
)}
)}
- {status === "initial" ? (
-
- ) : status === "active" ? (
- guideSteps[step - 1]!.content
- ) : status === "complete" ? (
-
- ) : null}
+
+ {status === "initial" ? (
+
+ ) : status === "active" ? (
+ guideSteps[step - 1]!.content
+ ) : status === "complete" ? (
+
+ ) : null}
+
From 5d4dbff9fcfcfc47405b01ceb92eb097ab5ee328 Mon Sep 17 00:00:00 2001
From: Innei
Date: Fri, 9 May 2025 14:54:45 +0800
Subject: [PATCH 006/104] fix(desktop): adjust margin in EntryListHeader button
for improved layout
Signed-off-by: Innei
---
.../modules/entry-column/layouts/EntryListHeader.electron.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/apps/desktop/layer/renderer/src/modules/entry-column/layouts/EntryListHeader.electron.tsx b/apps/desktop/layer/renderer/src/modules/entry-column/layouts/EntryListHeader.electron.tsx
index f227bc674..33749cf03 100644
--- a/apps/desktop/layer/renderer/src/modules/entry-column/layouts/EntryListHeader.electron.tsx
+++ b/apps/desktop/layer/renderer/src/modules/entry-column/layouts/EntryListHeader.electron.tsx
@@ -175,7 +175,7 @@ const PreviewHeaderInfoWrapper: Component = ({ children }) => {