import { useEffect, useState, useCallback } from 'react' import { Plus, MapPin, User, Phone, Radio, LogIn } from 'lucide-react' import { useStore } from '../store' import { fetchContacts } from '../api' export default function ContactList() { const contacts = useStore((s) => s.contacts) const contactsLoaded = useStore((s) => s.contactsLoaded) const setContacts = useStore((s) => s.setContacts) const setEditingContact = useStore((s) => s.setEditingContact) const setSelectedPlace = useStore((s) => s.setSelectedPlace) const auth = useStore((s) => s.auth) const [filter, setFilter] = useState('') const loadContacts = useCallback(async () => { // Skip fetch entirely if not authenticated if (!auth.authenticated) return const data = await fetchContacts() if (Array.isArray(data)) { setContacts(data) } }, [setContacts, auth.authenticated]) useEffect(() => { if (auth.loaded && auth.authenticated && !contactsLoaded) { loadContacts() } }, [auth.loaded, auth.authenticated, contactsLoaded, loadContacts]) // Show login prompt if not authenticated if (auth.loaded && !auth.authenticated) { return (
Sign in to save and sync your contacts