pages/index: revert getOwnerData back to server

This commit is contained in:
Chika 2022-11-08 12:04:37 +03:00
parent 32fa871238
commit f03ba9d979
3 changed files with 30 additions and 49 deletions

View File

@ -5,7 +5,7 @@ import * as Calculation from 'Components/Calculation';
import { CRMError } from 'Components/Common/Error'; import { CRMError } from 'Components/Common/Error';
import Output from 'Components/Output'; import Output from 'Components/Output';
import Head from 'next/head'; import Head from 'next/head';
import { useInsuranceData, useMainData, useOwnerData } from 'process/init/get-data'; import { getOwnerData, useInsuranceData, useMainData } from 'process/init/get-data';
import { useReactions } from 'process/init/inject-reactions/hooks'; import { useReactions } from 'process/init/inject-reactions/hooks';
import styled from 'styled-components'; import styled from 'styled-components';
import { Box } from 'UIKit/grid'; import { Box } from 'UIKit/grid';
@ -35,8 +35,7 @@ const Grid = styled(Box)`
} }
`; `;
function Home({ user }) { function Home({ error }) {
const { error } = useOwnerData(user);
useMainData(); useMainData();
useInsuranceData(); useInsuranceData();
useReactions(); useReactions();
@ -68,15 +67,25 @@ export const getServerSideProps = async ({ req }) => {
const user = await queryClient.fetchQuery(['user'], queryGetUser); const user = await queryClient.fetchQuery(['user'], queryGetUser);
const apolloClient = initializeApollo(); const apolloClient = initializeApollo();
try {
const { data } = await getOwnerData(apolloClient, user);
return { return {
props: { props: {
user, calculation: {
calculation: null, options: data,
initialApolloState: apolloClient.cache.extract(), },
initialQueryState: dehydrate(queryClient), initialApolloState: apolloClient.cache.extract(),
}, initialQueryState: dehydrate(queryClient),
}; },
};
} catch (error) {
return {
props: {
error: JSON.stringify(error),
},
};
}
}; };
export default Home; export default Home;

View File

@ -1,10 +1,9 @@
/* eslint-disable import/prefer-default-export */ /* eslint-disable import/prefer-default-export */
import { gql, useQuery } from '@apollo/client'; import type { ApolloClient } from '@apollo/client';
import { gql } from '@apollo/client';
import type { User } from 'api/user/types'; import type { User } from 'api/user/types';
import type { GetOwnerDataQuery, GetOwnerDataQueryVariables } from 'graphql/crm.types'; import type { GetOwnerDataQuery, GetOwnerDataQueryVariables } from 'graphql/crm.types';
import { useStore } from 'stores/hooks';
import { normalizeOptions } from 'tools/entity';
const QUERY_GET_OWNER_DATA = gql` const QUERY_GET_OWNER_DATA = gql`
query GetOwnerData($domainname: String) { query GetOwnerData($domainname: String) {
@ -19,38 +18,11 @@ const QUERY_GET_OWNER_DATA = gql`
} }
`; `;
export function useOwnerData(user: User) { export async function getOwnerData({ query }: ApolloClient<object>, user: User) {
const { $calculation } = useStore(); return query<GetOwnerDataQuery, GetOwnerDataQueryVariables>({
query: QUERY_GET_OWNER_DATA,
function handleOnStartFetch() { variables: {
$calculation.$status.setStatus('selectLead', 'Loading'); domainname: user?.domainName,
$calculation.$status.setStatus('selectOpportunity', 'Loading'); },
} });
function handleOnCompleted(data: GetOwnerDataQuery) {
$calculation.element('selectLead').setOptions(normalizeOptions(data?.selectLead));
$calculation.element('selectOpportunity').setOptions(normalizeOptions(data?.selectOpportunity));
$calculation.$status.setStatus('selectLead', 'Default');
$calculation.$status.setStatus('selectOpportunity', 'Default');
}
const { loading, error } = useQuery<GetOwnerDataQuery, GetOwnerDataQueryVariables>(
QUERY_GET_OWNER_DATA,
{
variables: {
domainname: user?.domainName,
},
onCompleted: handleOnCompleted,
}
);
if (loading) {
handleOnStartFetch();
}
return {
error,
};
} }

View File

@ -1,3 +1,3 @@
export { useInsuranceData } from './get-insurance-data'; export { useInsuranceData } from './get-insurance-data';
export { useMainData } from './get-main-data'; export { useMainData } from './get-main-data';
export { useOwnerData } from './get-owner-data'; export { getOwnerData } from './get-owner-data';