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

A component is changing an uncontrolled input of type text to be controlled error in ReactJS - Formik

 https://stackoverflow.com/questions/47012169/a-component-is-changing-an-uncontrolled-input-of-type-text-to-be-controlled-erro default value can't be undefined  case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName break change to: case 'listingBrokerOfficeName' : value = ( listingBroker || {}). officeName || '' break

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

add new site to Vagrant Homestead

Homestead.yaml: folders : - map : ~/ freshinup to : / home / vagrant / code sites : - map : smartmotors . local . com to : / home / vagrant / code / smartmotors / public php : "7.3" - map : arbor . test to : / home / vagrant / code / arbor / public php : "7.3" /etc/hosts: 192.168.10.10 arbor.test 192.168.10.10 smartmotors.local.com vagrant up --provision php artisan smartmotors:seed --quickstart