inegicomponentes-grafica
Version:
Componentes de visualizacion 2023 - Graficas
59 lines (53 loc) • 1.58 kB
JavaScript
/**==============================================
* ! CONTEXTO DEL ESTADO GLOBAL
*
* @descripcion: config, dataset y columnas del componente
*
* columnas: [
* {
* nombre:"string",
* alinear:"c|i|d" // c= centrar, d=derecha, i=izquierda
* resaltar:true // texto en negritas
* }
* ]
*
*
*
*=============================================**/
import React, {createContext, useRef, useContext} from 'react';
import Highcharts from 'highcharts';
import HC_exporting from 'highcharts/modules/exporting'
import { create, createStore, useStore } from 'zustand';
import { useShallow } from 'zustand/react/shallow'
export const StoreContexto = createContext();
const useStoreInContext = (selector) => {
const store = useContext(StoreContexto)
if (!store) {
throw new Error('Missing StoreProvider')
}
return useStore(store, selector)
}
const StoreProvider = ({children}) => {
let store = useRef()
if(!store.current){
store.current = createStore((set, get) => ({
config:{},
inicializaStore:(p) => {
set((state) =>({config:p}))
},
updateConfig:(p) => {
let configLocal = get().config;
set((state) =>({config:{...configLocal,...p}}))
}
}))
}
return (
<StoreContexto.Provider value={store.current}>
{children}
</StoreContexto.Provider>
)
}
export {
useStoreInContext,
StoreProvider
}