import { toJS } from 'mobx';
import AppConfigStore from '../../../stores/AppConfigStore';

/**
 * Crée un contexte d'affichage pour AgGrid.
 *
 * @param {AppConfigStore} appConfig
 * @param {string} vueType
 * @param {?Function} mutator
 * @returns {import('../../../jsdoc/types').ContexteAgGrid}
 */
export const createGridContext = (appConfig, vueType, mutator) => {
    const ctx = {}
    rafraichirContextAgGrid(ctx, appConfig, vueType, mutator);
    return ctx;
}

/**
 * Met à jour le contexte d'affichage pour AgGrid.
 *
 * @param {import('../../../jsdoc/types').ContexteAgGrid} context
 * @param {AppConfigStore} appConfig
 * @param {string} vueType
 * @param {?Function} mutator
 */
export const rafraichirContextAgGrid = (context, appConfig, vueType, mutator) => {
    context.actionsMetierHelper = appConfig.actionsMetierHelper;
    context.donneesReference = toJS(appConfig.donneesReference);
    context.groupeType = vueType;
    context.managers = { ...appConfig.managers };
    context.profil = toJS(appConfig.profilSelectionne);
    context.mutator = mutator;
}