/*
 * Copyright (c) 2022, J2 Innovations. All Rights Reserved
 */
import { Client } from 'haystack-nclient';
import { useClient } from 'haystack-react';
import React, { useContext, useEffect, useState, } from 'react';
import { useCurrentUser } from '../../useCurrentUser';
import { Resolver } from '../Resolver';
const ResolverContext = React.createContext(new Resolver({
    client: new Client({
        base: new URL(window.location.href),
    }),
}));
ResolverContext.displayName = 'ResolverContext';
export function useResolverContext() {
    return useContext(ResolverContext);
}
export const ResolverProvider = ({ userRoleTagName, evalFuncName, children, }) => {
    const client = useClient();
    const user = useCurrentUser();
    const [resolver, setResolver] = useState(() => new Resolver({
        client,
        user,
        userRoleTagName,
        evalFuncName,
    }));
    useEffect(() => {
        setResolver(new Resolver({
            client,
            user,
            userRoleTagName,
            evalFuncName,
        }));
    }, [client, user, userRoleTagName, evalFuncName]);
    return (<ResolverContext.Provider value={resolver}>
			{children}
		</ResolverContext.Provider>);
};
//# sourceMappingURL=useResolverContext.jsx.map