Skip to content

refactor: extract extractErrorMessage to shared handlerUtils #249

@benshabbat

Description

@benshabbat

DRY Violation — Duplicated Logic

Problem

extractErrorMessage is defined identically in 4 separate action hooks:

  • client/src/pages/users/hooks/useUserActions.js:4
  • client/src/pages/cars/hooks/useCarActions.js:4
  • client/src/pages/messages/hooks/useMessageActions.js:7
  • client/src/pages/servicesAdmin/hooks/useServiceActions.js:3

All four files contain the exact same line:
```js
const extractErrorMessage = (err) => err?.response?.data?.message ?? err?.message ?? String(err);
```

Fix

Add to client/src/utils/handlerUtils.js:
```js
export const extractErrorMessage = (err) =>
err?.response?.data?.message ?? err?.message ?? String(err);
```

Then replace the local declaration in each of the 4 hook files with:
```js
import { extractErrorMessage } from "../../../utils/handlerUtils";
```

Effort: S (under 30 min)

Metadata

Metadata

Assignees

No one assigned

    Labels

    code-improvementCode quality, security, or performance improvement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions