diff --git a/src/Redux/slice/NewsInternalSlice.js b/src/Redux/slice/NewsInternalSlice.js new file mode 100644 index 0000000..ae0fea0 --- /dev/null +++ b/src/Redux/slice/NewsInternalSlice.js @@ -0,0 +1,13 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; + +export const newsInternalApi = createApi({ + reducerPath: 'newsInternal', + baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), + endpoints: (builder) => ({ + getNewsInternal: builder.query({ + query: () => 'news/active', + }), + }), +}); + +export const { useGetNewsInternalQuery } = newsInternalApi; \ No newline at end of file diff --git a/src/Redux/slice/ecosystemSlice.js b/src/Redux/slice/ecosystemSlice.js new file mode 100644 index 0000000..8b6fdfe --- /dev/null +++ b/src/Redux/slice/ecosystemSlice.js @@ -0,0 +1,13 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' + +export const ecoSystem = createApi({ + reducerPath: 'ecoSystem', + baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), + endpoints: (builder) => ({ + getEcoSystem: builder.query({ + query: () => 'eco/active', + }), + }), +}); + +export const { useGetEcoSystemQuery } = ecoSystem; \ No newline at end of file diff --git a/src/Redux/slice/homeSlice.js b/src/Redux/slice/homeSlice.js index e628717..bab0adf 100644 --- a/src/Redux/slice/homeSlice.js +++ b/src/Redux/slice/homeSlice.js @@ -1,7 +1,7 @@ import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; export const homePageApi = createApi({ - reducerPath: 'events', + reducerPath: 'homeSlice', baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), endpoints: (builder) => ({ getHomePage: builder.query({ diff --git a/src/Redux/slice/newsSlice.js b/src/Redux/slice/newsSlice.js index 52abd35..a7d8c81 100644 --- a/src/Redux/slice/newsSlice.js +++ b/src/Redux/slice/newsSlice.js @@ -5,7 +5,7 @@ export const newsApi = createApi({ baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), endpoints: (builder) => ({ getNews: builder.query({ - query: ({ page, pageSize }) => `admin/news?page=${page}&pageSize=${pageSize}`, + query: ({ page, pageSize }) => `news/active?page=${page}&pageSize=${pageSize}`, }), }), }); diff --git a/src/Redux/slice/resources.js b/src/Redux/slice/resources.js index 9a5beff..3c23159 100644 --- a/src/Redux/slice/resources.js +++ b/src/Redux/slice/resources.js @@ -5,9 +5,12 @@ export const resourcesApi = createApi({ baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix.betadelivery.com/api/' }), endpoints: (builder) => ({ getResources: builder.query({ - query: ({ page, pageSize }) => `admin/whitepaper?page=${page}&pageSize=${pageSize}`, + query: ({ page, pageSize }) => `whitepaper/active?page=${page}&pageSize=${pageSize}`, + }), + getArticles: builder.query({ + query: ({ page, pageSize }) => `artical/active?page=${page}&pageSize=${pageSize}`, }), }), }); -export const { useGetResourcesQuery } = resourcesApi; \ No newline at end of file +export const { useGetResourcesQuery, useGetArticlesQuery } = resourcesApi; \ No newline at end of file diff --git a/src/Redux/slice/statsSlice.js b/src/Redux/slice/statsSlice.js new file mode 100644 index 0000000..986a90a --- /dev/null +++ b/src/Redux/slice/statsSlice.js @@ -0,0 +1,16 @@ +import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; + +export const statsApi = createApi({ + reducerPath: 'statsApi', + baseQuery: fetchBaseQuery({ baseUrl: 'https://rubix-explorer-api.azurewebsites.net/api/' }), + endpoints: (builder) => ({ + getStatsApi: builder.query({ + query: () => 'Explorer/totalsupply', + }), + getStatApi: builder.query({ + query: () => 'Explorer/Cards', + }), + }), +}); + +export const { useGetStatsApiQuery, useGetStatApiQuery } = statsApi; diff --git a/src/Redux/store/store.js b/src/Redux/store/store.js index 266d4af..7528242 100644 --- a/src/Redux/store/store.js +++ b/src/Redux/store/store.js @@ -10,6 +10,9 @@ import { learnPageApi } from '../slice/learPageSlice'; import { homePageApi } from '../slice/homeSlice'; import { eventsViewApi } from '../slice/eventsViewSlice'; import { useCaseApi } from '../slice/useCaseSlice'; +import { newsInternalApi } from '../slice/NewsInternalSlice'; +import { ecoSystem } from '../slice/ecosystemSlice'; +import { statsApi } from '../slice/statsSlice'; const store = configureStore({ reducer: { @@ -24,6 +27,9 @@ const store = configureStore({ [homePageApi.reducerPath]: homePageApi.reducer, [eventsViewApi.reducerPath]: eventsViewApi.reducer, [useCaseApi.reducerPath]: useCaseApi.reducer, + [newsInternalApi.reducerPath]: newsInternalApi.reducer, + [ecoSystem.reducerPath]: ecoSystem.reducer, + [statsApi.reducerPath]: statsApi.reducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat( @@ -38,6 +44,9 @@ const store = configureStore({ homePageApi.middleware, eventsViewApi.middleware, useCaseApi.middleware, + newsInternalApi.middleware, + ecoSystem.middleware, + statsApi.middleware, ), // Add blogApi.middleware here }); diff --git a/src/components/EcoPage/EcoBanner.jsx b/src/components/EcoPage/EcoBanner.jsx index b19ec86..4ffdb5b 100644 --- a/src/components/EcoPage/EcoBanner.jsx +++ b/src/components/EcoPage/EcoBanner.jsx @@ -1,6 +1,9 @@ +/* eslint-disable no-unused-vars */ import { Box, Button, Container, Text } from "@chakra-ui/react"; import banner from "../../assets/images/EcoBanner.png"; import { Link } from "react-router-dom"; +import Loader from "../Loader/Loader"; +import { useGetEcoSystemQuery } from "../../Redux/slice/ecosystemSlice"; const BannerContent = [ { @@ -17,168 +20,169 @@ const BannerContent = [ ]; const EcoBanner = () => { + const { data, isLoading, error } = useGetEcoSystemQuery(); + const dataHeader = data?.data?.data; + console.log(dataHeader); + if (isLoading) { + return ( +
+ +
+ ); + } return ( - - + <> + {dataHeader?.map((item) => ( - - - {BannerContent[0].head} - - {BannerContent[0].heading1}
- - {BannerContent[0].heading2} - -
- - - {BannerContent[1].subheading} - - - - - + + {item.Heading} + + + + {item.sub_heading} + + + + + +
+
- - + ))} + ); }; diff --git a/src/components/HomePage/Stats.jsx b/src/components/HomePage/Stats.jsx index 40cfc5f..907dc87 100644 --- a/src/components/HomePage/Stats.jsx +++ b/src/components/HomePage/Stats.jsx @@ -3,12 +3,15 @@ import { useInView } from "react-intersection-observer"; import CountUp from "react-countup"; import banner from "../../assets/images/Statsbanner.png"; import { useMediaQuery } from "@chakra-ui/react"; +import { useGetStatsApiQuery } from "../../Redux/slice/statsSlice"; const StatsContent = { heading: `Key Statistics`, }; const Stats = () => { + const { data, isLoading, error } = useGetStatsApiQuery(); + console.log(data); const [isSmallScreen] = useMediaQuery("(max-width: 435px)"); const { ref, inView } = useInView({ threshold: 0.5, diff --git a/src/components/NavBar/NavBar.jsx b/src/components/NavBar/NavBar.jsx index fa6534d..2e89159 100644 --- a/src/components/NavBar/NavBar.jsx +++ b/src/components/NavBar/NavBar.jsx @@ -325,7 +325,6 @@ const NavBar = () => { - setIsHoveredBuild(false)} @@ -461,7 +460,6 @@ const NavBar = () => { - setIsHoveredCases(false)} @@ -658,7 +656,6 @@ const NavBar = () => { */} - {/* { + + + + + + EcoSystem + + + @@ -835,7 +854,6 @@ const NavBar = () => { style={location.pathname === "/" ? active : linkStyle} /> */} - { + const { title_slug } = useParams(); + const { data, error, isLoading } = useGetNewsInternalQuery(); + const newsPosts = data?.data?.data?.rows; + console.log(data?.data?.data?.rows); + + useEffect(() => { + window.scrollTo(0, 0); + }, []); + + if (isLoading) { + return ( +
+ +
+ ); + } + + const matchingNewsPost = newsPosts + ? newsPosts.find((item) => item.title_slug === title_slug) + : null; + + console.log(matchingNewsPost); + return ( + <> + {matchingNewsPost ? ( + + + + {matchingNewsPost.title} + + + + {(function () { + const createdAtDate = new Date(matchingNewsPost.createdAt); + const formattedDate = createdAtDate + .toLocaleDateString("en-GB", { + day: "2-digit", + month: "2-digit", + year: "2-digit", + }) + .replace(/\//g, "-"); + return ( + + {formattedDate} + + ); + })()} + + + + + + + {matchingNewsPost.author_name} + {matchingNewsPost.author_designation} + + + + {/* ========[ Banner ]======= */} + + + + + + + + Share + + + + + + + + + + + + + + + + + + + + + {/* {matchingNewsPost.content} */} + + + + + ) : ( + + )} + + ); +}; + +export default NewsInternalPage; diff --git a/src/components/NewsPage/NewsContent.jsx b/src/components/NewsPage/NewsContent.jsx index 9ea6476..2e08ca3 100644 --- a/src/components/NewsPage/NewsContent.jsx +++ b/src/components/NewsPage/NewsContent.jsx @@ -100,9 +100,9 @@ const NewsContent = () => { const totalItems = data?.data?.totalItems; const totalPages = data?.data?.totalPages; - const newsCard = data?.data?.rows; + const newsCard = data?.data?.data?.rows; - console.log(data?.data?.totalPages); + console.log(data?.data?.data?.rows); if (!newsCard) { return ( @@ -144,7 +144,7 @@ const NewsContent = () => { > {newsCard?.map((content) => ( <> - + { return ( <> - + Newest Post { return ( - + Newest Post - - - - - - - News & Article - - - The Proofchain Technical Whitepaper - - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut et massa - mi. Aliquam in hendrerit urna. Pellentesque sit amet sapien - fringilla, mattis ligula consectetur, ultrices mauris. Maecenas - vitae,Aliquam in hendrerit urna. Pellentesque sit amet sapien - fringilla, mattis ligula consectetur, ultrices mauris. Maecenas - vitae,Aliquam in hendrerit urna. Pellentesque sit amet sapien - fringilla, mattis ligula consectetur, ultrices mauris. Maecenas - vitae - - - + {videoTab.map((item) => ( + + + + + + + + {item.badge} + + + {item.title} + + {item.descript} + + + + ))} + ); }; diff --git a/src/index.css b/src/index.css index 454e25f..a9854d5 100644 --- a/src/index.css +++ b/src/index.css @@ -177,7 +177,33 @@ span.swiper-pagination-bullet { border: none; } +.tabspagination .swiper-pagination { + top: 94% !important; +} + +.tabspagination .swiper-button-prev:after, +.swiper-button-next:after { + font-weight: bolder; + font-size: xx-large; +} + +.tabspagination .swiper-button-next { + left: 98%; +} + +.tabspagination .swiper-button-prev { + right: 98%; +} + @media only screen and (max-width: 600px) { + .tabspagination .swiper-button-prev, + .tabspagination .swiper-button-next { + display: none; + } + .tabspagination .swiper-pagination { + top: 98% !important; + } + .swiper-button-prev:after, .swiper-button-next:after { font-size: 30px; diff --git a/src/pages/Ecosystem.jsx b/src/pages/Ecosystem.jsx index c3cfd84..a213873 100644 --- a/src/pages/Ecosystem.jsx +++ b/src/pages/Ecosystem.jsx @@ -1,12 +1,14 @@ import EcoBanner from "../components/EcoPage/EcoBanner"; import EnterPrises from "../components/EcoPage/EnterPrises"; import LearnMore from "../components/Community/LearnMore"; +import LearnDev from "../components/LearnPage/LearnDev"; const Ecosystem = () => { return (
- + {/* */} +
); diff --git a/src/pages/NewsInternal.jsx b/src/pages/NewsInternal.jsx new file mode 100644 index 0000000..679c1c4 --- /dev/null +++ b/src/pages/NewsInternal.jsx @@ -0,0 +1,11 @@ +import NewsInternalPage from "../components/NewsInternal/NewsInternalPage"; + +const NewsInternal = () => { + return ( + <> + + + ); +}; + +export default NewsInternal; diff --git a/src/routes/_routes.jsx b/src/routes/_routes.jsx index 93916f4..8566cd8 100644 --- a/src/routes/_routes.jsx +++ b/src/routes/_routes.jsx @@ -20,12 +20,12 @@ import HomePage from "../pages/HomePage"; import LearnPage from "../pages/LearnPage"; import NotFound from "../pages/NotFound"; import UseCases from "../pages/UseCases"; -import fintech from "../assets/images/usecase-bg.png"; -import adTech from "../assets/images/addtech.jpg"; -import martech from "../assets/images/martech.png"; -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 fintech from "../assets/images/usecase-bg.png"; +// import adTech from "../assets/images/addtech.jpg"; +// import martech from "../assets/images/martech.png"; +// 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 ResourcesPage from "../pages/ResourcesPage"; import VideoInternal from "../components/VideoInternal/VideoInternal"; @@ -34,6 +34,7 @@ import Events from "../pages/Events"; import NewsPage from "../pages/NewsPage"; import EventsInternnal from "../pages/EventsInternnal"; import BlogPost from "../components/BlogPost/BlogPost"; +import NewsInternal from "../pages/NewsInternal"; export const route = [ { @@ -129,6 +130,10 @@ export const route = [ path: "/:title_slug", element: , }, + { + path: "news/:title_slug", + element: , + }, // { // path: "fin-tech",