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 d06520a2a..ba132b534 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
@@ -7,15 +7,18 @@ import {
TooltipTrigger,
} from "@follow/components/ui/tooltip/index.js"
import { EllipsisHorizontalTextWithTooltip } from "@follow/components/ui/typography/index.js"
+import { IN_ELECTRON } from "@follow/shared/constants"
import { useCollectionEntry, useIsEntryStarred } from "@follow/store/collection/hooks"
import { useEntry } from "@follow/store/entry/hooks"
import type { EntryModel } from "@follow/store/entry/types"
import { useFeedById } from "@follow/store/feed/hooks"
import { useInboxById } from "@follow/store/inbox/hooks"
+import { transformVideoUrl } from "@follow/utils/url-for-video"
import { cn, isSafari } from "@follow/utils/utils"
import { useMemo } from "react"
import { titleCase } from "title-case"
+import { AudioPlayer, useAudioPlayerAtomSelector } from "~/atoms/player"
import { useGeneralSettingKey } from "~/atoms/settings/general"
import { useUISettingKey } from "~/atoms/settings/ui"
import { RelativeTime } from "~/components/ui/datetime"
@@ -34,11 +37,19 @@ import { readableContentMaxWidth } from "../styles"
import type { EntryItemStatelessProps, UniversalItemProps } from "../types"
import { MediaGallery } from "./media-gallery"
+const ViewTag = IN_ELECTRON ? "webview" : "iframe"
+
const entrySelector = (state: EntryModel) => {
const { feedId, inboxHandle, read } = state
const { authorAvatar, authorUrl, description, publishedAt, title } = state
const audios = state.attachments?.filter((a) => a.mime_type?.startsWith("audio") && a.url)
+ const video = transformVideoUrl({
+ url: state?.url ?? "",
+ isIframe: !IN_ELECTRON,
+ attachments: state?.attachments,
+ mini: true,
+ })
const firstAudio = audios?.[0]
const media = state.media || []
const firstMedia = media?.[0]
@@ -59,6 +70,7 @@ const entrySelector = (state: EntryModel) => {
read,
title,
titleEntry,
+ video,
}
}
export function AllItem({ entryId, entryPreview, translation }: UniversalItemProps) {
@@ -179,28 +191,8 @@ export function AllItem({ entryId, entryPreview, translation }: UniversalItemPro
)}
- {/* TODO */}
- {/* {hasAudio && entry.firstAudio && (
-