batchCooking/apps/web/src/features/profile/HouseNameField.tsx
Nicolas 7abe030bb9 Web: pages Compte/Préférences/Foyer, client API et déplacement des menus (step 6/8)
- pages/settings/AccountSettingsPage: identité + suppression de compte
  (confirmation en deux temps, mot de passe requis)
- pages/settings/PreferencesPage: régime + allergies/intolérances,
  sorti de HouseholdPage (attribut du profil, pas du foyer)
- pages/settings/HouseholdSettingsPage: sans foyer → créer/rejoindre ;
  avec foyer → renommer (hot-save), code d'invitation, membres,
  retirer un membre / supprimer le foyer (admin) ou le quitter
- HouseholdPage.tsx/.scss supprimés (contenu réparti ci-dessus)
- apiClient: createHouse/joinHouse/leaveHouse/deleteHouse/
  removeHouseMember/deleteAccount
- AuthContext: deleteAccount()
- i18n: namespaces account/preferences réorganisés, household réduit
  au foyer, common.saving/saved factorisées
2026-08-17 10:45:58 +02:00

32 lines
957 B
TypeScript

import { useTranslation } from "react-i18next";
import "./profile-forms.scss";
interface HouseNameFieldProps {
value: string;
onChange: (name: string) => void;
error?: string;
}
/**
* Labeled text input for the household's name — used both by the signup
* wizard's household step and the `/parametres/foyer` settings page (see
* `profile-forms.scss` for the shared styling both consume). Controlled
* component: the caller owns the value and persists it (`ApiClient.
* renameHouse`) on submit, not this component.
*/
export function HouseNameField({ value, onChange, error }: HouseNameFieldProps) {
const { t } = useTranslation();
return (
<>
<label htmlFor="houseName">{t("household.form.nameLabel")}</label>
<input
id="houseName"
value={value}
onChange={(e) => onChange(e.target.value)}
autoComplete="off"
/>
{error && <p className="field-error">{error}</p>}
</>
);
}