import { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { setCredentials } from '../store/authSlice';
import { setSettings } from '../store/settingsSlice';
import { setPermissions } from '../store/permissionsSlice';

const AppInitializer = ({ children }: { children: React.ReactNode }) => {
    const dispatch = useDispatch();

    useEffect(() => {
        // Load data from localStorage on app start
        const token = localStorage.getItem('token');
        const user = localStorage.getItem('user');
        const settings = localStorage.getItem('settings');
        const permissions = localStorage.getItem('permissions');

        if (token && user) {
            dispatch(setCredentials({
                user: JSON.parse(user),
                token: token
            }));
        }

        if (settings) {
            dispatch(setSettings(JSON.parse(settings)));
        }

        if (permissions) {
            dispatch(setPermissions(JSON.parse(permissions)));
        }
    }, [dispatch]);

    return <>{children}</>;
};

export default AppInitializer;
