CreditCardExample/plugins/LoadingContext.jsx
2023-08-31 09:01:31 -06:00

28 lines
827 B
JavaScript

import { createContext, useContext, useState } from "react"
import dynamic from 'next/dynamic'
import presets from "../utils/globalPresets"
const LoadingSpinner = dynamic(() => { return import("vComponents/dist/Loading") }, { ssr: false })
export const LoadingContext = createContext()
const LoadingProvider = ({ children }) => {
const [loading, setLoading] = useState(false)
const loadingWrapper = {
loading: loading,
setLoading: setLoading,
start: () => { setLoading(true) },
stop: () => { setLoading(false) }
}
return (
<LoadingContext.Provider value={ loadingWrapper }>
{ children }
<LoadingSpinner loading={loading} image={presets.images.imageLoader} background={'backgroundLoader'} color={'colorLoader'} />
</LoadingContext.Provider>
)
}
export default LoadingProvider