'use client'; import React, { useState, useMemo } from 'react'; import WatchlistStockChip from './WatchlistStockChip'; import TradingViewWatchlist from './TradingViewWatchlist'; import { Button } from '@/components/ui/button'; import { ArrowDownAZ, ArrowUpZA, ArrowUpDown } from 'lucide-react'; import { WatchlistItem } from '@/database/models/watchlist.model'; interface WatchlistManagerProps { initialItems: WatchlistItem[]; // Using the DB model type directly or a simplified version userId: string; } export default function WatchlistManager({ initialItems, userId }: WatchlistManagerProps) { // Sort state: 'asc' (A-Z), 'desc' (Z-A), or null (added order/default) const [sortOrder, setSortOrder] = useState<'asc' | 'desc' | null>(null); const toggleSort = () => { if (sortOrder === null) setSortOrder('asc'); else if (sortOrder === 'asc') setSortOrder('desc'); else setSortOrder(null); }; const sortedItems = useMemo(() => { if (!sortOrder) return initialItems; return [...initialItems].sort((a, b) => { if (sortOrder === 'asc') { return a.symbol.localeCompare(b.symbol); } else { return b.symbol.localeCompare(a.symbol); } }); }, [initialItems, sortOrder]); const watchlistSymbols = sortedItems.map((item) => item.symbol); return (

Manage Symbols {watchlistSymbols.length}

{watchlistSymbols.length > 0 ? (
{sortedItems.map((item) => ( ))}
) : (

No stocks in watchlist.

)}
); }