Console errors are fixed

This commit is contained in:
akash 2025-11-03 17:30:49 +05:30
parent 97e20737b2
commit 5db57c9cdf
29 changed files with 193 additions and 251 deletions

View File

@ -11,8 +11,18 @@ const App = ({ Component, pageProps }) => {
return () => clearTimeout(timer); return () => clearTimeout(timer);
}, []); }, []);
// ✅ Add accessiBe script
useEffect(() => { useEffect(() => {
if (typeof window === "undefined") return;
const host = window.location.hostname;
const isLocal =
host === "localhost" ||
host === "127.0.0.1" ||
host.endsWith(".vercel.app") ||
host.endsWith(".netlify.app");
if (process.env.NODE_ENV !== "production" || isLocal) return;
const script = document.createElement("script"); const script = document.createElement("script");
script.src = "https://acsbapp.com/apps/app/dist/js/app.js"; script.src = "https://acsbapp.com/apps/app/dist/js/app.js";
script.async = true; script.async = true;
@ -21,9 +31,11 @@ const App = ({ Component, pageProps }) => {
window.acsbJS.init(); window.acsbJS.init();
} }
}; };
document.head.appendChild(script);
const h = document.querySelector("head") || document.body; return () => {
h.appendChild(script); script.remove();
};
}, []); }, []);
return ( return (

View File

@ -1,10 +1,26 @@
import { Html, Head, Main, NextScript } from 'next/document'; // pages/_document.js
import { Html, Head, Main, NextScript } from "next/document";
export default function Document() { export default function Document() {
return ( return (
<Html lang="en"> <Html lang="en">
<Head> <Head>
{/* ✅ Google Tag Manager (script) */} {/* ✅ CSS Styles */}
<link rel="icon" type="image/png" sizes="56x56" href="/assets/images/fav-icon/icon.webp" />
<link rel="stylesheet" href="/assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="/assets/css/animate.css" />
<link rel="stylesheet" href="/assets/css/animated-text.css" />
<link rel="stylesheet" href="/assets/css/all.min.css" />
<link rel="stylesheet" href="/assets/css/flaticon.css" />
<link rel="stylesheet" href="/assets/css/theme-default.css" />
<link rel="stylesheet" href="/assets/css/meanmenu.min.css" />
<link rel="stylesheet" href="/assets/css/owl.transitions.css" />
<link rel="stylesheet" href="/assets/css/bootstrap-icons.css" />
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="stylesheet" href="/assets/css/magnific-popup.css" />
<link rel="stylesheet" href="/assets/css/responsive.css" />
{/* ✅ Google Tag Manager */}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': __html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
@ -15,11 +31,8 @@ export default function Document() {
}} }}
/> />
{/* ✅ Google Analytics (gtag.js) */} {/* ✅ Google Analytics */}
<script <script async src="https://www.googletagmanager.com/gtag/js?id=G-1NXE8QSBC8"></script>
async
src="https://www.googletagmanager.com/gtag/js?id=G-1NXE8QSBC8"
></script>
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
@ -30,38 +43,30 @@ export default function Document() {
`, `,
}} }}
/> />
</Head> </Head>
<body>
{/* ✅ Google Tag Manager (noscript) */}
{/* <noscript>
<iframe
src="https://www.googletagmanager.com/ns.html?id=GTM-KWXS2ZM3"
height="0"
width="0"
style={{ display: 'none', visibility: 'hidden' }}
></iframe>
</noscript> */}
<body>
<Main /> <Main />
<NextScript /> <NextScript />
{/* ✅ accessiBe script */} {/* ✅ accessiBe (only load in production) */}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `
(function(){ if (window.location.hostname !== "localhost") {
var s = document.createElement('script'); (function(){
var h = document.querySelector('head') || document.body; var s = document.createElement('script');
s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; var h = document.querySelector('head') || document.body;
s.async = true; s.src = 'https://acsbapp.com/apps/app/dist/js/app.js';
s.onload = function(){ s.async = true;
if (typeof acsbJS !== 'undefined') { s.onload = function(){
acsbJS.init(); if (typeof acsbJS !== 'undefined') {
} acsbJS.init();
}; }
h.appendChild(s); };
})(); h.appendChild(s);
})();
}
`, `,
}} }}
/> />

View File

@ -79,7 +79,7 @@ const Accessiblity = ({ pageName }) => {
</h4> </h4>
<div className="feature-box-inner mt-4"> <div className="feature-box-inner mt-4">
<div className="feature-icon1 mb-5"> <div className="feature-icon1 mb-5">
<img src="https://i0.wp.com/metatroncubesolutions.com/wp-content/uploads/2024/04/accessibe.webp?w=500&ssl=1" alt /> <img src="https://i0.wp.com/metatroncubesolutions.com/wp-content/uploads/2024/04/accessibe.webp?w=500&ssl=1" alt="Accessibility Statement" />
</div> </div>
</div> </div>
@ -113,7 +113,7 @@ const Accessiblity = ({ pageName }) => {
<div className="why-choose-us-thumb"> <div className="why-choose-us-thumb">
<div className="why-choose-us-image"> <div className="why-choose-us-image">
<div className="why-choose-us-shape-thumb bounce-animate"> <div className="why-choose-us-shape-thumb bounce-animate">
<img src="/assets/images/elements/dot .webp" alt /> <img src="/assets/images/elements/dot .webp" alt="Metatron Cube Solutions India." />
</div> </div>
<div className="why-choose-us-shape-thumb3 bounce-animate2"> <div className="why-choose-us-shape-thumb3 bounce-animate2">
@ -322,7 +322,7 @@ const Accessiblity = ({ pageName }) => {
<div className="why-choose-us-thumb"> <div className="why-choose-us-thumb">
<div className="why-choose-us-image"> <div className="why-choose-us-image">
<div className="why-choose-us-shape-thumb bounce-animate"> <div className="why-choose-us-shape-thumb bounce-animate">
<img src="/assets/images/elements/element-3.webp" alt /> <img src="/assets/images/elements/element-3.webp" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</div> </div>
@ -338,7 +338,7 @@ const Accessiblity = ({ pageName }) => {
<div className="container"> <div className="container">
<div className="row"> <div className="row">
<div className="service-shape"> <div className="service-shape">
<img src="/assets/images/resource/all-shape3.png" alt /> <img src="/assets/images/resource/all-shape3.png" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</div> </div>

View File

@ -27,7 +27,7 @@ const Contact = () => {
}; };
const handleCaptchaChange = (token) => { const handleCaptchaChange = (token) => {
console.log("✅ Captcha token:", token); // console.log("✅ Captcha token:", token);
setCaptchaToken(token); setCaptchaToken(token);
}; };

View File

@ -481,7 +481,7 @@ const Faq = () => {
</h2> </h2>
<div className="btn-common btn-cda mt-40"> <div className="btn-common btn-cda mt-40">
<Link legacyBehavior href="https://calendly.com/metatroncubeswsolutions/request-consultation?month=2025-05"> <Link legacyBehavior href="https://calendly.com/metatroncubeswsolutions/request-consultation?month=2025-05">
<a>Schedule Consultation</a> <a target='_blank'>Schedule Consultation</a>
</Link> </Link>
</div> </div>
</div> </div>

View File

@ -1,19 +1,17 @@
import Portfolios from "@/src/components/services-details-banner/portfoliobanner"; // pages/portfolio.js
import Layout from "@/src/layout/Layout"; import Layout from "@/src/layout/Layout";
import dynamic from "next/dynamic"; import dynamic from "next/dynamic";
import Portfolios from "@/src/components/services-details-banner/portfoliobanner";
const CaseStudies = dynamic( const CaseStudies = dynamic(
() => import("@/src/components/isotope/CaseStudies"), () => import("@/src/components/isotope/CaseStudies"),
{ { ssr: false }
ssr: false,
}
); );
const Portfolio = () => {
export default function Portfolio() {
return ( return (
<Layout> <Layout>
<Portfolios pageName={"PORTFOLIO"} /> <Portfolios pageName="PORTFOLIO" />
{/*==================================================*/}
{/* Start consen case study Area */}
{/*==================================================*/}
<div className="case-study-area style-three"> <div className="case-study-area style-three">
<div className="container"> <div className="container">
<CaseStudies /> <CaseStudies />
@ -21,5 +19,4 @@ const Portfolio = () => {
</div> </div>
</Layout> </Layout>
); );
}; }
export default Portfolio;

View File

@ -221,7 +221,7 @@ const Policy = ({ pageName }) => {
<div className="consen-section-titl "> <div className="consen-section-titl ">
<div className="consen-section-titl"> <div className="consen-section-titl">
<h4>Legal Basis for Processing Personal Data:</h4> <h4>Legal Basis for Processing Personal Data:</h4>
<p className=""> <p>
{" "} {" "}
We process your personal data in accordance with the law, such as: We process your personal data in accordance with the law, such as:
</p> </p>
@ -268,7 +268,7 @@ const Policy = ({ pageName }) => {
<div className="container"> <div className="container">
<div className="row"> <div className="row">
<div className="service-shape"> <div className="service-shape">
<img src="assets/images/resource/all-shape3.png" alt /> <img src="assets/images/resource/all-shape3.png" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</div> </div>

View File

@ -244,7 +244,7 @@ const ApplicationDevelopment = () => {
<div className="col-lg-6 col-sm-6"> <div className="col-lg-6 col-sm-6">
<div className="service-details-box overlap-card change-bg"> <div className="service-details-box overlap-card change-bg">
<div className="service-details-icon overlap-icon"> <div className="service-details-icon overlap-icon">
<img src="/assets/images/service-details/icon-6S/4.webp" alr="iOS development craftsmanship"></img> <img src="/assets/images/service-details/icon-6S/4.webp" alt="iOS development craftsmanship"></img>
</div> </div>
<div> <div>
<div className="service-details-title"> <div className="service-details-title">

View File

@ -366,7 +366,7 @@ const WebDevelopment = () => {
</div> </div>
</div> </div>
<div class="service-page-title2 portfolio"><h1 className="pb-0"><span className="meta"> Our</span> Portfolio:</h1></div> <div className="service-page-title2 portfolio"><h1 className="pb-0"><span className="meta"> Our</span> Portfolio:</h1></div>
<div className="row"> <div className="row">

View File

@ -194,7 +194,7 @@ const ApplicationDevelopment = () => {
<div className="col-lg-6 col-sm-6"> <div className="col-lg-6 col-sm-6">
<div className="service-details-box overlap-card change-bg"> <div className="service-details-box overlap-card change-bg">
<div className="service-details-icon overlap-icon"> <div className="service-details-icon overlap-icon">
<img src="/assets/images/service-details/icon-6S/4.webp" alr="iOS development craftsmanship"></img> <img src="/assets/images/service-details/icon-6S/4.webp" alt="iOS development craftsmanship"></img>
</div> </div>
<div> <div>
<div className="service-details-title"> <div className="service-details-title">

View File

@ -200,7 +200,7 @@ const WebDevelopment = () => {
</div> </div>
</div> </div>
<div class="service-page-title2 portfolio"><h1 className="pb-0"><span className="meta">Our </span> Portfolio:</h1></div> <div className="service-page-title2 portfolio"><h1 className="pb-0"><span className="meta">Our </span> Portfolio:</h1></div>
<div className="row"> <div className="row">

View File

@ -450,7 +450,7 @@ const WebDevelopment = () => {
</div> </div>
</div> </div>
<div class="service-page-title2 portfolio"><h1 className="pb-0"><span className="meta"> Our</span> Portfolio:</h1></div> <div className="service-page-title2 portfolio"><h1 className="pb-0"><span className="meta"> Our</span> Portfolio:</h1></div>
<div className="row"> <div className="row">

View File

@ -180,7 +180,7 @@ const services = () => {
<img src="/assets/images/services/service-img/our-services.webp" alt="Crafting tailored digital solutions for every need" /> <img src="/assets/images/services/service-img/our-services.webp" alt="Crafting tailored digital solutions for every need" />
{/* about-shape */} {/* about-shape */}
<div className="about-shape-thumb1 bounce-animate2"> <div className="about-shape-thumb1 bounce-animate2">
<img src="/assets/images/about/about-shpe.png" alt /> <img src="/assets/images/about/about-shpe.png" alt="Metatron Cube Solutions India." />
</div> </div>
{/* <div className="about-shape-thumb3 bounce-animate4"> {/* <div className="about-shape-thumb3 bounce-animate4">
<img src="assets/images/services/1 .webp" alt /> <img src="assets/images/services/1 .webp" alt />
@ -463,16 +463,16 @@ const services = () => {
{/* choose shape thumb */} {/* choose shape thumb */}
<div className="why-choose-us-image"> <div className="why-choose-us-image">
<div className="why-choose-us-shape-thumb bounce-animate"> <div className="why-choose-us-shape-thumb bounce-animate">
<img src="/assets/images/elements/element-3.webp" alt /> <img src="/assets/images/elements/element-3.webp" alt="Metatron Cube Solutions India." />
</div> </div>
<div className="why-choose-us-shape-thumb2 rotateme"> <div className="why-choose-us-shape-thumb2 rotateme">
<img src="/assets/images/services/get-to-know/get-to-know-1.webp" alt="Get to know us more" /> <img src="/assets/images/services/get-to-know/get-to-know-1.webp" alt="Get to know us more" />
</div> </div>
<div className="why-choose-us-shape-thumb3 bounce-animate2"> <div className="why-choose-us-shape-thumb3 bounce-animate2">
<img src="/assets/images/elements/element-1.webp" alt /> <img src="/assets/images/elements/element-1.webp" alt="Metatron Cube Solutions India." />
</div> </div>
<div className="why-choose-us-shape-thumb4"> <div className="why-choose-us-shape-thumb4">
<img src="/assets/images/elements/element-2 .webp" alt /> <img src="/assets/images/elements/element-2 .webp" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,131 +1,27 @@
import Head from "next/head"; import Head from "next/head";
const ConsenHead = ({ title, description }) => { const ConsenHead = ({ title, description }) => {
const defaultTitle = "Metatroncube: Leaders in Web &amp; Mobile Dev, SEO, Digital Marketing"; const defaultTitle = "Metatroncube: Leaders in Web & Mobile Dev, SEO, Digital Marketing";
const defaultDescription = const defaultDescription =
"Metatroncube Software Solutions: Your go-to agency for cutting-edge web &amp; app development, SEO, digital marketing, and graphic design services"; "Metatroncube Software Solutions: Your go-to agency for cutting-edge web & app development, SEO, digital marketing, and graphic design services";
console.log("title", title) // console.log("title", title)
// console.log("description", description)
return ( return (
<Head> <Head>
{/* Google Tag Manager */} {/* Google Tag Manager */}
{/* <script dangerouslySetInnerHTML={{ __html: ` (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': {/* <script dangerouslySetInnerHTML={{ __html: ` (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-N29NTKG9');`, }}/> */} })(window,document,'script','dataLayer','GTM-N29NTKG9');`, }}/> */}
{/* End Google Tag Manager */} {/* End Google Tag Manager */}
<meta charSet="UTF-8" /> <meta charSet="UTF-8" />
<meta httpEquiv="x-ua-compatible" content="ie=edge" /> <meta httpEquiv="x-ua-compatible" content="ie=edge" />
<title>{title || defaultTitle}</title> <title>{title || defaultTitle}</title>
<meta name="description" content={description || defaultDescription} /> <meta name="description" content={description || defaultDescription} />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
{/* Favicon */}
<link
rel="icon"
type="image/png"
sizes="56x56"
href="/assets/images/fav-icon/icon.webp"
/>
{/* bootstrap CSS */}
<link
rel="stylesheet"
href="/assets/css/bootstrap.min.css"
type="text/css"
media="all"
/>
{/* carousel CSS */}
{/* <link
rel="stylesheet"
href="assets/css/owl.carousel.min.css"
type="text/css"
media="all"
/> */}
{/* animate CSS */}
<link
rel="stylesheet"
href="/assets/css/animate.css"
type="text/css"
media="all"
/>
{/* animated-text CSS */}
<link
rel="stylesheet"
href="/assets/css/animated-text.css"
type="text/css"
media="all"
/>
{/* font-awesome CSS */}
<link
rel="stylesheet"
href="/assets/css/all.min.css"
type="text/css"
media="all"
/>
{/* font-flaticon CSS */}
<link
rel="stylesheet"
href="/assets/css/flaticon.css"
type="text/css"
media="all"
/>
{/* theme-default CSS */}
<link
rel="stylesheet"
href="/assets/css/theme-default.css"
type="text/css"
media="all"
/>
{/* meanmenu CSS */}
<link
rel="stylesheet"
href="/assets/css/meanmenu.min.css"
type="text/css"
media="all"
/>
{/* transitions CSS */}
<link
rel="stylesheet"
href="/assets/css/owl.transitions.css"
type="text/css"
media="all"
/>
{/* venobox CSS */}
<link
rel="stylesheet"
href="/venobox/venobox.css"
type="text/css"
media="all"
/>
{/* bootstrap icons */}
<link
rel="stylesheet"
href="/assets/css/bootstrap-icons.css"
type="text/css"
media="all"
/>
{/* Main Style CSS */}
<link
rel="stylesheet"
href="/assets/css/style.css"
type="text/css"
media="all"
/>
{/* Main Style CSS */}
<link
rel="stylesheet"
href="/assets/css/magnific-popup.css"
type="text/css"
media="all"
/>
{/* responsive CSS */}
<link
rel="stylesheet"
href="/assets/css/responsive.css"
type="text/css"
media="all"
/>
</Head> </Head>
); );
}; };

