diff --git a/.gitignore b/.gitignore index 196742530..6bec08d32 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ buildServer.json apps/desktop/build/appxmanifest.xml .claude/settings.local.json +.serena diff --git a/apps/desktop/layer/renderer/src/modules/entry-column/Items/all-item.tsx b/apps/desktop/layer/renderer/src/modules/entry-column/Items/all-item.tsx index 9351cb857..b02bfaabb 100644 --- a/apps/desktop/layer/renderer/src/modules/entry-column/Items/all-item.tsx +++ b/apps/desktop/layer/renderer/src/modules/entry-column/Items/all-item.tsx @@ -73,7 +73,7 @@ const entrySelector = (state: EntryModel) => { video, } } -export function AllItem({ entryId, translation }: UniversalItemProps) { +export function AllItem({ entryId, translation, currentFeedTitle }: UniversalItemProps) { const entry = useEntry(entryId, entrySelector) const simple = true @@ -132,32 +132,37 @@ export function AllItem({ entryId, translation }: UniversalItemProps) { const related = feed || inbox + const thisFeedTitle = getPreferredTitle(related, entry?.titleEntry) return (
= FC
& { diff --git a/apps/desktop/layer/renderer/src/store/feed/hooks.ts b/apps/desktop/layer/renderer/src/store/feed/hooks.ts index 045fe002f..f03bba752 100644 --- a/apps/desktop/layer/renderer/src/store/feed/hooks.ts +++ b/apps/desktop/layer/renderer/src/store/feed/hooks.ts @@ -1,9 +1,11 @@ import { views } from "@follow/constants" import type { EntryModel } from "@follow/store/entry/types" import { useFeedById, usePrefetchFeed } from "@follow/store/feed/hooks" +import { feedIconSelector } from "@follow/store/feed/selectors" import { useListById, usePrefetchListById } from "@follow/store/list/hooks" import { getSubscriptionByFeedId } from "@follow/store/subscription/getter" import { useTranslation } from "react-i18next" +import { useShallow } from "zustand/shallow" import { FEED_COLLECTION_LIST, @@ -64,3 +66,22 @@ export const useFeedHeaderTitle = () => { } } } + +export const useFeedHeaderIcon = () => { + const { feedId: currentFeedId, listId: currentListId } = useRouteParams() + + const feedIcon = useFeedById(currentFeedId, useShallow(feedIconSelector)) + const listIcon = useListById( + currentListId, + useShallow((feed) => ({ + type: feed.type, + ownerUserId: feed.ownerUserId, + id: feed.id, + title: feed.title, + url: (feed as any).url || "", + image: feed.image, + })), + ) + + return feedIcon || listIcon +}