Skip to content

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 endpoint through apiClient.
  • Errors: stores an ApiError with 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 ApiError and 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 HTTP leaseService.
  • 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 StorageService local operations, not userService HTTP endpoints.
  • Side effects: loads on mount.
  • Use: const { users, refreshUsers } = useUsers();

useForm ​

  • File: front/src/hooks/useForm.ts
  • Parameters: initialValues; optional validate(values) and onSubmit(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 StorageService to 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, optional initialStep, initialFormData, and onStepChange.
  • Return: current step/form data, navigation flags/progress, data update and step navigation/reset functions.
  • Validation: calls validateStep from front/src/utils/leaseHelpers.ts before 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.