editGraphe/actions/index.js

/**
 * La liste des actions redux pour editgraphe
 * @module editGraphe/actions/index
 */

export const init = () => ({ type: 'INIT' })

/**
 * Supprime un node
 * @param {string} nodeId
 */
export const delObjetGrapheNode = (nodeId) => ({ type: 'SUPPRESSION_NODE', nodeId })
/**
 * Affecte un node
 * @param {string} nodeId
 * @param {Node} node
 * @param {boolean} [recordable=true]
 */
export const setObjetGrapheNode = (nodeId, node, recordable = true) => ({ type: 'AJOUTE_NODE', node, nodeId, recordable })
export const setObjetGrapheProp = (prop, value) => ({ type: 'AFFECTE_PPTE', prop, value })

export const setRessource = (ressource) => ({ type: 'AJOUTE_RESSOURCE', ressource })

export const setObjetGrapheBranchementProp = (nodeId, branchementIndex, prop, valeur) => ({ type: 'AFFECTE_BRANCHEMENT_PROP', nodeId, branchementIndex, prop, valeur })
export const delObjetGrapheBranchementProp = (nodeId, branchementIndex, prop) => ({ type: 'SUPPRESSION_BRANCHEMENT_PROP', nodeId, branchementIndex, prop })

export const setObjetGrapheBranchement = (nodeId, branchementIndex, branchement, recordable = true) => ({ type: 'AFFECTE_BRANCHEMENT', nodeId, branchementIndex, branchement, recordable })

export const setObjetGrapheTitle = (nodeId, title) => ({ type: 'AFFECTE_TITRE_NODE', nodeId, title })

export const delObjetGrapheBranchement = (nodeId, branchementIndex) => ({ type: 'SUPPRIME_BRANCHEMENT', nodeId, branchementIndex })

export const setObjetGrapheParam = (nodeId, param, value) => ({ type: 'AFFECTE_PARAM_NODE', nodeId, param, value })

export const setObjetGrapheColor = (nodeId, branchementIndex, couleur) => ({ type: 'AFFECTE_COULEUR_BRANCHEMENT', nodeId, branchementIndex, couleur })

export const reindexObjetGrapheBranchements = (nodeId) => ({ type: 'REINDEXE_BRANCHEMENT', nodeId })
export const resetObjetGrapheBranchements = (nodeId) => ({ type: 'RESET_BRANCHEMENT', nodeId })
export const addObjetGrapheBranchement = (nodeId, branchementIndex, branchement) => ({ type: 'COMPLETE_BRANCHEMENT', nodeId, branchementIndex, branchement })

export const incrementeMaxNN = () => ({ type: 'INCREMENTE_MAXNN' })
export const decrementeMaxNN = () => ({ type: 'DECREMENTE_MAXNN' })

export const enregistreIndex = (index) => ({ type: 'ENREGISTRE_INDEX', index })
export const enleveIndex = () => ({ type: 'ENLEVE_INDEX' })

// comme enregistre_index mais non historisé (cf reducerObjetGraphe)
export const ajouteDernierHistorique = (value) => ({ type: 'AJOUTE_DERNIER_HISTORIQUE', value })
export const videFutur = () => ({ type: 'VIDE_FUTUR' })
export const ajouteIndexFutur = (value) => ({ type: 'AJOUTE_INDEX_FUTUR', value })
export const enlevePremierFutur = () => ({ type: 'ENLEVE_PREMIER_FUTUR' })
export const setPositions = (positions) => ({ type: 'AFFECTE_LES_POSITIONS', positions })

/**
 * Retourne l’action AFFECTE_UNE_POSITION
 * @param index
 * @param position
 * @returns {{type: string, position: *, index: *}}
 */
export const setPosition = (index, position) => {
  // on vérifie le type avant de créer l’action
  if (typeof index !== 'number') {
    console.error(new Error('setPosition veut un index numérique'))
    index = Number(index)
  }
  return { type: 'AFFECTE_UNE_POSITION', position, index }
}

export const setTitre = (index, titre) => ({ type: 'CHANGE_UN_TITRE', index, titre })
export const setTitres = (titres) => ({ type: 'CHANGE_LES_TITRES', titres })

export const toggleExplicationsGraphique = () => ({ type: 'TOGGLE_EXPLICATIONS_GRAPHIQUE' })

export const setConfigGraphTmp = (graphe) => ({ type: 'SET_GRAPHE_TEMP', graphe })

/**
 * Ajoute le chemin de la section dans le store
 * @param {string} section Le chemin du fichier de la section "sections/….js"
 * @return {{section: string, type: string}}
 */
export const setConfigSectionsParams = (nomSection, params) => ({ type: 'SET_CONFIG_SECTIONPARAMS', params, nomSection })
export const setConfigGraphTmpSectionOpts = (index, sectionOpts) => ({ type: 'SET_GRAPHE_TEMP_SECTION_OPTS', index, sectionOpts })
export const setConfigGraphTmpSsElt = (index, index2, prop, value) => ({ type: 'SET_GRAPHE_TEMP_NN', index, index2, prop, value })

export const pushConfigGraphTmp = (noeud) => ({ type: 'PUSH_GRAPHE_TEMP_NOEUD', noeud })