window.open(settings.facebook)} >
+ onClick={() => window.open(settings.facebook)} >
diff --git a/package-lock.json b/package-lock.json
index 2761522..f1e2715 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "webfrontend",
"version": "0.1.0",
"dependencies": {
+ "@react-google-maps/api": "^2.19.3",
"animate.css": "^4.1.1",
"clsx": "^2.1.1",
"dotenv": "^16.4.5",
@@ -15,6 +16,7 @@
"framer-motion": "^11.7.0",
"gsap": "^3.12.5",
"keen-slider": "^6.8.6",
+ "mailgo": "^0.12.2",
"moment": "^2.30.1",
"next": "14.2.13",
"nextjs-cors": "^2.2.0",
@@ -137,6 +139,25 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/@googlemaps/js-api-loader": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.2.tgz",
+ "integrity": "sha512-psGw5u0QM6humao48Hn4lrChOM2/rA43ZCm3tKK9qQsEj1/VzqkCqnvGfEOshDbBQflydfaRovbKwZMF4AyqbA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "node_modules/@googlemaps/markerclusterer": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz",
+ "integrity": "sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "supercluster": "^8.0.1"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.13.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
@@ -494,6 +515,36 @@
"node": ">=14"
}
},
+ "node_modules/@react-google-maps/api": {
+ "version": "2.19.3",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.19.3.tgz",
+ "integrity": "sha512-jiLqvuOt5lOowkLeq7d077AByTyJp+s6hZVlLhlq7SBacBD37aUNpXBz2OsazfeR6Aw4a+9RRhAEjEFvrR1f5A==",
+ "license": "MIT",
+ "dependencies": {
+ "@googlemaps/js-api-loader": "1.16.2",
+ "@googlemaps/markerclusterer": "2.5.3",
+ "@react-google-maps/infobox": "2.19.2",
+ "@react-google-maps/marker-clusterer": "2.19.2",
+ "@types/google.maps": "3.55.2",
+ "invariant": "2.2.4"
+ },
+ "peerDependencies": {
+ "react": "^16.8 || ^17 || ^18",
+ "react-dom": "^16.8 || ^17 || ^18"
+ }
+ },
+ "node_modules/@react-google-maps/infobox": {
+ "version": "2.19.2",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.19.2.tgz",
+ "integrity": "sha512-6wvBqeJsQ/eFSvoxg+9VoncQvNoVCdmxzxRpLvmjPD+nNC6mHM0vJH1xSqaKijkMrfLJT0nfkTGpovrF896jwg==",
+ "license": "MIT"
+ },
+ "node_modules/@react-google-maps/marker-clusterer": {
+ "version": "2.19.2",
+ "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.19.2.tgz",
+ "integrity": "sha512-x9ibmsP0ZVqzyCo1Pitbw+4b6iEXRw/r1TCy3vOUR3eKrzWLnHYZMR325BkZW2r8fnuWE/V3Fp4QZOP9qYORCw==",
+ "license": "MIT"
+ },
"node_modules/@rtsao/scc": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
@@ -524,6 +575,12 @@
"tslib": "^2.4.0"
}
},
+ "node_modules/@types/google.maps": {
+ "version": "3.55.2",
+ "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.2.tgz",
+ "integrity": "sha512-JcTwzkxskR8DN/nnX96Pie3gGN3WHiPpuxzuQ9z3516o1bB243d8w8DHUJ8BohuzoT1o3HUFta2ns/mkZC8KRw==",
+ "license": "MIT"
+ },
"node_modules/@types/json5": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
@@ -2348,7 +2405,6 @@
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true,
"license": "MIT"
},
"node_modules/fast-glob": {
@@ -2929,6 +2985,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
"node_modules/is-arguments": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
@@ -3496,6 +3561,12 @@
"node": ">=4.0"
}
},
+ "node_modules/kdbush": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz",
+ "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
+ "license": "ISC"
+ },
"node_modules/keen-slider": {
"version": "6.8.6",
"resolved": "https://registry.npmjs.org/keen-slider/-/keen-slider-6.8.6.tgz",
@@ -3617,6 +3688,17 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/mailgo": {
+ "version": "0.12.2",
+ "resolved": "https://registry.npmjs.org/mailgo/-/mailgo-0.12.2.tgz",
+ "integrity": "sha512-iX4F3eOhPJ+12YlM51UNV8yTYwxHywaGP1C9Qaep/iNP2ZS+xzqHR7U3o+7HoCL19gZKysc7+MwgBEiRy8ogzA==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mailgo"
+ }
+ },
"node_modules/merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@@ -5214,6 +5296,15 @@
"node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/supercluster": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz",
+ "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+ "license": "ISC",
+ "dependencies": {
+ "kdbush": "^4.0.2"
+ }
+ },
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
diff --git a/package.json b/package.json
index 2fd555a..6ad3ed9 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"lint": "next lint"
},
"dependencies": {
+ "@react-google-maps/api": "^2.19.3",
"animate.css": "^4.1.1",
"clsx": "^2.1.1",
"dotenv": "^16.4.5",
@@ -16,6 +17,7 @@
"framer-motion": "^11.7.0",
"gsap": "^3.12.5",
"keen-slider": "^6.8.6",
+ "mailgo": "^0.12.2",
"moment": "^2.30.1",
"next": "14.2.13",
"nextjs-cors": "^2.2.0",
diff --git a/public/images/piano1.jpg b/public/images/piano1.jpg
new file mode 100644
index 0000000..aba73d2
Binary files /dev/null and b/public/images/piano1.jpg differ
diff --git a/public/images/smalllogo.png b/public/images/smalllogo.png
new file mode 100644
index 0000000..04fa867
Binary files /dev/null and b/public/images/smalllogo.png differ
diff --git a/types/index.ts b/types/index.ts
index 9e5fb53..0a574b5 100644
--- a/types/index.ts
+++ b/types/index.ts
@@ -17,6 +17,14 @@ export interface SettingsProps {
}
+export interface AboutusProps {
+ id: string;
+ title: string;
+ description: string
+ image: string;
+ index: number;
+}
+
export interface MessageProps {
name: string,
phone: string,
diff --git a/utils/index.ts b/utils/index.ts
index 1b47827..166146d 100644
--- a/utils/index.ts
+++ b/utils/index.ts
@@ -1,5 +1,5 @@
-import { CoursesProps, CoursesArrayProps, SettingsProps, MessageProps } from "@/types";
+import { CoursesProps, CoursesArrayProps, SettingsProps, MessageProps, AboutusProps } from "@/types";
@@ -37,6 +37,30 @@ export async function postMessage(data: MessageProps) {
}
}
+export async function fetchAboutus() {
+ const headers: HeadersInit = {
+ accept: "application/json"
+ };
+ const url = `${process.env.api_url}aboutUs`;
+ console.log('Fetching from URL:', url);
+ try {
+ const response = await fetch(url, { headers });
+ console.log('Response status:', response.status);
+ const result = await response.json();
+ console.log('Fetched data:', result);
+
+ // Sort the result by index
+ const sortedResult: AboutusProps[] = result.data.sort((a: any, b: any) => a.index - b.index);
+
+ return sortedResult;
+ }
+ catch (error) {
+ console.error('Fetch error:', error);
+ throw error;
+ }
+}
+
+
export async function fetchCourses() {
const headers: HeadersInit = {