import { useContext, useState } from "react"; import { createHousehold, joinHousehold } from "../../api/households"; import { HouseholdContext } from "../../context/HouseholdContext"; import "../../styles/components/manage/CreateJoinHousehold.css"; export default function CreateJoinHousehold({ onClose }) { const { refreshHouseholds } = useContext(HouseholdContext); const [mode, setMode] = useState("create"); // "create" or "join" const [householdName, setHouseholdName] = useState(""); const [inviteCode, setInviteCode] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const handleCreate = async (e) => { e.preventDefault(); if (!householdName.trim()) return; setLoading(true); setError(""); try { await createHousehold(householdName); await refreshHouseholds(); onClose(); } catch (err) { console.error("Failed to create household:", err); setError(err.response?.data?.message || "Failed to create household"); } finally { setLoading(false); } }; const handleJoin = async (e) => { e.preventDefault(); if (!inviteCode.trim()) return; setLoading(true); setError(""); try { await joinHousehold(inviteCode); await refreshHouseholds(); onClose(); } catch (err) { console.error("Failed to join household:", err); setError(err.response?.data?.message || "Failed to join household"); } finally { setLoading(false); } }; return (
e.stopPropagation()}>

Household

{error &&
{error}
} {mode === "create" ? (
setHouseholdName(e.target.value)} placeholder="e.g., Smith Family" required autoFocus />
) : (
setInviteCode(e.target.value)} placeholder="Enter invite code" required autoFocus />

Ask the household admin for the invite code

)}
); }