Buckets campaignGoal via bucketGiftsThatGiveGoal — a
null bucket auto-disables the query so callers don't need
their own guard.
Projects the wire rows (value_rounded, provide_cover) to
presentation-friendly aliases (value, cover) so consumers
can hand the result straight to the display component.
Prefer this over useGiftsThatGiveMilestones when consuming
milestone rows in an overlay UI. Use the raw hook only when you
already know which tier you want and need the wire shape (e.g.
admin tooling, audit displays).
Overlay-ergonomic composition over useGiftsThatGiveMilestones:
campaignGoalvia bucketGiftsThatGiveGoal — anullbucket auto-disables the query so callers don't need their own guard.value_rounded,provide_cover) to presentation-friendly aliases (value,cover) so consumers can hand the result straight to the display component.Prefer this over useGiftsThatGiveMilestones when consuming milestone rows in an overlay UI. Use the raw hook only when you already know which tier you want and need the wire shape (e.g. admin tooling, audit displays).