'use client';

export interface HistoryItem {
  id: string;
  text: string;
  font: string;
  result: string;
  timestamp: number;
}

const HISTORY_KEY = 'figlet-ui-history';
const MAX_HISTORY = 10;

export function getHistory(): HistoryItem[] {
  if (typeof window === 'undefined') return [];

  try {
    const stored = localStorage.getItem(HISTORY_KEY);
    return stored ? JSON.parse(stored) : [];
  } catch {
    return [];
  }
}

export function addToHistory(text: string, font: string, result: string): void {
  let history = getHistory();

  const newItem: HistoryItem = {
    id: `${Date.now()}-${Math.random()}`,
    text,
    font,
    result,
    timestamp: Date.now(),
  };

  // Add to beginning
  history.unshift(newItem);

  // Keep only MAX_HISTORY items
  history = history.slice(0, MAX_HISTORY);

  localStorage.setItem(HISTORY_KEY, JSON.stringify(history));
}

export function clearHistory(): void {
  localStorage.removeItem(HISTORY_KEY);
}

export function removeHistoryItem(id: string): void {
  const history = getHistory();
  const filtered = history.filter(item => item.id !== id);
  localStorage.setItem(HISTORY_KEY, JSON.stringify(filtered));
}
