refactor: streamline toast system and harmonize UI across tools
- Migrate all toast notifications to sonner and remove custom ToastProvider - Align Card and TextInput styling across Figlet and Pastel (rounded-lg, border-based) - Fix build error by removing non-existent export in lib/units/index.ts - Clean up unused Figlet components and constants
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
export interface TextTemplate {
|
||||
id: string;
|
||||
label: string;
|
||||
text: string;
|
||||
category: 'greeting' | 'tech' | 'fun' | 'seasonal';
|
||||
}
|
||||
|
||||
export const TEXT_TEMPLATES: TextTemplate[] = [
|
||||
// Greetings
|
||||
{ id: 'hello', label: 'Hello', text: 'Hello!', category: 'greeting' },
|
||||
{ id: 'welcome', label: 'Welcome', text: 'Welcome', category: 'greeting' },
|
||||
{ id: 'hello-world', label: 'Hello World', text: 'Hello World', category: 'greeting' },
|
||||
|
||||
// Tech
|
||||
{ id: 'code', label: 'Code', text: 'CODE', category: 'tech' },
|
||||
{ id: 'dev', label: 'Developer', text: 'DEV', category: 'tech' },
|
||||
{ id: 'hack', label: 'Hack', text: 'HACK', category: 'tech' },
|
||||
{ id: 'terminal', label: 'Terminal', text: 'Terminal', category: 'tech' },
|
||||
{ id: 'git', label: 'Git', text: 'Git', category: 'tech' },
|
||||
|
||||
// Fun
|
||||
{ id: 'awesome', label: 'Awesome', text: 'AWESOME', category: 'fun' },
|
||||
{ id: 'cool', label: 'Cool', text: 'COOL', category: 'fun' },
|
||||
{ id: 'epic', label: 'Epic', text: 'EPIC', category: 'fun' },
|
||||
{ id: 'wow', label: 'Wow', text: 'WOW!', category: 'fun' },
|
||||
|
||||
// Seasonal
|
||||
{ id: 'happy-birthday', label: 'Happy Birthday', text: 'Happy Birthday!', category: 'seasonal' },
|
||||
{ id: 'congrats', label: 'Congrats', text: 'Congrats!', category: 'seasonal' },
|
||||
{ id: 'thanks', label: 'Thanks', text: 'Thanks!', category: 'seasonal' },
|
||||
];
|
||||
|
||||
export const TEMPLATE_CATEGORIES = [
|
||||
{ id: 'greeting', label: 'Greetings', icon: '👋' },
|
||||
{ id: 'tech', label: 'Tech', icon: '💻' },
|
||||
{ id: 'fun', label: 'Fun', icon: '🎉' },
|
||||
{ id: 'seasonal', label: 'Seasonal', icon: '🎊' },
|
||||
] as const;
|
||||
@@ -1,53 +0,0 @@
|
||||
'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));
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
export * from './units';
|
||||
export * from './storage';
|
||||
export * from './utils';
|
||||
export * from './tempo';
|
||||
|
||||
Reference in New Issue
Block a user