import React from "react";
import { getMemory } from "../memory";
import { StolenDataEntry } from "../stolen-data-entry";
import { maskString, useEmitter } from "../util";
const MAX_STRING_VALUE_LENGTH = 100;
function StolenDataValue({
  entry,
}: {
  entry: StolenDataEntry;
  prefixKey?: string;
}) {
  const [version] = useEmitter(entry);
  let body = null;
  if (!entry.value) {
    body = <>>;
  } else {
    body = (
      
        {maskString(entry.value, 1, MAX_STRING_VALUE_LENGTH)}
      
    );
  }
  return (
     {
        entry.toggleMark();
        e.stopPropagation();
      }}
    >
      {body}
    
  );
}
function StolenDataRow({ entry }: { entry: StolenDataEntry }) {
  const [version] = useEmitter(entry);
  return (
    
      | entry.toggleMark()}
        /> | entry.toggleMark()}
      >
        {entry.name} | {entry.source === "cookie" ? (
          🍪
        ) : entry.request.hasCookie() ? (
          
            🍪
          
        ) : null}
        {entry.exposesOrigin() ? (
          ⚠️
        ) : entry.request.exposesOrigin() ? (
          
            ⚠️
          
        ) : null} |  | 
  );
}
export default function StolenDataCluster({
  origin,
  shorthost,
  minValueLength,
  cookiesOnly,
  cookiesOrOriginOnly,
}: {
  origin: string;
  shorthost: string;
  refreshToken: number;
  minValueLength: number;
  cookiesOnly: boolean;
  cookiesOrOriginOnly: boolean;
}) {
  const cluster = getMemory().getClustersForOrigin(origin)[shorthost];
  return (
    
      
      
        {cluster.getFullHosts().map((host) => (
          
{host}, 
        ))}
      
        
          {cluster
            .getRepresentativeStolenData({
              minValueLength,
              cookiesOnly,
              cookiesOrOriginOnly,
            })
            .map((entry) => (
              
            ))}
        
      
     
  );
}