1
0
mirror of https://github.com/checktheroads/hyperglass synced 2024-05-11 05:55:08 +00:00
Files
checktheroads-hyperglass/hyperglass/ui/context/StateProvider.js
2020-10-07 09:41:58 -07:00

29 lines
917 B
JavaScript

import * as React from 'react';
import { createContext, useContext, useMemo, useState } from 'react';
import { useSessionStorage } from 'app/hooks';
const StateContext = createContext(null);
export const StateProvider = ({ children }) => {
const [isSubmitting, setSubmitting] = useState(false);
const [formData, setFormData] = useState({});
const [greetingAck, setGreetingAck] = useSessionStorage('hyperglass-greeting-ack', false);
const resetForm = layoutRef => {
layoutRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });
setSubmitting(false);
setFormData({});
};
const value = useMemo(() => ({
isSubmitting,
setSubmitting,
formData,
setFormData,
greetingAck,
setGreetingAck,
resetForm,
}));
return <StateContext.Provider value={value}>{children}</StateContext.Provider>;
};
export const useHyperglassState = () => useContext(StateContext);