/** * ReplyQuote — блок "цитаты" внутри bubble'а сообщения-ответа. * * Визуал: slim-row с синим бордером слева (accent-bar), author в синем, * preview text — серым, в одну строку. * * Tap на quoted-блок → onJump → ChatScreen скроллит к оригиналу и * подсвечивает его на пару секунд. Если оригинал не найден в текущем * списке (удалён / ушёл за пределы пагинации) — onJump может просто * no-op'нуть. * * Цвета зависят от того в чьём bubble'е мы находимся: * - own (синий bubble) → quote border = белый, текст белый/85% * - peer (серый bubble) → quote border = accent blue, текст white */ import React from 'react'; import { View, Text, Pressable } from 'react-native'; export interface ReplyQuoteProps { author: string; preview: string; own?: boolean; onJump?: () => void; } export function ReplyQuote({ author, preview, own, onJump }: ReplyQuoteProps) { const barColor = own ? 'rgba(255,255,255,0.85)' : '#1d9bf0'; const authorColor = own ? '#ffffff' : '#1d9bf0'; const previewColor = own ? 'rgba(255,255,255,0.85)' : '#c0c0c0'; return ( ({ flexDirection: 'row', backgroundColor: own ? 'rgba(255,255,255,0.10)' : 'rgba(29,155,240,0.10)', borderRadius: 10, overflow: 'hidden', marginBottom: 5, opacity: pressed ? 0.7 : 1, })} > {/* Accent bar слева */} {author} {preview || 'attachment'} ); }