From 057a9e9f4ebe9595ed6aeebd2ae5a322b5f22f64 Mon Sep 17 00:00:00 2001 From: rockyeverlast Date: Wed, 8 May 2024 13:01:48 +0530 Subject: [PATCH] Faq and Learn page api integration --- src/Redux/slice/faqSlice.js | 13 +++ src/Redux/slice/newsLetter.js | 16 --- src/Redux/store/store.js | 8 +- src/components/BuildPage/BuildBanner.jsx | 2 +- src/components/Footer/Footer.jsx | 35 ++++++- src/components/LearnPage/Faq.jsx | 118 ++++++++++++----------- 6 files changed, 111 insertions(+), 81 deletions(-) create mode 100644 src/Redux/slice/faqSlice.js delete mode 100644 src/Redux/slice/newsLetter.js diff --git a/src/Redux/slice/faqSlice.js b/src/Redux/slice/faqSlice.js new file mode 100644 index 0000000..d1a59e4 --- /dev/null +++ b/src/Redux/slice/faqSlice.js @@ -0,0 +1,13 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; + +export const faqApi = createApi({ + reducerPath: 'LearnPage', + baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), + endpoints: (builder) => ({ + getFaq: builder.query({ + query: () => 'faq/active', + }), + }), +}); + +export const { useGetFaqQuery } = faqApi; \ No newline at end of file diff --git a/src/Redux/slice/newsLetter.js b/src/Redux/slice/newsLetter.js deleted file mode 100644 index d12c603..0000000 --- a/src/Redux/slice/newsLetter.js +++ /dev/null @@ -1,16 +0,0 @@ -import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; - -export const newsLetterApi = createApi({ - baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), - endpoints: (builder) => ({ - newsLetter: builder.mutation({ - query: ({ formData }) => ({ - url: 'newsLetter/request', - method: 'POST', - body: formData, - }), - }), - }), -}); - -export const { useNewLetterMutation } = newsLetterApi; \ No newline at end of file diff --git a/src/Redux/store/store.js b/src/Redux/store/store.js index 1c47951..88b0b1b 100644 --- a/src/Redux/store/store.js +++ b/src/Redux/store/store.js @@ -5,9 +5,9 @@ import { communitiesBanner } from '../slice/communityBannerSlice'; import { newsApi } from '../slice/newsSlice'; import { resourcesApi } from '../slice/resources'; import { videoTableApi } from '../slice/videoTable'; -import { newsLetterApi } from '../slice/newsLetter'; import { whitePaper } from '../slice/whitePaperSlice'; import { buildPage, learnPage } from '../slice/bannerSlice'; +import { faqApi } from '../slice/faqSlice'; const store = configureStore({ reducer: { @@ -17,10 +17,10 @@ const store = configureStore({ [newsApi.reducerPath]: newsApi.reducer, [resourcesApi.reducerPath]: resourcesApi.reducer, [videoTableApi.reducerPath]: videoTableApi.reducer, - [newsLetterApi.reducerPath]: newsLetterApi.reducer, [whitePaper.reducerPath]: whitePaper.reducer, [learnPage.reducerPath]: learnPage.reducer, [buildPage.reducerPath]: buildPage.reducer, + [faqApi.reducerPath]: faqApi.reducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat( @@ -30,10 +30,10 @@ const store = configureStore({ newsApi.middleware, resourcesApi.middleware, videoTableApi.middleware, - newsLetterApi.middleware, whitePaper.middleware, learnPage.middleware, - buildPage.middleware + buildPage.middleware, + faqApi.middleware, ), // Add blogApi.middleware here }); diff --git a/src/components/BuildPage/BuildBanner.jsx b/src/components/BuildPage/BuildBanner.jsx index 2f41a97..0889afb 100644 --- a/src/components/BuildPage/BuildBanner.jsx +++ b/src/components/BuildPage/BuildBanner.jsx @@ -21,7 +21,7 @@ const BannerContent = [ const BuildBanner = ({ data }) => { return ( <> - {data.map((item) => ( + {data?.map((item) => ( { + const [email, setEmail] = useState(""); const [isSmallScreen] = useMediaQuery("(max-width: 996px)"); const [windowWidth, setWindowWidth] = useState(window.innerWidth); + const handleSubmit = async (event) => { + event.preventDefault(); // Prevent the default form submission behavior + + try { + const response = await fetch( + "https://rubix.betadelivery.com/api/newsLetter/request", + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ email }), + } + ); + + if (!response.ok) { + throw new Error("Failed to submit form"); + } + console.log(email); + setEmail(""); + } catch (error) { + console.error("Error submitting form:", error); + } + }; + + const handleEmailChange = (event) => { + setEmail(event.target.value); + }; + useEffect(() => { const handleResize = () => { setWindowWidth(window.innerWidth); @@ -102,7 +131,7 @@ const Footer = () => { Sign up for our newsletter and receive the{" "} {isSmallScreen ? null :
} latest updates. -
+ { borderTopLeftRadius={"5px"} borderBottomLeftRadius={"5px"} color={"#fff"} + onChange={handleEmailChange} + value={email} />