require('@services/channels/channels-config');

import { isAuthenticated } from '@services/auth';

import { echo } from '@services/channels/channels-config';
import { subscribeToMessagesChannel } from '@services/channels/user-messages-channel';
import { subscribeToUserStateChannel } from '@services/channels/user-state-channel';
import { subscribeToNotificationsChannel } from '@services/channels/notifications-channel';
import axios from 'axios';

import { getState } from '@lib/redux/store';
import { useEffect } from 'react';





useEffect(() => {
	const userState = getState()['userState'];
	if (isAuthenticated()) {
		axios.defaults.headers.common.Authorization = `${userState?.token_type} ${userState?.access_token}`;
		// Add a request interceptor
		axios.interceptors.request.use(function(config) {
			config.headers.Authorization = `${userState?.token_type} ${userState?.access_token}`;

			return config;
		});
		echo.connector.pusher.config.auth.headers['Authorization'] = `${userState?.token_type} ${userState?.access_token}`;
		subscribeToMessagesChannel();
		subscribeToUserStateChannel();
		subscribeToNotificationsChannel();
	} else {
		// leave all private channels and presence
	}

}, []);

