UNPKG

@geist-ui/react

Version:

Modern and minimalist React UI library.

50 lines (43 loc) 1.7 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import React, { useMemo, useState } from 'react'; import { GeistUIContent } from '../utils/use-geist-ui-context'; import ThemeProvider from './theme-provider'; import useCurrentState from '../utils/use-current-state'; import ToastContainer from '../use-toasts/toast-container'; var GeistProvider = function GeistProvider(_ref) { var themes = _ref.themes, themeType = _ref.themeType, children = _ref.children; var _useCurrentState = useCurrentState([]), _useCurrentState2 = _slicedToArray(_useCurrentState, 3), toasts = _useCurrentState2[0], setToasts = _useCurrentState2[1], toastsRef = _useCurrentState2[2]; var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), toastHovering = _useState2[0], setToastHovering = _useState2[1]; var updateToasts = function updateToasts(fn) { var nextToasts = fn(toastsRef.current); setToasts(nextToasts); }; var updateToastHoverStatus = function updateToastHoverStatus(fn) { var nextHoverStatus = fn(); setToastHovering(nextHoverStatus); }; var initialValue = useMemo(function () { return { toasts: toasts, toastHovering: toastHovering, updateToasts: updateToasts, updateToastHoverStatus: updateToastHoverStatus }; }, [toasts, toastHovering]); return /*#__PURE__*/React.createElement(GeistUIContent.Provider, { value: initialValue }, /*#__PURE__*/React.createElement(ThemeProvider, { themes: themes, themeType: themeType }, children, /*#__PURE__*/React.createElement(ToastContainer, null))); }; export default GeistProvider;