+
{entry.entries.title}
-
- {/* {!!entry.collections && } */}
{withDetails && (
-
+
{entry.entries.description}
-
- {entry.entries.media?.[0] && (
-
-
-
- )}
)}
+ {entry.entries.media?.[0] && (
+
+
+
+ )}
)
}
diff --git a/apps/ssr/client/components/items/picture.tsx b/apps/ssr/client/components/items/picture.tsx
index 231c082c2..3a470ee60 100644
--- a/apps/ssr/client/components/items/picture.tsx
+++ b/apps/ssr/client/components/items/picture.tsx
@@ -1,4 +1,3 @@
-import { TeleportalTakeOff } from "@client/components/layout/main/teleportal"
import { LazyImage } from "@client/components/ui/image"
import { getPreferredTitle } from "@client/lib/helper"
import type { EntriesPreview } from "@client/query/entries"
@@ -75,7 +74,7 @@ const breakpoints = {
// 48rem => 48 * 16= 768
768: 3,
// 72rem => 72 * 16= 1152
- 1152: 4,
+ 976: 4,
// 80rem => 80 * 16= 1280
1280: 5,
1536: 6,
@@ -173,33 +172,31 @@ export const PictureList: FC<{
return (
-
-
-
{inlineStyle}
-
- {isInitLayout && (
-
- {/* eslint-disable-next-line @eslint-react/no-context-provider */}
-
-
-
-
-
-
-
-
- )}
-
+
+
{inlineStyle}
+
+ {isInitLayout && (
+
+ {/* eslint-disable-next-line @eslint-react/no-context-provider */}
+
+
+
+
+
+
+
+
+ )}
-
+
)
}
@@ -226,7 +223,7 @@ const render: React.ComponentType<
ratio={data.height && data.width ? data.height / data.width : undefined}
>
setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
>
diff --git a/apps/ssr/client/components/layout/main/teleportal.tsx b/apps/ssr/client/components/layout/main/teleportal.tsx
deleted file mode 100644
index 3e12994b8..000000000
--- a/apps/ssr/client/components/layout/main/teleportal.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { atom, useAtomValue, useSetAtom } from "jotai"
-import type { FC, PropsWithChildren } from "react"
-import { createPortal } from "react-dom"
-
-const portalAtoms = atom(null as HTMLElement | null)
-export const TeleportalDestination = () => {
- const setPortal = useSetAtom(portalAtoms)
-
- return
-}
-
-export const TeleportalTakeOff: FC
= ({ children }) => {
- const portal = useAtomValue(portalAtoms)
-
- if (!portal) return null
-
- return createPortal(children, portal)
-}
diff --git a/apps/ssr/client/components/ui/image.tsx b/apps/ssr/client/components/ui/image.tsx
index 8f52f02c2..a4e594b8c 100644
--- a/apps/ssr/client/components/ui/image.tsx
+++ b/apps/ssr/client/components/ui/image.tsx
@@ -49,7 +49,7 @@ export const LazyImage = ({
src={nextSrc}
height={height}
width={width}
- className={cn("size-full", className)}
+ className={cn("size-full object-cover", className)}
onClick={onClick}
tabIndex={1}
/>
diff --git a/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx b/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx
index ebb117354..7b6da99c9 100644
--- a/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx
+++ b/apps/ssr/client/pages/(main)/share/feeds/[id]/index.tsx
@@ -100,7 +100,7 @@ export function Component() {
-
+
{entries.isLoading && !entries.data ? (
) : (
diff --git a/apps/ssr/client/pages/(main)/share/layout.tsx b/apps/ssr/client/pages/(main)/share/layout.tsx
index 6b4d31a1c..71fcc0bf7 100644
--- a/apps/ssr/client/pages/(main)/share/layout.tsx
+++ b/apps/ssr/client/pages/(main)/share/layout.tsx
@@ -1,5 +1,4 @@
import { Header } from "@client/components/layout/header"
-import { TeleportalDestination } from "@client/components/layout/main/teleportal"
import { MemoedDangerousHTMLStyle } from "@follow/components/common/MemoedDangerousHTMLStyle.jsx"
import { PoweredByFooter } from "@follow/components/common/PoweredByFooter.jsx"
import { Outlet } from "react-router"
@@ -16,7 +15,6 @@ export const Component = () => {
-
)
diff --git a/packages/internal/components/src/ui/effect/MagneticHoverEffect.tsx b/packages/internal/components/src/ui/effect/MagneticHoverEffect.tsx
index 23abccbe2..33514d189 100644
--- a/packages/internal/components/src/ui/effect/MagneticHoverEffect.tsx
+++ b/packages/internal/components/src/ui/effect/MagneticHoverEffect.tsx
@@ -1,6 +1,6 @@
import { cn } from "@follow/utils/utils"
import * as React from "react"
-import { useCallback, useImperativeHandle, useRef } from "react"
+import { useImperativeHandle, useRef } from "react"
type MagneticHoverEffectProps
= {
as?: T
@@ -22,47 +22,13 @@ export const MagneticHoverEffect = ({
return itemRef.current as unknown as T
})
- const handleMouseEnter = (e: React.MouseEvent) => {
- if (!itemRef.current) return
- const rect = itemRef.current.getBoundingClientRect()
-
- const x = ((e.clientX - rect.left) / rect.width) * 100
- const y = ((e.clientY - rect.top) / rect.height) * 100
-
- itemRef.current.style.transition = "transform 0.2s cubic-bezier(0.33, 1, 0.68, 1)"
- itemRef.current.style.setProperty("--origin-x", `${x}%`)
- itemRef.current.style.setProperty("--origin-y", `${y}%`)
- }
-
- const handleMouseLeave = () => {
- if (!itemRef.current) return
- itemRef.current.style.transform = "translate(0px, 0px)"
- itemRef.current.style.transition = "transform 0.4s cubic-bezier(0.33, 1, 0.68, 1)"
- }
-
- const handleMouseMove = useCallback((e: React.MouseEvent) => {
- if (!itemRef.current) return
- const rect = itemRef.current.getBoundingClientRect()
-
- const centerX = rect.left + rect.width / 2
- const centerY = rect.top + rect.height / 2
-
- const distanceX = (e.clientX - centerX) * 0.05
- const distanceY = (e.clientY - centerY) * 0.05
-
- itemRef.current.style.transform = `translate(${distanceX}px, ${distanceY}px)`
- }, [])
-
return (