diff --git a/apps/renderer/src/modules/entry-column/components/DateItem.tsx b/apps/renderer/src/modules/entry-column/components/DateItem.tsx index b5549d717..461b68b84 100644 --- a/apps/renderer/src/modules/entry-column/components/DateItem.tsx +++ b/apps/renderer/src/modules/entry-column/components/DateItem.tsx @@ -1,7 +1,16 @@ import { m } from "framer-motion" import { throttle } from "lodash-es" import type { FC, PropsWithChildren } from "react" -import { memo, useCallback, useId, useLayoutEffect, useMemo, useRef, useState } from "react" +import { + cloneElement, + memo, + useCallback, + useId, + useLayoutEffect, + useMemo, + useRef, + useState, +} from "react" import { useDebounceCallback } from "usehooks-ts" import { SafeFragment } from "~/components/common/Fragment" @@ -79,10 +88,13 @@ const DateItemInner: FC<{ Wrapper?: FC }> = ({ date, endTime, startTime, className, Wrapper }) => { const rid = useId() - const RelativeElement = ( - - - + const RelativeElement = useMemo( + () => ( + + + + ), + [date, rid], ) const handleMarkAllAsRead = useMarkAllByRoute({ @@ -108,6 +120,7 @@ const DateItemInner: FC<{ const { feedId } = useRouteParams() const isList = isListSubscription(feedId) + const tooltipId = useRef(Math.random().toString()) return (
Mark - {RelativeElement} + {useMemo( + () => cloneElement(RelativeElement, { layoutId: tooltipId.current }), + [RelativeElement], + )} as read