Skip to main content

use custom hook for address input - usequery or client.query

useEffect(() => {
const fetchStripeClient = async () => {
const result = await client.query({
query: QUERY_STRIPE_CLIENT_SECRET,
variables: { amount: Math.floor(totalOfOrder * 100) },
})
const {
data: { getStripeClientSecret },
} = result
setStripeClientSecret(getStripeClientSecret)
}
if (fetchingStripeClient) {
fetchStripeClient()
setFetchingStripeClient(false)
}
}, [fetchingStripeClient, client, totalOfOrder])




import React, { useState, useEffect } from 'react'
import { useQuery } from '@apollo/react-hooks'
import { QUERY_LISTING } from './queries'
import { ApolloError } from 'apollo-client'
interface Props {
listingId: string
}

function useListingData<T>(
initialValue: T,
listingId: T
): [T, ApolloError | undefined, React.Dispatch<T>] {
const [listingData, setListingData] = useState<T>(initialValue)

const { loading, error, data } = useQuery(QUERY_LISTING, {
variables: { id: listingId },
})

useEffect(() => {
if (!loading) setListingData(data.getListing)
}, [data, loading])
return [listingData, error, setListingData]
}

export default useListingData

import { useState, useEffect } from 'react';

function useDebounce<T>(
  initialValue: T,
  time: number
): [T, T, React.Dispatch<T>] {
  const [value, setValue] = useState<T>(initialValue);
  const [debouncedValue, setDebouncedValue] = useState<T>(initialValue);

  useEffect(() => {
    const debounce = setTimeout(() => {
      setDebouncedValue(value);
    }, time);
    return () => {
      clearTimeout(debounce);
    };
  }, [value, time]);

  return [debouncedValue, value, setValue];
}


Comments

Popular posts from this blog

apollo client v3 - clean up non-needed packages

v3: https://github.com/apollographql/apollo-client clean up: ApolloProvider useQuery, useMutation, useApolloClient Apollo Client >= 3 includes React hooks functionality out of the box. You don't need to install any additional packages. https://www.apollographql.com/docs/react/api/react/hooks/ //import { ApolloProvider } from '@apollo/react-hooks' import { ApolloProvider } from '@apollo/client/react' //import { useQuery, useMutation, useApolloClient } from '@apollo/react-hooks' import { useQuery, useMutation, useApolloClient } from '@apollo/client' How i can CATCH any error (network and graphql), and prevent promise.reject()  https://github.com/apollographql/apollo-client/issues/6469 npm uninstall @apollo/react-hooks https://github.com/apollographql/apollo-link npm uninstall apollo-link npm uninstall apollo-client npm uninstall apollo-link-error npm uninstall apollo-link-http npm uninstall apollo-link-ws npm uninstall apollo-cache-inmemory