feat(chat): blur locked image previews

This commit is contained in:
2026-06-24 11:53:20 +08:00
parent 76a8320273
commit 6180a8a515
2 changed files with 24 additions and 1 deletions
@@ -1,6 +1,7 @@
/* ImageBubble 图片气泡样式 */
.bubble {
position: relative;
max-width: 220px;
max-height: 220px;
border-radius: var(--radius-lg, 12px);
@@ -17,6 +18,23 @@
object-fit: cover;
}
.paywalled .image {
filter: blur(8px);
transform: scale(1.04);
}
.paywallOverlay {
position: absolute;
inset: 0;
background:
linear-gradient(
180deg,
rgba(255, 255, 255, 0.04) 0%,
rgba(255, 255, 255, 0.14) 100%
);
pointer-events: none;
}
.errorFallback {
display: flex;
align-items: center;
+6 -1
View File
@@ -32,7 +32,9 @@ export function ImageBubble({
return (
<>
<div
className={styles.bubble}
className={`${styles.bubble} ${
imagePaywalled ? styles.paywalled : ""
}`}
onClick={() => setOpen(true)}
role="button"
tabIndex={0}
@@ -56,6 +58,9 @@ export function ImageBubble({
onError={() => setError(true)}
/>
)}
{!error && imagePaywalled ? (
<div className={styles.paywallOverlay} aria-hidden="true" />
) : null}
</div>
{open && (
<FullscreenImageViewer