import { getActiveClient } from '~/client/api/activeClient';
import { createEventSubscriber } from '~/core/events';

export const onLocalCommunityJoin = (
  callback: (joinRequest: Amity.InternalJoinRequest) => void,
) => {
  const client = getActiveClient();

  const filter = async (rawPayload: Amity.InternalJoinRequest[]) => {
    callback(rawPayload[0]);
  };

  const disposers = [
    createEventSubscriber(client, 'onCommunityUpdate', 'v4.local.community.joined', filter),
  ];

  return () => {
    disposers.forEach(fn => fn());
  };
};
