TabSync constructor

TabSync({
  1. TabSyncChannel? channel,
  2. String channelName = 'sp-jwt-auth',
})

Creates a new TabSync coordinator.

Implementation

TabSync({TabSyncChannel? channel, String channelName = 'sp-jwt-auth'})
  : channel = channel ?? MockBroadcastChannel(channelName) {
  _sub = this.channel.onMessage.listen((data) {
    if (data is Map<String, dynamic>) {
      final type = data['type'];
      if (type == 'refreshed') {
        final sData = data['session'] as Map<String, dynamic>?;
        if (sData != null) {
          _controller.add(TabRefreshedMessage(StoredSession.fromJson(sData)));
        }
      } else if (type == 'logged_out') {
        _controller.add(const TabLoggedOutMessage());
      }
    }
  });
}