Skip to content

Instantly share code, notes, and snippets.

@TedSean
Created May 18, 2020 15:04
Show Gist options
  • Save TedSean/982c8d94108e5a70a855f7e602b7c726 to your computer and use it in GitHub Desktop.
Save TedSean/982c8d94108e5a70a855f7e602b7c726 to your computer and use it in GitHub Desktop.
This is the root component which just route the user to either ManageCard or PrepaidCardForm. This has a route name /index/prepaid-card
import React, { useEffect, useCallback } from "react";
import { useSelector, useDispatch } from "react-redux";
import { sha256 } from "js-sha256";
import { getPrepaidCard } from "../../redux/actions/prepaidCardActions";
import val from "../../getThemeDetails";
import Layout from "../../components/Wrappers/Layout";
import PrepaidCardForm from "./ApplyPrepaidCard/PrepaidCardForm";
import ShowPrepaidCards from "./DisplayPrepaidCards/ShowPrepaidCards";
function PrepaidCard() {
const dispatch = useDispatch();
const login = useSelector(state => state.login);
const getPrepaidCardState = useSelector(state => state.getPrepaidCard);
const memoFetchPrepaidCard = useCallback(() => {
const verificationHash = sha256(
login.data.secKey + login.data.cust_id + val.walletOwnerId
);
const req = {
custId: login.data.cust_id,
verificationHash,
walletOwnerId: val.walletOwnerId
};
dispatch(getPrepaidCard(req));
}, [login.data]);
useEffect(() => {
memoFetchPrepaidCard();
}, []);
if (getPrepaidCardState.isLoading) return <Layout>Loading...</Layout>;
if (getPrepaidCardState.notFound) return <PrepaidCardForm {... { getPrepaidCardState,memoFetchPrepaidCard }}/>;
if (getPrepaidCardState.success) {
return (
<ShowPrepaidCards
{...{ getPrepaidCardState, login, dispatch, val, sha256 }}
/>
);
}
return <Layout>Something went wrong</Layout>;
}
export default PrepaidCard;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment