Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Blog.jsx 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import React, { Children, Fragment, useEffect } from 'react';
  2. import CustomLink from '../components/root/CustomLink';
  3. import ActionCard from '../components/shared/ActionCard';
  4. import useDataApi from '../hooks/useDataApi';
  5. import Animation_Diligent from '../assets/animation_diligent.webm';
  6. import Wrapper from '../layout/Wrapper';
  7. import PageLayout from '../layout/PageLayout';
  8. import PageTitleOneFont from '../components/shared/PageTitleOneFont';
  9. import GradientWrapper from '../components/shared/GradientWrapper';
  10. import '../App.css';
  11. import useAnalytics from './../hooks/useAnalytics';
  12. import { strapiApiBuilder } from './../utils/strapiApiBuilder';
  13. import ReactHelmet from './../components/shared/ReactHelmet';
  14. import WorkClientForm from './../components/WorkClientForm';
  15. import { useState } from 'react';
  16. import PageTitle from './../components/shared/PageTitle';
  17. import BlogArticlesDataWrapper from '../components/shared/BlogArticlesDataWrapper';
  18. const api_url = process.env.REACT_APP_API_URL;
  19. const strapiPopulate = [
  20. 'Heading',
  21. 'SEO',
  22. 'SEO.metaSocial',
  23. 'SEO.metaImage',
  24. 'SEO.metaSocial.image',
  25. ];
  26. export default function Blog() {
  27. const [formSuccess, setFormSuccess] = useState(false);
  28. const strapi = strapiApiBuilder('blogpage', strapiPopulate, '');
  29. const [{ data, isLoading, isError }, doFetch] = useDataApi(strapi);
  30. useAnalytics('Blog');
  31. useEffect(() => {
  32. document.title = 'Blog';
  33. }, []);
  34. if (isLoading) {
  35. return (
  36. <div className="z-50 w-full h-screen bg-white dark:bg-dg-primary-1700 overflow-hidden dark:text-white flex items-center justify-center text-3xl font-semibold">
  37. <video id="animation" width="540" height="540" autoPlay muted loop>
  38. <source src={Animation_Diligent} type="video/webm" />
  39. Loading...
  40. </video>
  41. </div>
  42. );
  43. } else {
  44. return (
  45. <PageLayout>
  46. {data && data.SEO ? <ReactHelmet seo={data.SEO} /> : null}
  47. <div className="mt-[80px] md:mt-[180px]">
  48. <Wrapper padding={' py-[48px]'}>
  49. {data ? (
  50. <Fragment>
  51. <PageTitle
  52. heading={data.Heading.title}
  53. subheading={data.Heading.subtitle}
  54. left
  55. />
  56. </Fragment>
  57. ) : null}
  58. </Wrapper>
  59. <BlogArticlesDataWrapper />
  60. </div>
  61. </PageLayout>
  62. );
  63. }
  64. };