All updates
ProductionQAFrontend

Client and Sub-client Dropdowns Load the Full List Again (QA)

PR #629pixbox-supportOct 22, 2025 · 05:13 UTC
QAOct 22, 2025
ProductionOct 22, 2025

Executive summary

This QA release (promoting PR #628) makes client and sub-client selector dropdowns request the complete, unpaginated list from the backend by default. Until the dropdown components gain proper async paging support, this ensures users see every client and sub-client in these pickers rather than only the first page.

Why this was needed

The selector dropdown components in use (shadcn-based) do not yet support fetching additional pages of results on scroll. With backend pagination active, these dropdowns could silently show only the first page of clients/sub-clients, hiding the rest and making them un-selectable. This is an interim fix to keep all options visible until async pagination is built into the selectors.

Client / user impact

Users selecting a client or sub-client (e.g. when creating an organization or filtering by client) will see the full list of available options in the dropdown rather than a truncated subset. This prevents missing or unselectable clients in these pickers. Note: for accounts with very large client lists, these dropdowns now load all records at once, which is an accepted trade-off pending the async-pagination follow-up.

Technical scope

  • Single file changed: src/services/client.services.ts (+13/-6).
  • Adds a BYPASS_ENABLE_PAGINATION = false constant with a TODO noting that async pagination is not yet supported on the shadcn selector components.
  • getAllClients now defaults enable_pagination to this constant when a caller does not pass one explicitly (params?.enable_pagination ?? BYPASS_ENABLE_PAGINATION).
  • getSubClients, getSubClientsByClientId, and getAllSubClients now send enable_pagination using the same constant/fallback, standardizing the behavior across all client-service fetches.
  • Callers can still override the flag explicitly; only the default changes.
  • Promotes feature PR #628 (fix/Create-organiation…-pagination-off) into the QA branch.

Risk & mitigation

Low risk and easily reversible (flip the single constant). The main concern is performance: disabling pagination means each selector fetches the entire client/sub-client set in one request, which could be slow for tenants with large lists. Mitigation: behavior is centralized in one constant and explicit caller overrides are preserved, so it can be tuned or reverted quickly once the components support async paging.

QA validation focus

  • Verify client and sub-client dropdowns (organization create flow and any client/sub-client filters) display the complete list, including entries that were previously cut off.
  • Confirm sub-client lists scoped to a selected client still load correctly.
  • Spot-check load time/responsiveness of these dropdowns on accounts with many clients.
  • Confirm no regressions where a caller intentionally enables pagination (explicit enable_pagination: true should still be honored).