AppStoreProvider.jsx 651 B

1234567891011121314151617181920212223242526272829
  1. import React from "react";
  2. const AppStoreContext = React.createContext();
  3. AppStoreContext.displayName = "AppStoreContext";
  4. export const AppStoreProvider = ({ children }) => {
  5. const [store, setStore] = React.useState({});
  6. const update = React.useCallback(
  7. (newData) => {
  8. setStore({ ...store, ...(newData ?? {}) });
  9. },
  10. [store],
  11. );
  12. const contextValue = React.useMemo(
  13. () => ({
  14. store,
  15. update,
  16. }),
  17. [store, update],
  18. );
  19. return <AppStoreContext.Provider value={contextValue}>{children}</AppStoreContext.Provider>;
  20. };
  21. export const useAppStore = () => {
  22. return React.useContext(AppStoreContext);
  23. };