2023-03-28 14:49:34 +03:00

38 lines
1.0 KiB
JavaScript

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);
}, []);
}