@playlive/react-pipeline
    Preparing search index...

    Function useOnLeaderboardExclusionsChange

    • Subscribe to leaderboard-exclusion updates and invoke handler for every new or replaced entry in store.leaderboardExclusions.

      Mirrors useOnScheduleTransition: the handler is stashed in a ref so this hook subscribes exactly once (idempotent across re-renders). The optional campaignIDs filter is compared each fire — empty / undefined means "all campaigns".

      Fires on the leading edge of a change: exclusion lists already present on the store at mount time are treated as baseline and do NOT fire the handler. Every subsequent push does. Reference identity of the per-campaign array is guaranteed fresh by the mutator (see _updateLeaderboardExclusionsForCampaign in @playlive/realtime-pipeline) so !== is enough.

      Soft-fails when no <RealtimePipelineProvider> is mounted — lets consumers wire this into overlay hooks that may render outside a pipeline provider (tests, demo mode) without a hard throw. Selector hooks in this module continue to require a provider.

      Parameters

      • handler: (payload: { campaignID: string; exclusions: LeaderboardExclusion[] }) => void
      • Optionaloptions: { campaignIDs?: readonly string[] }

      Returns void

      useOnLeaderboardExclusionsChange(({ campaignID, exclusions }) => {
      queryClient.setQueryData(["exclusions", campaignID], exclusions);
      }, { campaignIDs: [campaignID] });