diff --git a/next.config.mjs b/next.config.mjs
index 3ef4061..1b16b88 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -3,8 +3,8 @@ const nextConfig = {
async redirects() {
return [
{
- source: '/hey',
- destination: '/',
+ source: '/monitoring',
+ destination: 'https://Pradumnasaraf.github.io/Monitoring',
permanent: true, // Permanent redirect (301)
},
];
diff --git a/src/app/camera/components/FullScreenModal.js b/src/app/camera/components/FullScreenModal.js
deleted file mode 100644
index 0f49540..0000000
--- a/src/app/camera/components/FullScreenModal.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from 'react';
-import { createPortal } from 'react-dom';
-import '../style.css';
-
-const FullScreenModal = ({ isOpen, imageSrc, onClose }) => {
- if (!isOpen) return null;
-
- return createPortal(
-
- {/* The close button positioned at the top-right corner of the viewport */}
-
-
-
,
- document.body
- );
-};
-
-export default FullScreenModal;
\ No newline at end of file
diff --git a/src/app/camera/components/MasonryGrid.js b/src/app/camera/components/MasonryGrid.js
deleted file mode 100644
index 7bd37f9..0000000
--- a/src/app/camera/components/MasonryGrid.js
+++ /dev/null
@@ -1,70 +0,0 @@
-'use client';
-import React, { useState } from 'react';
-import FullScreenModal from './FullScreenModal';
-import Masonry from 'react-masonry-css';
-import '../style.css';
-
-const MasonryGrid = ({ images }) => {
- const [isModalOpen, setIsModalOpen] = useState(false);
- const [modalImageSrc, setModalImageSrc] = useState('');
-
- const openModal = (src) => {
- setModalImageSrc(src);
- setIsModalOpen(true);
- };
-
- const closeModal = () => {
- setIsModalOpen(false);
- setModalImageSrc('');
- };
-
- const breakpointColumnsObj = {
- default: 3,
- 1100: 3,
- 700: 2,
- 500: 1
- };
-
- return (
- <>
-
- {images.map((image, index) => (
- openModal(image.src)}
- />
- ))}
-
-
-
- >
- );
-};
-
-// Component to handle individual image rendering with error handling
-const ImageItem = ({ src, alt, onClick }) => {
- const [hasError, setHasError] = useState(false);
-
- return !hasError ? (
- setHasError(true)}
- loading="lazy"
- />
- ) : null;
-};
-
-export default MasonryGrid;
\ No newline at end of file
diff --git a/src/app/camera/page.js b/src/app/camera/page.js
index 316b8b9..cc43411 100644
--- a/src/app/camera/page.js
+++ b/src/app/camera/page.js
@@ -1,7 +1,8 @@
'use client';
-import MasonryGrid from './components/MasonryGrid';
-import { useEffect } from 'react';
-
+import React, { useState, useEffect } from 'react';
+import Masonry from 'react-masonry-css';
+import { createPortal } from 'react-dom';
+import './style.css';
const images = [
{ src: 'https://drive.google.com/thumbnail?id=1uu0wWGmbHC0VY7BT-n5DUpWz86_ozANg&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1G8IYlbeJUKvghC8FIlEmtyVo6fg_YxqZ&sz=w2000', alt: 'photo' },
@@ -38,52 +39,132 @@ const images = [
{ src: 'https://drive.google.com/thumbnail?id=1ISysXMTEBkqwt3-wCN0jFRNATZTWKi26&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1bifEZJm_rIx_Xs4pORmfXCCIVFuMH_DY&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=11VG8uzX2vUMSRtEnHsDxDMT3fcletqsY&sz=w2000', alt: 'photo' },
- { src: 'https://drive.google.com/thumbnail?id=1JANNc-kNawn7jUGRs4MUZc9ib0wQ8JBP&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1YbOEXGJfIOXvRW6akB1HVmaIOOF2Jk1h&sz=w2000', alt: 'photo' },
- { src: 'https://drive.google.com/thumbnail?id=1b3CqP5Hn0xI2m6d2jH9_uWrfn3z8rkI0&sz=w2000', alt: 'photo' },
+ { src: 'https://drive.google.com/thumbnail?id=1JANNc-kNawn7jUGRs4MUZc9ib0wQ8JBP&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1ko_WLnJ2SNNEO13WkKmRhpvobDQ6Q_Ko&sz=w2000', alt: 'photo' },
+ { src: 'https://drive.google.com/thumbnail?id=1b3CqP5Hn0xI2m6d2jH9_uWrfn3z8rkI0&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1ruE0RqOwTPK0AR17ap4hwfGDgWboP52p&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1O83nNCKCUZ4McHO1nlZXvo1OKqzLldyw&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1MxtU3yWE8BkSi-1gessGGaTKGKzO8SO6&sz=w2000', alt: 'photo' },
- { src: 'https://drive.google.com/thumbnail?id=1FEQMnHybHi1TDvCHweOsB7ODeC06VjIs&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1nTQlYnaHPsy-kCrlV1bJocKgwlvqmyQc&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1K_Iteo-Rqrxi0ayMMAjOgsBSocg81Wmx&sz=w2000', alt: 'photo' },
- { src: 'https://drive.google.com/thumbnail?id=16ujZfroa5zjL09-UJWPyeRK0NUu1VkBi&sz=w2000', alt: 'photo' },
+ { src: 'https://drive.google.com/thumbnail?id=1FEQMnHybHi1TDvCHweOsB7ODeC06VjIs&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1P60hz5FIkEhoyxEJOtHCVprzm8sP4tt-&sz=w2000', alt: 'photo' },
- { src: 'https://drive.google.com/thumbnail?id=1-umcEA-0sefXkCVXtpEFxvVAWqtnw2y1&sz=w2000', alt: 'photo' },
- { src: 'https://drive.google.com/thumbnail?id=1sVamXny-K2Tfb_m_PGxQEdTiV99_r8q8&sz=w2000', alt: 'photo' },
{ src: 'https://drive.google.com/thumbnail?id=1dD4-Qrc2Hk4dCFQKcBB4GRbsvrcJOt0Q&sz=w2000', alt: 'photo' },
+ { src: 'https://drive.google.com/thumbnail?id=1sVamXny-K2Tfb_m_PGxQEdTiV99_r8q8&sz=w2000', alt: 'photo' },
+ { src: 'https://drive.google.com/thumbnail?id=16ujZfroa5zjL09-UJWPyeRK0NUu1VkBi&sz=w2000', alt: 'photo' },
+ { src: 'https://drive.google.com/thumbnail?id=1-umcEA-0sefXkCVXtpEFxvVAWqtnw2y1&sz=w2000', alt: 'photo' },
]
+// FullScreenModal Component
+const FullScreenModal = ({ isOpen, imageSrc, onClose }) => {
+ if (!isOpen) return null;
+
+ return createPortal(
+
+
+
+
,
+ document.body
+ );
+};
+
+// Main Home Component
export default function Home() {
+ const [isModalOpen, setIsModalOpen] = useState(false);
+ const [modalImageSrc, setModalImageSrc] = useState('');
+
+ const openModal = (src) => {
+ setModalImageSrc(src);
+ setIsModalOpen(true);
+ };
+
+ const closeModal = () => {
+ setIsModalOpen(false);
+ setModalImageSrc('');
+ };
+
+ const breakpointColumnsObj = {
+ default: 3,
+ 1100: 3,
+ 700: 2,
+ 500: 1
+ };
+
useEffect(() => {
- // Google Tag Manager Script
- const scriptGTM = document.createElement('script');
- scriptGTM.innerHTML = `
- (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 = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
- f.parentNode.insertBefore(j, f);
- })(window, document, 'script', 'dataLayer', 'GTM-WRGLMZCX');
- `;
- document.head.appendChild(scriptGTM);
- return () => {
- document.head.removeChild(scriptGTM);
- };
- }, []);
+ // Google Tag Manager Script
+ const scriptGTM = document.createElement('script');
+ scriptGTM.innerHTML = `
+ (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 = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
+ f.parentNode.insertBefore(j, f);
+ })(window, document, 'script', 'dataLayer', 'GTM-WRGLMZCX');
+ `;
+ document.head.appendChild(scriptGTM);
+ return () => {
+ document.head.removeChild(scriptGTM);
+ };
+ }, []);
+
return (
-
+
+ {images.map((image, index) => (
+ openModal(image.src)}
+ />
+ ))}
+
+
+
);
-}
\ No newline at end of file
+}
+
+// ImageItem Component
+const ImageItem = ({ src, alt, onClick }) => {
+ const [hasError, setHasError] = useState(false);
+
+ return !hasError ? (
+ setHasError(true)}
+ loading="lazy"
+ />
+ ) : null;
+};
\ No newline at end of file
diff --git a/src/app/services/page.js b/src/app/services/page.js
index 909b0d2..64f0158 100644
--- a/src/app/services/page.js
+++ b/src/app/services/page.js
@@ -2,7 +2,8 @@
import './style.css'
import Head from 'next/head';
import { useEffect } from 'react';
-import { FaTwitter, FaLinkedin, FaDev, FaGithub, FaEnvelope, FaSuitcase, FaFeather, FaMicrophone, FaTerminal, FaVideo, FaStackExchange } from 'react-icons/fa';
+import { FaTwitter, FaLinkedin, FaDev, FaGithub, FaEnvelope, FaSuitcase, FaFeather, FaMicrophone, FaTools, FaVideo, FaStackExchange } from 'react-icons/fa';
+import { BsPeopleFill } from "react-icons/bs";
import { TbArticle } from "react-icons/tb";
import Image from 'next/image';
@@ -169,14 +170,14 @@ const ServicesPage = () => {
-
+
Build Products
Building products, tools, apps, etc for companies according to their needs.
-
+
Community
Building community around products and companies to scale up the product feedback