I am trying to use this library: https://www.npmjs.com/package/react-acceptjs/v/0.3.0
The problem I am having is I am using multiple Autnorize.net keys. I need to make an API request to get the key and then load if but hooks cant be loaded conditionally so how do I make the api request before I pass the value to useAcceptJs()?
This is demo
import { useAcceptJs } from 'react-acceptjs';
const authData = {
apiLoginID: 'YOUR AUTHORIZE.NET API LOGIN ID',
clientKey: 'YOUR AUTHORIZE.NET PUBLIC CLIENT KEY',
};
type BasicCardInfo = {
cardNumber: string;
cardCode: string;
month: string;
year: string;
};
const App = () => {
const { dispatchData, loading, error } = useAcceptJs({ authData });
const [cardData, setCardData] = React.useState<BasicCardInfo>({
cardNumber: '',
month: '',
year: '',
cardCode: '',
});
const handleSubmit = async (event) => {
event.preventDefault();
// Dispatch CC data to Authorize.net and receive payment nonce for use on your server
const response = await dispatchData({ cardData });
console.log('Received response:', response);
};
return (
<form onSubmit={handleSubmit}>
<input
type="text"
name="cardNumber"
value={cardData.cardNumber}
onChange={(event) =>
setCardData({ ...cardData, cardNumber: event.target.value })
}
/>
<input
type="text"
name="month"
value={cardData.month}
onChange={(event) =>
setCardData({ ...cardData, month: event.target.value })
}
/>
<input
type="text"
name="year"
value={cardData.year}
onChange={(event) =>
setCardData({ ...cardData, year: event.target.value })
}
/>
<input
type="text"
name="cardCode"
value={cardData.cardCode}
onChange={(event) =>
setCardData({ ...cardData, cardCode: event.target.value })
}
/>
<button type="submit" disabled={loading || error}>
Pay
</button>
</form>
);
};
export default App;
I cannot figure out how I can dynamically add in the authData and update it when needed.
Anyone have any ideas?