Hiyve Components - v1.0.0
    Preparing search index...

    Function usePresenterSync

    • Synchronises presenter state across room participants via WebRTC data messages.

      The presenter broadcasts sidebar state changes; followers receive and apply them. Uses the same data-message transport as reactions — low-latency, peer-to-peer.

      Messages include the sender's userId and followers only accept messages from the declared presenter, preventing other participants from spoofing sync state.

      Parameters

      Returns PresenterSyncReturn

      const { broadcastState } = usePresenterSync({
      localUserId: user.id,
      isPresenter: true,
      enabled: syncEnabled,
      });

      // In PrebuiltRoom callbacks:
      onSidebarOpenChanged={(open) => broadcastState({ sidebarOpen: open })}
      onActiveTabChanged={(tab) => broadcastState({ activeTab: tab })}
      const { presenterState, isFollowing } = usePresenterSync({
      localUserId: user.id,
      isPresenter: false,
      enabled: true,
      });

      // Pass controlled props to PrebuiltRoom when following:
      controlledSidebarOpen={isFollowing ? presenterState?.sidebarOpen : undefined}
      controlledActiveTab={isFollowing ? presenterState?.activeTab : undefined}