diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 4ee082b..69e2e9e 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import About from "@/templates/About"; +import AboutPage from "@/types/cms/about"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("about", "en"); + + return ; } diff --git a/src/app/ar/about/page.tsx b/src/app/ar/about/page.tsx index c7abb10..c221c17 100644 --- a/src/app/ar/about/page.tsx +++ b/src/app/ar/about/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import About from "@/templates/About"; +import AboutPage from "@/types/cms/about"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("about", "ar"); + + return ; } diff --git a/src/app/ar/contact/page.tsx b/src/app/ar/contact/page.tsx index dcb32c6..7b90263 100644 --- a/src/app/ar/contact/page.tsx +++ b/src/app/ar/contact/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import ContactUs from "@/templates/ContactUs"; +import ContactPage from "@/types/cms/contact"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("contact", "ar"); + + return ; } diff --git a/src/app/ar/contacts/[country]/page.tsx b/src/app/ar/contacts/[country]/page.tsx index f8245c5..6ae258d 100644 --- a/src/app/ar/contacts/[country]/page.tsx +++ b/src/app/ar/contacts/[country]/page.tsx @@ -1,19 +1,21 @@ -import { AgentContacts, generateStaticParamsHelper} from "@/templates/AgentContacts"; +import {getData} from "@/cms"; +import {AgentContacts, generateStaticParamsHelper} from "@/templates/AgentContacts"; +import CountryManagerContactsPage from "@/types/cms/countryManagerContacts"; interface PageProps { - params: { - country: string; - }; + params: { + country: string; + }; } const language = "ar"; export async function generateStaticParams() { - return generateStaticParamsHelper(language); + return generateStaticParamsHelper(language); } -export default async function Page({ - params: { country }, -}: PageProps) { - return ; +export default async function Page({params: {country}}: PageProps) { + const {data} = await getData("country-managers-contact", language); + + return ; } diff --git a/src/app/ar/history/page.tsx b/src/app/ar/history/page.tsx index e0e671f..5fd0748 100644 --- a/src/app/ar/history/page.tsx +++ b/src/app/ar/history/page.tsx @@ -1,7 +1,9 @@ -import About from "@/templates/About"; -import ComingSoon from "@/templates/ComingSoon"; +import {getData} from "@/cms"; import History from "@/templates/History"; +import HistoryPage from "@/types/cms/history"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("history", "ar"); + + return ; } diff --git a/src/app/ar/page.tsx b/src/app/ar/page.tsx index 4b9766d..f890ef1 100644 --- a/src/app/ar/page.tsx +++ b/src/app/ar/page.tsx @@ -1,6 +1,10 @@ +import {getData} from "@/cms"; import Home from "@/templates/Home"; +import HomePage from "@/types/cms/home"; import {NextPageContext} from "next"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("home", "ar"); + + return ; } diff --git a/src/app/ar/price/page.tsx b/src/app/ar/price/page.tsx index 9e42ebf..6daf57d 100644 --- a/src/app/ar/price/page.tsx +++ b/src/app/ar/price/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import Price from "@/templates/Price"; +import PricePage from "@/types/cms/price"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("price", "ar"); + + return ; } diff --git a/src/app/ar/privacy-policy/page.tsx b/src/app/ar/privacy-policy/page.tsx index 1df681a..516d422 100644 --- a/src/app/ar/privacy-policy/page.tsx +++ b/src/app/ar/privacy-policy/page.tsx @@ -1,6 +1,10 @@ +import {getData} from "@/cms"; import Privacy from "@/templates/Privacy"; import Terms from "@/templates/Terms"; +import PrivacyPolicyPage from "@/types/cms/privacyPolicy"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("privacy-policy", "ar"); + + return ; } diff --git a/src/app/ar/services/page.tsx b/src/app/ar/services/page.tsx index dbce977..a14f366 100644 --- a/src/app/ar/services/page.tsx +++ b/src/app/ar/services/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import Services from "@/templates/Services"; +import ServicesPage from "@/types/cms/services"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("services", "ar"); + + return ; } diff --git a/src/app/ar/terms/page.tsx b/src/app/ar/terms/page.tsx index eea09ab..93c6aa6 100644 --- a/src/app/ar/terms/page.tsx +++ b/src/app/ar/terms/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import Terms from "@/templates/Terms"; +import TermsAndConditionsPage from "@/types/cms/termsConditions"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("terms-and-conditions", "ar"); + + return ; } diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index 94d974a..ec2747b 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import ContactUs from "@/templates/ContactUs"; +import ContactPage from "@/types/cms/contact"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("contact", "en"); + + return ; } diff --git a/src/app/contacts/[country]/page.tsx b/src/app/contacts/[country]/page.tsx index 0b9a072..0671c4c 100644 --- a/src/app/contacts/[country]/page.tsx +++ b/src/app/contacts/[country]/page.tsx @@ -1,26 +1,21 @@ -import { - AgentContacts, - generateStaticParamsHelper, -} from "@/templates/AgentContacts"; +import {getData} from "@/cms"; +import {AgentContacts, generateStaticParamsHelper} from "@/templates/AgentContacts"; +import CountryManagerContactsPage from "@/types/cms/countryManagerContacts"; interface PageProps { - params: { - country: string; - }; + params: { + country: string; + }; } const language = "en"; export async function generateStaticParams() { - return generateStaticParamsHelper(language); + return generateStaticParamsHelper(language); } -export default async function Page({ params: { country } }: PageProps) { - return ( - - ); +export default async function Page({params: {country}}: PageProps) { + const {data} = await getData("country-managers-contact", language); + + return ; } diff --git a/src/app/history/page.tsx b/src/app/history/page.tsx index 005b7b1..5e9b5d7 100644 --- a/src/app/history/page.tsx +++ b/src/app/history/page.tsx @@ -1,7 +1,9 @@ -import About from "@/templates/About"; -import ComingSoon from "@/templates/ComingSoon"; +import {getData} from "@/cms"; import History from "@/templates/History"; +import HistoryPage from "@/types/cms/history"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("history", "en"); + + return ; } diff --git a/src/app/page.tsx b/src/app/page.tsx index 37e4709..dcabf4a 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,5 +1,10 @@ +import {getData} from "@/cms"; import Home from "@/templates/Home"; +import HomePage from "@/types/cms/home"; +import {NextPageContext} from "next"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("home", "en"); + + return ; } diff --git a/src/app/price/page.tsx b/src/app/price/page.tsx index 8d0e1ba..212224a 100644 --- a/src/app/price/page.tsx +++ b/src/app/price/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import Price from "@/templates/Price"; +import PricePage from "@/types/cms/price"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("price", "en"); + + return ; } diff --git a/src/app/privacy-policy/page.tsx b/src/app/privacy-policy/page.tsx index 4c57a76..db7f97a 100644 --- a/src/app/privacy-policy/page.tsx +++ b/src/app/privacy-policy/page.tsx @@ -1,6 +1,10 @@ +import {getData} from "@/cms"; import Privacy from "@/templates/Privacy"; import Terms from "@/templates/Terms"; +import PrivacyPolicyPage from "@/types/cms/privacyPolicy"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("privacy-policy", "en"); + + return ; } diff --git a/src/app/services/page.tsx b/src/app/services/page.tsx index 784872e..7bcad84 100644 --- a/src/app/services/page.tsx +++ b/src/app/services/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import Services from "@/templates/Services"; +import ServicesPage from "@/types/cms/services"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("services", "en"); + + return ; } diff --git a/src/app/terms/page.tsx b/src/app/terms/page.tsx index e349626..858fda4 100644 --- a/src/app/terms/page.tsx +++ b/src/app/terms/page.tsx @@ -1,5 +1,9 @@ +import {getData} from "@/cms"; import Terms from "@/templates/Terms"; +import TermsAndConditionsPage from "@/types/cms/termsConditions"; -export default function Page() { - return ; +export default async function Page() { + const {data} = await getData("terms-and-conditions", "en"); + + return ; } diff --git a/src/components/Footer.tsx b/src/components/Footer/Footer.tsx similarity index 73% rename from src/components/Footer.tsx rename to src/components/Footer/Footer.tsx index 026b6d0..19b171f 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -3,12 +3,15 @@ import {BiLogoFacebook} from "react-icons/bi"; import {BsInstagram, BsTwitter} from "react-icons/bs"; import translation from "@/translation/footer.json"; import clsx from "clsx"; +import FooterSection from "@/types/cms/footer"; interface Props { language: "en" | "ar"; + data: FooterSection; } -interface FooterLinkProps extends Props { +interface FooterLinkProps { + language: "en" | "ar"; children: string; href: string; } @@ -17,7 +20,7 @@ const FooterLink = ({language, href, children}: FooterLinkProps) => { return {children}; }; -export default function Footer({language}: Props) { +export default function Footer({language, data}: Props) { return ( <>
@@ -27,54 +30,54 @@ export default function Footer({language}: Props) { language === "ar" ? "md:flex-row-reverse" : "md:flex-row", )}>
- {translation.navigation.text[language]} + {data.Navigation.Text}
- {translation.navigation.why_us[language]} + {data.Navigation.WhyUs} - {translation.navigation.capabilities[language]} + {data.Navigation.Capabilities} - {translation.navigation.expertise[language]} + {data.Navigation.Expertise} - {translation.navigation.history[language]} + {data.Navigation.History} - {translation.navigation.contact[language]} + {data.Navigation.Contact}
- {translation.services.text[language]} + {data.Services.Text}
- {translation.services.encoach_benefits[language]} + {data.Services.EnCoachBenefits} - {translation.services.student_testimonials[language]} + {data.Services.StudentTestimonials}
- {translation.about.text[language]} + {data.About.Text}
- {translation.about.terms[language]} + {data.About.Terms} - {translation.about.privacy_policy[language]} + {data.About.PrivacyPolicy} - {translation.about.text[language]} + {data.About.Text}
- {translation.get_in_touch.title[language]} + {data.GetInTouch.Title}
- {translation.get_in_touch.text[language]} + {data.GetInTouch.Text}
-
- © {translation.copyright[language]} -
+
© {data.Copyright}
); } diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx new file mode 100644 index 0000000..48c8273 --- /dev/null +++ b/src/components/Footer/index.tsx @@ -0,0 +1,13 @@ +import {getData} from "@/cms"; +import Footer from "./Footer"; +import FooterSection from "@/types/cms/footer"; + +interface Props { + language: "en" | "ar"; +} + +export default async function FooterContainer({language}: Props) { + const {data} = await getData("footer", language); + + return