View File

@ -42,7 +42,7 @@ const SubCard = () => {
<div className="cda-single-content hr d-flex justify-content-center"> <div className="cda-single-content hr d-flex justify-content-center">
<div className="cda-icon"> <div className="cda-icon">
{/* <i className="fas fa-envelope" /> */} {/* <i className="fas fa-envelope" /> */}
<i class="fas fa-calendar-alt"></i> <i className="fas fa-calendar-alt"></i>
</div> </div>
<div className="cda-content-inner"> <div className="cda-content-inner">
<p>Mon - Sat: 8 AM to 6 PM</p> <p>Mon - Sat: 8 AM to 6 PM</p>

View File

@ -91,7 +91,7 @@ const BrandSlider = () => {
// </Swiper> // </Swiper>
<div className="brand-section new-style"> <div className="brand-section new-style">
<div className="container"> <div className="container">
<div class="row mb-50 justify-content-center" style={{ backgroundImage: "url(../images/resource/process-bg2.jpg)" }}> <div className="row mb-50 justify-content-center">
<a href="https://www.slicktext.com/?ref=e60a0c2090b27b3a1e975c8f89c4c17d" target="_blank"><img src="/assets/images/home/slicktext.png" alt="" loading="lazy" /></a> <a href="https://www.slicktext.com/?ref=e60a0c2090b27b3a1e975c8f89c4c17d" target="_blank"><img src="/assets/images/home/slicktext.png" alt="" loading="lazy" /></a>
</div> </div>
<div className="row"> <div className="row">

View File

@ -20,13 +20,14 @@ const AboutSection = () => {
<p className="about-text2 pt-3"> <p className="about-text2 pt-3">
{" "} {" "}
At Metatron Cube India, we are more than a web development company - we are a complete digital partner. Our services span website development, mobile application development, SEO services, digital marketing, UI/UX design, and graphic design solutions. With a focus on custom website development and professional mobile app solutions, we help businesses achieve long-term digital success. At Metatron Cube India, we are more than a web development company - we are a complete digital partner. Our services span website development, mobile application development, SEO services, digital marketing, UI/UX design, and graphic design solutions. With a focus on custom website development and professional mobile app solutions, we help businesses achieve long-term digital success.
<p className="about-text2 pt-3">
{" "} </p>
<p className="about-text2 pt-3">
{" "}
Our technical expertise covers AngularJS, ReactJS, HTML5, Node.js, PHP, and frameworks for native Android app development, iOS app development, and cross-platform app development using Flutter. Backed by strong SEO strategies, content writing, and online marketing campaigns, we ensure your brand not only looks exceptional but also ranks high and delivers Our technical expertise covers AngularJS, ReactJS, HTML5, Node.js, PHP, and frameworks for native Android app development, iOS app development, and cross-platform app development using Flutter. Backed by strong SEO strategies, content writing, and online marketing campaigns, we ensure your brand not only looks exceptional but also ranks high and delivers
</p>
</p> </p>
</div> </div>
<div class="row"> <div className="row">
<div className="col-lg-12"> <div className="col-lg-12">
{/* <div className="about-icon-box border-non"> {/* <div className="about-icon-box border-non">

View File

@ -22,10 +22,10 @@ const Banner = () => {
</div> </div>
<div className="col-lg-5 col-md-6 "> <div className="col-lg-5 col-md-6 ">
<div className="banner-year-thumb rotateme"> <div className="banner-year-thumb rotateme">
<img src="/assets/images/home/banner/since .webp" alt /> <img src="/assets/images/home/banner/since .webp" alt="Metatron Cube Solutions India Banner." />
</div> </div>
<div className="banner-thumb"> <div className="banner-thumb">
<img src="/assets/images/home/front/1.webp" alt /> <img src="/assets/images/home/front/1.webp" alt="Metatron Cube Solutions India Front Image." />
</div> </div>
</div> </div>
</div> </div>
@ -51,10 +51,10 @@ const Banner = () => {
</div> </div>
<div className="col-lg-5 col-md-6 "> <div className="col-lg-5 col-md-6 ">
<div className="banner-year-thumb rotateme"> <div className="banner-year-thumb rotateme">
<img src="/assets/images/home/banner/since .webp" alt /> <img src="/assets/images/home/banner/since .webp" alt="Metatron Cube Solutions India Banner." />
</div> </div>
<div className="banner-thumb"> <div className="banner-thumb">
<img src="/assets/images/home/front/3.webp" alt /> <img src="/assets/images/home/front/3.webp" alt="Metatron Cube Solutions India Front." />
</div> </div>
</div> </div>
</div> </div>
@ -80,10 +80,10 @@ const Banner = () => {
</div> </div>
<div className="col-lg-5 col-md-6 "> <div className="col-lg-5 col-md-6 ">
<div className="banner-year-thumb rotateme"> <div className="banner-year-thumb rotateme">
<img src="/assets/images/home/banner/since .webp" alt /> <img src="/assets/images/home/banner/since .webp" alt="Metatron Cube Solutions India Banner." />
</div> </div>
<div className="banner-thumb"> <div className="banner-thumb">
<img src="/assets/images/home/front/5.webp" alt /> <img src="/assets/images/home/front/5.webp" alt="Metatron Cube Solutions India Front." />
</div> </div>
</div> </div>
</div> </div>
@ -109,10 +109,10 @@ const Banner = () => {
</div> </div>
<div className="col-lg-5 col-md-6 "> <div className="col-lg-5 col-md-6 ">
<div className="banner-year-thumb rotateme"> <div className="banner-year-thumb rotateme">
<img src="/assets/images/home/banner/since .webp" alt /> <img src="/assets/images/home/banner/since .webp" alt="Metatron Cube Solutions India Banner." />
</div> </div>
<div className="banner-thumb"> <div className="banner-thumb">
<img src="/assets/images/home/front/4.webp" alt /> <img src="/assets/images/home/front/4.webp" alt="Metatron Cube Solutions India Front." />
</div> </div>
</div> </div>
</div> </div>

View File

@ -22,10 +22,10 @@ const Cards = ()=>{
<div className="case-study-shape"> <div className="case-study-shape">
<div className="case-shape-thumb bounce-animate4"> <div className="case-shape-thumb bounce-animate4">
<img src="/assets/images/elements/element-3.webp" alt /> <img src="/assets/images/elements/element-3.webp" alt="Metatron Cube Solutions India." />
</div> </div>
<div className="case-shape-thumb1 bounce-animate2"> <div className="case-shape-thumb1 bounce-animate2">
<img src="/assets/images/cards/4 .webp" alt /> <img src="/assets/images/cards/4 .webp" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</div> </div>

View File

@ -57,7 +57,7 @@ const CounterSection = ()=>{
{/* process shape */} {/* process shape */}
<div className="process-shape"> <div className="process-shape">
<div className="service-shape"> <div className="service-shape">
<img src="/assets/images/elements/right-top-element .webp" alt /> <img src="/assets/images/elements/right-top-element .webp" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>

View File

@ -200,7 +200,7 @@ const ServicesSection = () => {
</div> </div>
</div> */} </div> */}
<div className="service-shape"> <div className="service-shape">
<img src="/assets/images/elements/right-top-element .webp" alt /> <img src="/assets/images/elements/right-top-element .webp" alt="Metatron Cube Solutions India." />
</div> </div>
{/* <div className="service-shape1 bounce-animate2"> {/* <div className="service-shape1 bounce-animate2">
<img src="assets/images/resource/all-shape6.png" alt /> <img src="assets/images/resource/all-shape6.png" alt />

View File

@ -98,7 +98,7 @@ const TestimonialSection = () => {
<div className="row"> <div className="row">
<div className="col-lg-12"> <div className="col-lg-12">
<div className="testimonial-icon-thumb"> <div className="testimonial-icon-thumb">
<img src="/assets/images/elements/quotation.webp" alt /> <img src="/assets/images/elements/quotation.webp" alt="Metatron Cube Solutions India." />
</div> </div>
<Swiper {...testimonial_list_slider} className="testimonial_list"> <Swiper {...testimonial_list_slider} className="testimonial_list">

View File

@ -24,7 +24,7 @@ const HomeContact = () => {
}; };
const handleCaptchaChange = (token) => { const handleCaptchaChange = (token) => {
console.log("✅ Captcha token:", token); // console.log("✅ Captcha token:", token);
setCaptchaToken(token); setCaptchaToken(token);
}; };

View File

@ -6,56 +6,56 @@ const LogoSlider = () => {
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/allian.png" alt /> <img src="assets/images/resource/allian.png" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/figma.png" alt /> <img src="assets/images/resource/figma.png" alt="Figma" />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/google.png" alt /> <img src="assets/images/resource/google.png" alt="Google" />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/redit.png" alt /> <img src="assets/images/resource/redit.png" alt="redit" />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/allian.png" alt /> <img src="assets/images/resource/allian.png" alt="Metatron Cube Solutions India." />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/figma.png" alt /> <img src="assets/images/resource/figma.png" alt="figma" />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/google.png" alt /> <img src="assets/images/resource/google.png" alt="Google" />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>
<SwiperSlide> <SwiperSlide>
<div className="brand-single-box"> <div className="brand-single-box">
<div className="brand-thumb"> <div className="brand-thumb">
<img src="assets/images/resource/redit.png" alt /> <img src="assets/images/resource/redit.png" alt="redit" />
</div> </div>
</div> </div>
</SwiperSlide> </SwiperSlide>

View File

@ -1,4 +1,7 @@
"use client";
import { Fragment, useEffect } from "react"; import { Fragment, useEffect } from "react";
import dynamic from "next/dynamic";
import ImageView from "../components/ImageView"; import ImageView from "../components/ImageView";
import VideoPopup from "../components/VideoPopup"; import VideoPopup from "../components/VideoPopup";
import { animation, stickyNav } from "../utils"; import { animation, stickyNav } from "../utils";
@ -6,10 +9,14 @@ import Footer from "./footer/Footer";
import Header from "./header/Header"; import Header from "./header/Header";
import MobileMenu from "./header/MobileMenu"; import MobileMenu from "./header/MobileMenu";
import ScrollTop from "./ScrollTop"; import ScrollTop from "./ScrollTop";
const WOW = dynamic(() => import("wowjs"), { ssr: false });
const Layout = ({ children, header, footer }) => { const Layout = ({ children, header, footer }) => {
useEffect(() => { useEffect(() => {
animation(); if (typeof window !== "undefined") {
stickyNav(); animation();
stickyNav();
}
}, []); }, []);
return ( return (

View File

@ -42,7 +42,7 @@ const DefaultFooter = () => {
</a> </a>
<a className="social-icon-color1" href="https://www.youtube.com/@metatron_digitalagency" target="_blank"> <a className="social-icon-color1" href="https://www.youtube.com/@metatron_digitalagency" target="_blank">
{" "} {" "}
<i class="fab fa-youtube"></i> <i className="fab fa-youtube"></i>
</a> </a>
</div> </div>
</div> </div>
@ -121,33 +121,33 @@ const DefaultFooter = () => {
</div> */} </div> */}
<div class="col-lg-3 col-sm-6"> <div className="col-lg-3 col-sm-6">
<div id="em-recent-post-widget" class="mt-5 mt-sm-0"> <div id="em-recent-post-widget" className="mt-5 mt-sm-0">
<div class="single-widget-item"> <div className="single-widget-item">
<h4 class="widget-title pb-2">Newsletter</h4> <h4 className="widget-title pb-2">Newsletter</h4>
<div class="contact-form-footer pt-0"> <div className="contact-form-footer pt-0">
<form action="#" method="post"> <form action="#" method="post">
<div class="subscribe_form d-flex"> <div className="subscribe_form d-flex">
<input <input
type="email" type="email"
name="email" name="email"
id="email" id="email"
class="form-control" className="form-control"
data-error="Please enter your email" data-error="Please enter your email"
placeholder="Enter E-Mail" placeholder="Enter E-Mail"
required required
/> />
<button type="submit" class="btn ms-2"> <button type="submit" className="btn ms-2">
<i class="bi bi-send-check"></i> <i className="bi bi-send-check"></i>
</button> </button>
</div> </div>
<div class="subscribe_form_send"></div> <div className="subscribe_form_send"></div>
</form> </form>
</div> </div>
<div class="recent-post-item"> <div className="recent-post-item">
<div class="recent-post-thumb1"> <div className="recent-post-thumb1">
<a className="my-white" href="/contact"> <a className="my-white" href="/contact">
Subscribe our newsletter to get our latest update & news Subscribe our newsletter to get our latest update & news
</a> </a>

View File

@ -42,7 +42,7 @@ const Footer1 = () => {
</a> </a>
<a className="social-icon-color1" href="https://www.youtube.com/@metatron_digitalagency" target="_blank"> <a className="social-icon-color1" href="https://www.youtube.com/@metatron_digitalagency" target="_blank">
{" "} {" "}
<i class="fab fa-youtube"></i> <i className="fab fa-youtube"></i>
</a> </a>
</div> </div>
</div> </div>
@ -122,33 +122,33 @@ const Footer1 = () => {
<div class="col-lg-3 col-sm-6"> <div className="col-lg-3 col-sm-6">
<div id="em-recent-post-widget" class="mt-5 mt-sm-0"> <div id="em-recent-post-widget" className="mt-5 mt-sm-0">
<div class="single-widget-item"> <div className="single-widget-item">
<h4 class="widget-title pb-2">Newsletter</h4> <h4 className="widget-title pb-2">Newsletter</h4>
<div class="contact-form-footer pt-0"> <div className="contact-form-footer pt-0">
<form action="#" method="post"> <form action="#" method="post">
<div class="subscribe_form d-flex"> <div className="subscribe_form d-flex">
<input <input
type="email" type="email"
name="email" name="email"
id="email" id="email"
class="form-control" className="form-control"
data-error="Please enter your email" data-error="Please enter your email"
placeholder="Enter E-Mail" placeholder="Enter E-Mail"
required required
/> />
<button type="submit" class="btn ms-2"> <button type="submit" className="btn ms-2">
<i class="bi bi-send-check"></i> <i className="bi bi-send-check"></i>
</button> </button>
</div> </div>
<div class="subscribe_form_send"></div> <div className="subscribe_form_send"></div>
</form> </form>
</div> </div>
<div class="recent-post-item"> <div className="recent-post-item">
<div class="recent-post-thumb1"> <div className="recent-post-thumb1">
<a className="my-white" href="/contact"> <a className="my-white" href="/contact">
Subscribe our newsletter to get our latest update & news Subscribe our newsletter to get our latest update & news
</a> </a>

View File

@ -42,7 +42,7 @@ const Footer3 = () => {
</a> </a>
<a className="social-icon-color1" href="https://www.youtube.com/@metatron_digitalagency" target="_blank"> <a className="social-icon-color1" href="https://www.youtube.com/@metatron_digitalagency" target="_blank">
{" "} {" "}
<i class="fab fa-youtube"></i> <i className="fab fa-youtube"></i>
</a> </a>
</div> </div>
</div> </div>
@ -121,33 +121,33 @@ const Footer3 = () => {
</div> */} </div> */}
<div class="col-lg-3 col-sm-6"> <div className="col-lg-3 col-sm-6">
<div id="em-recent-post-widget" class="mt-5 mt-sm-0"> <div id="em-recent-post-widget" className="mt-5 mt-sm-0">
<div class="single-widget-item"> <div className="single-widget-item">
<h4 class="widget-title pb-2">Newsletter</h4> <h4 className="widget-title pb-2">Newsletter</h4>
<div class="contact-form-footer pt-0"> <div className="contact-form-footer pt-0">
<form action="#" method="post"> <form action="#" method="post">
<div class="subscribe_form d-flex"> <div className="subscribe_form d-flex">
<input <input
type="email" type="email"
name="email" name="email"
id="email" id="email"
class="form-control" className="form-control"
data-error="Please enter your email" data-error="Please enter your email"
placeholder="Enter E-Mail" placeholder="Enter E-Mail"
required required
/> />
<button type="submit" class="btn ms-2"> <button type="submit" className="btn ms-2">
<i class="bi bi-send-check"></i> <i className="bi bi-send-check"></i>
</button> </button>
</div> </div>
<div class="subscribe_form_send"></div> <div className="subscribe_form_send"></div>
</form> </form>
</div> </div>
<div class="recent-post-item"> <div className="recent-post-item">
<div class="recent-post-thumb1"> <div className="recent-post-thumb1">
<a className="my-white" href="/contact"> <a className="my-white" href="/contact">
Subscribe our newsletter to get our latest update & news Subscribe our newsletter to get our latest update & news
</a> </a>

View File

@ -1,9 +1,33 @@
export const animation = () => { export const animation = () => {
if (typeof window !== "undefined") { if (typeof window === "undefined") return;
window.WOW = require("wowjs");
try {
const WOW = require("wowjs");
const wow = new WOW.WOW({
live: false,
});
wow.init();
if ("MutationObserver" in window) {
const observer = new MutationObserver(() => {
wow.sync();
});
observer.observe(document.body, {
childList: true,
subtree: true,
});
window.addEventListener("beforeunload", () => observer.disconnect());
} else {
setInterval(() => wow.sync(), 2000);
}
} catch (err) {
console.warn("WOW.js initialization failed:", err);
} }
new WOW.WOW().init();
}; };
// Sticky nav // Sticky nav
export const stickyNav = () => { export const stickyNav = () => {
window.addEventListener("scroll", () => { window.addEventListener("scroll", () => {
@ -144,7 +168,7 @@ export const calender = () => {
} }
if (i == rightbox) { if (i == rightbox) {
console.log(document.querySelectorAll(".all-date ul li")[rightbox]); // console.log(document.querySelectorAll(".all-date ul li")[rightbox]);
document document
.querySelectorAll(".all-date ul li") .querySelectorAll(".all-date ul li")
[rightbox].classList.add("b-right"); [rightbox].classList.add("b-right");