import * as CRMTypes from '@/graphql/crm.types'; import { useStore } from '@/stores/hooks'; import { useApolloClient } from '@apollo/client'; import { useEffect } from 'react'; import { normalizeOptions } from 'tools'; /** * @param {import('@apollo/client').ApolloClient} apolloClient * @param {*} onCompleted */ export function getUsers({ query }, onCompleted) { query({ query: CRMTypes.GetRolesDocument, variables: { roleName: 'МПЛ' }, }).then(({ data }) => { const users = data.roles?.flatMap((x) => x?.systemusers); onCompleted({ selectUser: users, }); }); } export function useGetUsers() { const { $calculation } = useStore(); const apolloClient = useApolloClient(); function handleOnCompleted(options) { Object.keys(options).forEach((elementName) => { const elementOptions = options[elementName]; $calculation.element(elementName).setOptions(normalizeOptions(elementOptions)); }); } useEffect(() => { getUsers(apolloClient, handleOnCompleted); }, []); }