Hooks
Custom hooks are exported from front/src/hooks/index.ts. These hooks use React state and effects; the inspected frontend does not use React Query, TanStack Query, SWR, or RTK Query.
useAuth
- File:
front/src/hooks/useAuth.ts - Purpose: Holds user/loading/authenticated state.
- Parameters: none.
- Return:
user,loading,isAuthenticated,login(userData),logout(),updateUser(userData). - Side effects: initializes from
StorageService.getCurrentUser(); login/update persist user; logout clears user. - API calls: none directly.
- Errors: initialization sets loading false; storage behavior is implemented in StorageService.
- Use:
const { user, login, logout } = useAuth();
useApi
- File:
front/src/hooks/useApi.ts - Parameters: endpoint string and optional
{ immediate?: boolean }. - Return:
data,loading,error,execute(config?),reset(). - API:
GET endpointthroughapiClient. - Errors: stores an
ApiErrorwith message/status/code and rethrows it. - Use:
const result = useApi<MyType>('/resource');
useApiMutation
- File:
front/src/hooks/useApi.ts - Parameters: endpoint.
- Return:
data,loading,error,mutate(payload, method?),reset(). - API: supports POST, PUT, PATCH, DELETE; method defaults to POST.
- Errors: stores normalized
ApiErrorand rethrows. - Use:
const mutation = useApiMutation<Result, Payload>('/resource');
useLeases
- File:
front/src/hooks/useLeases.ts - Parameters: none.
- Return: leases/loading/error and local add/update/delete/get-by-ID/refresh functions.
- Data source/API: uses
StorageService.getLeases()and local storage service methods, not the HTTPleaseService. - Side effects: loads on mount.
- Use:
const { leases, refreshLeases } = useLeases();
useUsers
- File:
front/src/hooks/useUsers.ts - Parameters: none.
- Return: users/loading/error and local add/update/delete/get-by-ID/refresh functions.
- Data source/API: uses
StorageServicelocal operations, notuserServiceHTTP endpoints. - Side effects: loads on mount.
- Use:
const { users, refreshUsers } = useUsers();
useForm
- File:
front/src/hooks/useForm.ts - Parameters:
initialValues; optionalvalidate(values)andonSubmit(values). - Return: values/errors/touched/submission flags, handlers, reset, and validation helpers.
- Side effects/API: no API call built in; delegates submit to supplied callback.
- Errors: catches callback errors and logs them; it does not expose that caught error as returned state.
- Use:
useForm({ initialValues, validate, onSubmit });
useLocalStorage
- File:
front/src/hooks/useLocalStorage.ts - Parameters: storage key and initial value.
- Return: tuple
[storedValue, setValue, removeValue]. - Side effects/API: uses
StorageServiceto read/write/remove browser storage; no HTTP request. - Errors: logs storage exceptions and falls back to the initial value on read.
- Use:
const [value, setValue, removeValue] = useLocalStorage('key', defaultValue);
useWizard
- File:
front/src/hooks/useWizard.ts - Parameters:
steps, optionalinitialStep,initialFormData, andonStepChange. - Return: current step/form data, navigation flags/progress, data update and step navigation/reset functions.
- Validation: calls
validateStepfromfront/src/utils/leaseHelpers.tsbefore next step. - API calls: none directly.
- Use:
useWizard({ steps, initialFormData });
Note: The page-level lease wizard implements its own wizard state rather than importing this generic hook.