-
-
-
-
{feed.data.feed.title}
-
-
-
{feed.data.feed.description}
-
-
- {t("feed.followsAndReads", {
- subscriptionCount: feed.data.subscriptionCount,
- subscriptionNoun: t("feed.follower", { count: feed.data.subscriptionCount }),
- readCount: feed.data.readCount,
- readNoun: t("feed.read", { count: feed.data.readCount }),
- appName: APP_NAME,
- })}
-
-
- {feedData.url.startsWith("https://") ? (
-
- ) : (
-
- )}
-
-
-
- {entries.data?.map((entry) => (
-
-
-
-
-
- ))}
-
-
-
- )
- )}
- >
- )
-}
diff --git a/apps/renderer/src/pages/(external)/(with-layout)/share/lists/[id]/index.tsx b/apps/renderer/src/pages/(external)/(with-layout)/share/lists/[id]/index.tsx
deleted file mode 100644
index 3fc564db9..000000000
--- a/apps/renderer/src/pages/(external)/(with-layout)/share/lists/[id]/index.tsx
+++ /dev/null
@@ -1,122 +0,0 @@
-import { FollowIcon } from "@follow/components/icons/follow.jsx"
-import { Button } from "@follow/components/ui/button/index.js"
-import { LoadingCircle } from "@follow/components/ui/loading/index.jsx"
-import { useTitle } from "@follow/hooks"
-import type { ListModel } from "@follow/models/types"
-import { useTranslation } from "react-i18next"
-import { useParams } from "react-router-dom"
-import { toast } from "sonner"
-
-import { PoweredByFooter } from "~/components/common/PoweredByFooter"
-import { usePresentFeedFormModal } from "~/hooks/biz/useFeedFormModal"
-import { FeedCertification } from "~/modules/feed/feed-certification"
-import { FeedIcon } from "~/modules/feed/feed-icon"
-import { useList } from "~/queries/lists"
-import { useFeedById } from "~/store/feed/hooks"
-
-export function Component() {
- const { id } = useParams()
-
- const list = useList({
- id: id!,
- })
- const listData = list.data?.list as ListModel
- const isSubscribed = !!list.data?.subscription
-
- const { t } = useTranslation("external")
- useTitle(list.data?.list.title)
- const presentFeedFormModal = usePresentFeedFormModal()
- return (
- <>
- {list.isLoading ? (
-
-
-
-
-
{list.data.list.title}
-
-
-
{list.data.list.description}
-
-
- {t("feed.followsAndFeeds", {
- subscriptionCount: list.data?.subscriptionCount,
- subscriptionNoun: t("feed.follower", { count: list.data?.subscriptionCount }),
- feedsCount: list.data?.feedCount || 0,
- feedsNoun: t("feed.feeds", { count: listData?.feedIds?.length }),
- appName: APP_NAME,
- })}
-
-
-
-
-
-
- {listData.feedIds
- ?.slice(0, 5)
- .map((feedId) =>
)}
- {"feedCount" in list.data && (
-
{
- presentFeedFormModal({
- listId: id!,
- })
- }}
- className="text-sm text-zinc-500"
- >
- {t("feed.follow_to_view_all", {
- count: list.data.feedCount || 0,
- })}
-
- )}
-
-
-
- )
- )}
- >
- )
-}
-
-const FeedRow = ({ feedId }: { feedId: string }) => {
- const feed = useFeedById(feedId)
- if (!feed) return null
- return (
-