diff --git a/src/Redux/slice/useCaseSlice.js b/src/Redux/slice/useCaseSlice.js new file mode 100644 index 0000000..da95448 --- /dev/null +++ b/src/Redux/slice/useCaseSlice.js @@ -0,0 +1,13 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; + +export const useCaseApi = createApi({ + reducerPath: 'UseCases/:title_slug', + baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), + endpoints: (builder) => ({ + getUseCase: builder.query({ + query: () => 'tech/active', + }), + }), +}); + +export const { useGetUseCaseQuery } = useCaseApi; \ No newline at end of file diff --git a/src/Redux/store/store.js b/src/Redux/store/store.js index 46a4633..aebae9d 100644 --- a/src/Redux/store/store.js +++ b/src/Redux/store/store.js @@ -9,6 +9,7 @@ import { buildPage } from '../slice/bannerSlice'; import { learnPageApi } from '../slice/learPageSlice'; import { homePageApi } from '../slice/homeSlice'; import { eventsViewApi } from '../slice/eventsViewSlice'; +import { useCaseApi } from '../slice/useCaseSlice'; const store = configureStore({ reducer: { @@ -22,6 +23,7 @@ const store = configureStore({ [learnPageApi.reducerPath]: learnPageApi.reducer, [homePageApi.reducerPath]: homePageApi.reducer, [eventsViewApi.reducerPath]: eventsViewApi.reducer, + [useCaseApi.reducerPath]: useCaseApi.reducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat( @@ -34,7 +36,8 @@ const store = configureStore({ buildPage.middleware, learnPageApi.middleware, homePageApi.middleware, - eventsViewApi.middleware + eventsViewApi.middleware, + useCaseApi.middleware ), // Add blogApi.middleware here }); diff --git a/src/components/NavBar/NavBar.jsx b/src/components/NavBar/NavBar.jsx index 76c331b..062921e 100644 --- a/src/components/NavBar/NavBar.jsx +++ b/src/components/NavBar/NavBar.jsx @@ -12,6 +12,7 @@ import { PopoverCloseButton, PopoverAnchor, Button, + Text, } from "@chakra-ui/react"; import { Outlet, Link, useLocation } from "react-router-dom"; import { useEffect, useState } from "react"; @@ -32,6 +33,7 @@ import marTech from "../../assets/images/Navicons/marTech.png"; import healthTech from "../../assets/images/Navicons/healthTech.png"; import security from "../../assets/images/Navicons/security.png"; import telecom from "../../assets/images/Navicons/telecom.png"; +import { useGetUseCaseQuery } from "../../Redux/slice/useCaseSlice"; const NavBar = () => { const [isScrolled, setIsScrolled] = useState(false); @@ -40,6 +42,9 @@ const NavBar = () => { const [isHoveredCases, setIsHoveredCases] = useState(false); const [isHoveredCommunity, setIsHoveredCommunity] = useState(false); const [windowWidth, setWindowWidth] = useState(window.innerWidth); + const { data } = useGetUseCaseQuery(); + console.log(data); + const useCase = data?.data?.rows; const location = useLocation(); const linkStyle = { @@ -509,135 +514,29 @@ const NavBar = () => { justifyContent={"space-between"} > - - ( + - - FinTech - - - - - - - - - AdTech - - - - - - - - - MarTech - - - - - - - - - HealthTech - - - - - - - - - Identity and Security - - - - - - - - - Telecom - - + + + {`${slug.title}`} + + + ))} @@ -779,13 +678,11 @@ const NavBar = () => { { marginBottom={"1rem"} > - HealthTech + Events diff --git a/src/components/UseCase/UseCase.jsx b/src/components/UseCase/UseCase.jsx index 3ef0ac6..9e81868 100644 --- a/src/components/UseCase/UseCase.jsx +++ b/src/components/UseCase/UseCase.jsx @@ -7,94 +7,116 @@ import { Box, Button, Image, Text } from "@chakra-ui/react"; import pdf from "../../assets/pdf/Rubix.pdf"; import cardimg from "../../assets/images/CardImg.png"; import img from "../../assets/images/pdfscreen.png"; +import { useParams } from "react-router-dom"; +import { useGetUseCaseQuery } from "../../Redux/slice/useCaseSlice"; +import Loader from "../Loader/Loader"; +import NotFound from "../../pages/NotFound"; // eslint-disable-next-line react/prop-types const UseCase = ({ useCase, bannerImage, bannerHeading, bannerSubHeading }) => { + const { title_slug } = useParams(); + const { data, error, isLoading } = useGetUseCaseQuery(); + const useCases = data?.data?.rows; + console.log(data?.data?.rows); useEffect(() => { window.scrollTo(0, 0); }, []); + + if (isLoading) { + return ( +
+ +
+ ); + } + + const matchingUseCase = useCases + ? useCases.find((item) => item.title_slug === title_slug) + : null; + + console.log(matchingUseCase); return ( -
- - + <> + {matchingUseCase ? ( +
- - {bannerHeading} - - - {bannerSubHeading} - + + + {matchingUseCase.title} + + + {matchingUseCase.meta_description} + + + - - - - {useCase.map( - ({ useCaseHeading, useCaseSubHeading, useCaseDetails }) => ( + { }, }} > - {useCaseHeading} + {matchingUseCase.problem} { }, }} > - {useCaseSubHeading} + {matchingUseCase.solution} - {useCaseDetails?.map(({ title, description }) => ( - - - {title} - - - {description} - - - ))} - - ) - )} - - - {useCase.map((item) => ( - <> - {item.documents ? ( + - Use Cases + {matchingUseCase.problem} - ) : ( - "" - )} - - ))} - {useCase.map(({ documents }) => ( - - {documents?.map((item) => ( - - - - - - {item.title} - + + {matchingUseCase.solution} + + + + + {/* + {useCase.map((item) => ( + <> + {item.documents ? ( + + Use Cases + + ) : ( + "" + )} + + ))} + {useCase.map(({ documents }) => ( + + {documents?.map((item) => ( + - - { - - - - } + > + { + + + + } + + - + ))} ))} - - ))} - - -
+
*/} +
+
+ ) : ( + + )} + ); }; diff --git a/src/pages/NewsPage.jsx b/src/pages/NewsPage.jsx index 776c7dd..a98bba4 100644 --- a/src/pages/NewsPage.jsx +++ b/src/pages/NewsPage.jsx @@ -1,7 +1,11 @@ +import { useEffect } from "react"; import NewsContent from "../components/NewsPage/NewsContent"; import NewsHeader from "../components/NewsPage/NewsHeader"; const NewsPage = () => { + useEffect(() => { + window.scrollTo(0, 0); + }, []); return ( <> diff --git a/src/pages/UseCases.jsx b/src/pages/UseCases.jsx index c25498a..8e8de10 100644 --- a/src/pages/UseCases.jsx +++ b/src/pages/UseCases.jsx @@ -14,12 +14,13 @@ const UseCases = ({ }, []); return ( <> - + {/* + /> */} ); }; diff --git a/src/routes/_routes.jsx b/src/routes/_routes.jsx index 7bc3b7e..24a2aff 100644 --- a/src/routes/_routes.jsx +++ b/src/routes/_routes.jsx @@ -25,7 +25,6 @@ import security from "../assets/images/i&security-bg.png"; import tele from "../assets/images/Telecom-bg.png"; import healthTech from "../assets/images/health-tech.png"; import Form from "../components/Contact/Form"; -import UseCase from "../components/UseCase/UseCase"; import ResourcesPage from "../pages/ResourcesPage"; import VideoInternal from "../components/VideoInternal/VideoInternal"; import Ecosystem from "../pages/Ecosystem"; @@ -116,84 +115,88 @@ export const route = [ path: "*", element: , }, - { - path: "fin-tech", - element: ( - - ), + path: "UseCases/:title_slug", + element: , }, - { - path: "ad-tech", - element: ( - - ), - }, - { - path: "mar-tech", - element: ( - - ), - }, - { - path: "health-tech", - element: ( - - ), - }, - { - path: "identity-security", - element: ( - - ), - }, - { - path: "telecom", - element: ( - - ), - }, + // { + // path: "fin-tech", + // element: ( + // + // ), + // }, + + // { + // path: "ad-tech", + // element: ( + // + // ), + // }, + // { + // path: "mar-tech", + // element: ( + // + // ), + // }, + // { + // path: "health-tech", + // element: ( + // + // ), + // }, + // { + // path: "identity-security", + // element: ( + // + // ), + // }, + // { + // path: "telecom", + // element: ( + // + // ), + // }, ];