Applies a state transform to a specific item by ID (e.g. for optimistic votes).
Most recent page-0 fetch error (initial load, search/filter change, or pull-to-refresh), if any.
Whether there are more items available to fetch from the server.
Whether the initial load or a filter/search change request is in flight.
Note: This reflects whether a page-0 network request is actively in flight. Presentation logic (such as showing a full-screen spinner vs. keeping stale results visible while reloading) is the decision of the consuming screen.
Whether a next-page fetch (loadMore) is currently in flight.
True while the client-side post-429 search cooldown is active. Query searches stay suppressed until it elapses; UI should show a localized rate-limit notice instead of treating this as a generic failure.
Whether a pull-to-refresh request is currently in flight.
Accumulated array of loaded feature requests.
Fetches the next page of items and appends them to items.
Safely no-ops if a request is already in flight, no more items remain,
or the token is not ready.
Most recent next-page (loadMore) fetch error, if any. Kept separate
from error so UI can attribute an inline refresh banner and a
load-more footer retry independently; cleared by the next successful
page-0 or load-more fetch.
Refreshes items from page 0 using pull-to-refresh semantics.
Reloads items from page 0 with isLoading = true.
Direct state setter for items.
Total count of matching feature requests reported by server.
Return type of useFeatureRequests.