/**
 * 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 (
    <Pressable
      onPress={onJump}
      style={({ pressed }) => ({
        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 слева */}
      <View
        style={{
          width: 3,
          backgroundColor: barColor,
        }}
      />
      <View style={{ flex: 1, paddingHorizontal: 8, paddingVertical: 6 }}>
        <Text
          style={{
            color: authorColor,
            fontSize: 12,
            fontWeight: '700',
          }}
          numberOfLines={1}
        >
          {author}
        </Text>
        <Text
          style={{ color: previewColor, fontSize: 13 }}
          numberOfLines={1}
        >
          {preview || 'attachment'}
        </Text>
      </View>
    </Pressable>
  );
}
