fix
parent
a46f5796d7
commit
cb96f5583a
|
@ -0,0 +1,281 @@
|
||||||
|
"use client"
|
||||||
|
|
||||||
|
import { Mailbox } from 'lucide-react'
|
||||||
|
import { Clock, Facebook, Globe, Instagram, Linkedin, Mail, MapPin, Phone, Send, Twitter } from 'lucide-react'
|
||||||
|
import { useLocale, useTranslations } from 'next-intl'
|
||||||
|
import Link from "next/link"
|
||||||
|
import { useState } from "react"
|
||||||
|
import { toast } from 'react-toastify'
|
||||||
|
import graphql from 'src/utils/graphql'
|
||||||
|
|
||||||
|
|
||||||
|
const gql = `
|
||||||
|
mutation CreateMessage($data: MessageInput!) {
|
||||||
|
createMessage(data: $data) {
|
||||||
|
documentId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
export default function ContactPage() {
|
||||||
|
const t = useTranslations('ContactUs')
|
||||||
|
const locale = useLocale()
|
||||||
|
|
||||||
|
|
||||||
|
const [formData, setFormData] = useState({
|
||||||
|
name: "",
|
||||||
|
email: "",
|
||||||
|
subject: "",
|
||||||
|
message: "",
|
||||||
|
phone: ""
|
||||||
|
})
|
||||||
|
const [isSubmitting, setIsSubmitting] = useState(false)
|
||||||
|
const [isSubmitted, setIsSubmitted] = useState(false)
|
||||||
|
|
||||||
|
const handleChange = (e) => {
|
||||||
|
const { name, value } = e.target
|
||||||
|
setFormData(prev => ({ ...prev, [name]: value }))
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleSubmit = async (e) => {
|
||||||
|
e.preventDefault()
|
||||||
|
setIsSubmitting(true)
|
||||||
|
if (!formData.email || !formData.subject || !formData.message) {
|
||||||
|
toast.success("Compelete All Required fields")
|
||||||
|
setIsSubmitting(false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Simulate form submission
|
||||||
|
const res = await graphql(gql, {
|
||||||
|
data: {
|
||||||
|
...formData
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
toast.success("Message sent successfully")
|
||||||
|
|
||||||
|
setIsSubmitting(false)
|
||||||
|
|
||||||
|
setFormData({ name: "", email: "", subject: "", message: "", phone: "" })
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className={`bg-gray-50 min-h-screen `}>
|
||||||
|
{/* Hero Section */}
|
||||||
|
<div className="bg-gradient-to-r from-primary-600 to-indigo-700 text-white py-20">
|
||||||
|
<div className="container mx-auto px-4 md:px-6">
|
||||||
|
<div className="max-w-3xl mx-auto text-center">
|
||||||
|
<h1 className="text-4xl md:text-5xl font-bold mb-4">{t('pageTitle')}</h1>
|
||||||
|
<p className="text-lg md:text-xl opacity-90">
|
||||||
|
{t('pageSubtitle')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="container mx-auto px-4 md:px-6 py-12">
|
||||||
|
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12">
|
||||||
|
{/* Contact Information */}
|
||||||
|
<div className="space-y-8">
|
||||||
|
<div>
|
||||||
|
<h2 className="text-2xl font-bold mb-6">{t('contactInfo.title')}</h2>
|
||||||
|
<p className="text-gray-600 mb-8">
|
||||||
|
{t('contactInfo.description')}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Contact Details */}
|
||||||
|
<div className="space-y-6">
|
||||||
|
<div className={`flex items-start space-x-4`}>
|
||||||
|
<div className="bg-primary-100 p-3 rounded-full">
|
||||||
|
<MapPin className="h-6 w-6 text-primary-600" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-medium text-gray-900">{t('contactInfo.office.title')}</h3>
|
||||||
|
<p className="text-gray-600 mt-1">{t('contactInfo.office.address1')}</p>
|
||||||
|
<p className="text-gray-600">{t('contactInfo.office.address2')}</p>
|
||||||
|
<p className="text-gray-600">{t('contactInfo.office.address3')}</p>
|
||||||
|
<p className="text-gray-600">{t('contactInfo.office.postalCode')}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div className={`flex items-start space-x-4`}>
|
||||||
|
<div className="bg-primary-100 p-3 rounded-full">
|
||||||
|
<Phone className="h-6 w-6 text-primary-600" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-medium text-gray-900">{t('contactInfo.phone.title')}</h3>
|
||||||
|
<p className="text-gray-600 mt-1">{t('contactInfo.phone.number')}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={`flex items-start space-x-4`}>
|
||||||
|
<div className="bg-primary-100 p-3 rounded-full">
|
||||||
|
<Mail className="h-6 w-6 text-primary-600" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-medium text-gray-900">{t('contactInfo.email.title')}</h3>
|
||||||
|
<p className="text-gray-600 mt-1">{t('contactInfo.email.address')}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className={`flex items-start space-x-4`}>
|
||||||
|
<div className="bg-primary-100 p-3 rounded-full">
|
||||||
|
<Clock className="h-6 w-6 text-primary-600" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3 className="font-medium text-gray-900">{t('contactInfo.hours.title')}</h3>
|
||||||
|
<p className="text-gray-600 mt-1">{t('contactInfo.hours.weekdays')}</p>
|
||||||
|
<p className="text-gray-600">{t('contactInfo.hours.weekend')}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Social Media */}
|
||||||
|
<div>
|
||||||
|
<h3 className="text-lg font-medium mb-4">{t('social.title')}</h3>
|
||||||
|
<div className={`flex space-x-4`}>
|
||||||
|
{/* <Link href="#" className="bg-primary-100 p-3 rounded-full hover:bg-primary-200 transition-colors" aria-label={t('social.facebook')}>
|
||||||
|
<Facebook className="h-6 w-6 text-primary-600" />
|
||||||
|
</Link>
|
||||||
|
<Link href="#" className="bg-primary-100 p-3 rounded-full hover:bg-primary-200 transition-colors" aria-label={t('social.twitter')}>
|
||||||
|
<Twitter className="h-6 w-6 text-primary-600" />
|
||||||
|
</Link> */}
|
||||||
|
<Link href="https://instagram.com/adhorizonsupply" target='_blank' className="bg-primary-100 p-3 rounded-full hover:bg-primary-200 transition-colors" aria-label={t('social.instagram')}>
|
||||||
|
<Instagram className="h-6 w-6 text-primary-600" />
|
||||||
|
</Link>
|
||||||
|
{/* <Link href="#" className="bg-primary-100 p-3 rounded-full hover:bg-primary-200 transition-colors" aria-label={t('social.linkedin')}>
|
||||||
|
<Linkedin className="h-6 w-6 text-primary-600" />
|
||||||
|
</Link> */}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Contact Form */}
|
||||||
|
<div className="bg-white rounded-xl shadow-lg p-8">
|
||||||
|
<h2 className="text-2xl font-bold mb-6">{t('form.title')}</h2>
|
||||||
|
|
||||||
|
|
||||||
|
<form onSubmit={handleSubmit} className="space-y-6">
|
||||||
|
<div>
|
||||||
|
<label htmlFor="name" className="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
{t('form.name.label')}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="name"
|
||||||
|
name="name"
|
||||||
|
value={formData.name}
|
||||||
|
onChange={handleChange}
|
||||||
|
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 transition-colors"
|
||||||
|
placeholder={t('form.name.placeholder')}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label htmlFor="email" className="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
{t('form.email.label')} <span className='text-red-600'>*</span>
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="email"
|
||||||
|
id="email"
|
||||||
|
name="email"
|
||||||
|
value={formData.email}
|
||||||
|
onChange={handleChange}
|
||||||
|
required
|
||||||
|
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 transition-colors"
|
||||||
|
placeholder={t('form.email.placeholder')}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label htmlFor="phone" className="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
{t('form.phone.label')}
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="phone"
|
||||||
|
id="phone"
|
||||||
|
name="phone"
|
||||||
|
value={formData.phone}
|
||||||
|
onChange={handleChange}
|
||||||
|
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 transition-colors"
|
||||||
|
placeholder={t('form.phone.placeholder')}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label htmlFor="subject" className="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
{t('form.subject.label')} <span className='text-red-600'>*</span>
|
||||||
|
</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="subject"
|
||||||
|
name="subject"
|
||||||
|
value={formData.subject}
|
||||||
|
onChange={handleChange}
|
||||||
|
required
|
||||||
|
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 transition-colors"
|
||||||
|
placeholder={t('form.subject.placeholder')}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<label htmlFor="message" className="block text-sm font-medium text-gray-700 mb-1">
|
||||||
|
{t('form.message.label')} <span className='text-red-600'>*</span>
|
||||||
|
</label>
|
||||||
|
<textarea
|
||||||
|
id="message"
|
||||||
|
name="message"
|
||||||
|
value={formData.message}
|
||||||
|
onChange={handleChange}
|
||||||
|
required
|
||||||
|
rows={5}
|
||||||
|
className="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-primary-500 focus:border-primary-500 transition-colors"
|
||||||
|
placeholder={t('form.message.placeholder')}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="submit"
|
||||||
|
disabled={isSubmitting}
|
||||||
|
className={`w-full flex items-center justify-center space-x-2 bg-primary-600 hover:bg-primary-700 text-white font-medium py-3 px-6 rounded-lg transition-colors ${isSubmitting ? 'opacity-70 cursor-not-allowed' : ''}`}
|
||||||
|
>
|
||||||
|
{isSubmitting ? (
|
||||||
|
<>
|
||||||
|
<svg className={`animate-spin h-5 w-5 text-white`} xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||||
|
<circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
|
||||||
|
<path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||||
|
</svg>
|
||||||
|
<span>{t('form.sending')}</span>
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<span>{t('form.submit')}</span>
|
||||||
|
<Send className={`h-5 w-5 `} />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Map Section */}
|
||||||
|
<div className="mt-16">
|
||||||
|
<h2 className="text-2xl font-bold mb-6">{t('map.title')}</h2>
|
||||||
|
<div className="h-[400px] w-full rounded-xl overflow-hidden shadow-lg">
|
||||||
|
<iframe
|
||||||
|
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d14584.90996109082!2d58.252388472339625!3d23.623068386452697!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x3e8dfdb3865ce30b%3A0x3bccc2e6948fb258!2sAl%20Mawalih%20North%2C%20Seeb%2C%20Oman!5e1!3m2!1sen!2s!4v1741649854951!5m2!1sen!2s"
|
||||||
|
width="100%"
|
||||||
|
height="100%"
|
||||||
|
style={{ border: 0 }}
|
||||||
|
allowFullScreen
|
||||||
|
loading="lazy"
|
||||||
|
referrerPolicy="no-referrer-when-downgrade"
|
||||||
|
></iframe>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
|
@ -15,6 +15,25 @@ mutation CreateInbox($data: InboxInput!,$locale:I18NLocaleCode) {
|
||||||
|
|
||||||
export default function ContactModal({ close, open }) {
|
export default function ContactModal({ close, open }) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
|
||||||
|
|
||||||
|
{/* Modal Overlay */}
|
||||||
|
{open && (
|
||||||
|
<div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">
|
||||||
|
{/* Modal Content */}
|
||||||
|
<ContactBody />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
export const ContactBody = () => {
|
||||||
const t = useTranslations("ContactModal");
|
const t = useTranslations("ContactModal");
|
||||||
const locale = useLocale()
|
const locale = useLocale()
|
||||||
|
|
||||||
|
@ -32,7 +51,7 @@ export default function ContactModal({ close, open }) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const {createInbox} = await graphql(gql, {
|
const { createInbox } = await graphql(gql, {
|
||||||
data: {
|
data: {
|
||||||
email,
|
email,
|
||||||
companyName,
|
companyName,
|
||||||
|
@ -46,15 +65,7 @@ export default function ContactModal({ close, open }) {
|
||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
|
||||||
|
|
||||||
|
|
||||||
{/* Modal Overlay */}
|
|
||||||
{open && (
|
|
||||||
<div className="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">
|
|
||||||
{/* Modal Content */}
|
|
||||||
<div className="bg-white rounded-lg shadow-lg w-full max-w-md p-6">
|
<div className="bg-white rounded-lg shadow-lg w-full max-w-md p-6">
|
||||||
<div className="flex justify-between items-center mb-4">
|
<div className="flex justify-between items-center mb-4">
|
||||||
<h2 className="text-xl font-semibold">{t("title")}</h2>
|
<h2 className="text-xl font-semibold">{t("title")}</h2>
|
||||||
|
@ -131,8 +142,5 @@ export default function ContactModal({ close, open }) {
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
)
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
}
|
|
@ -21,6 +21,8 @@ const Navbar = ({ items }) => {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const [closeNavbar, setClosNavbar] = useState(false);
|
const [closeNavbar, setClosNavbar] = useState(false);
|
||||||
const [activeStepNavbar, setActiveStepNavbar] = useState(null);
|
const [activeStepNavbar, setActiveStepNavbar] = useState(null);
|
||||||
|
|
||||||
|
|
|
@ -26,14 +26,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"products": {
|
"products": {
|
||||||
"title": [
|
"title": ["منتجات Active", "الإنشاءات"]
|
||||||
"منتجات Active",
|
|
||||||
"الإنشاءات"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Footer": {
|
"Footer": {
|
||||||
"address": "مسقط، السيب، موالح الشمالية، شارع الموج، رقم المجمع ٣٥٨، رقم المبنى ١/٢٠٣، مكتب رقم ٥٣، صندوق البريد: ٥٧ء"
|
"address": "مكتب رقم 53، مبنى رقم 203، مجمع رقم 308 - الموالح الشمالية، شارع الموج، طریق رقم 108، السیب - محافظة مسقط، سلطنة عمان - ص.ب: 65، الرمز البريدي: 104"
|
||||||
},
|
},
|
||||||
"PLP": {
|
"PLP": {
|
||||||
"title": "المنتجات",
|
"title": "المنتجات",
|
||||||
|
@ -72,5 +69,74 @@
|
||||||
"Utils": {
|
"Utils": {
|
||||||
"showMoreLink": "عرض المزيد",
|
"showMoreLink": "عرض المزيد",
|
||||||
"moreDetail": "المزيد من التفاصيل"
|
"moreDetail": "المزيد من التفاصيل"
|
||||||
|
},
|
||||||
|
"ContactUs": {
|
||||||
|
"pageTitle": "تواصل معنا",
|
||||||
|
"pageSubtitle": "نحن هنا لدعم عملك. فريقنا جاهز لمساعدتك في جميع احتياجاتك من المنتجات الاستهلاكية سريعة التداول ومنتجات البناء بالجملة",
|
||||||
|
"contactInfo": {
|
||||||
|
"title": "معلومات الاتصال",
|
||||||
|
"description": "املأ النموذج وسيعاود فريقنا الاتصال بك خلال 24 ساعة.",
|
||||||
|
"office": {
|
||||||
|
"title": "مكتبنا",
|
||||||
|
"address1": "مكتب رقم 53، مبنى رقم 203، مجمع رقم 308",
|
||||||
|
"address2": "الموالح الشمالية، شارع الموج، طریق رقم 108، السیب",
|
||||||
|
"address3": "محافظة مسقط ، سلطنة عمان",
|
||||||
|
"postalCode": "ص.ب: 65، الرمز البريدي: 104"
|
||||||
|
},
|
||||||
|
"phone": {
|
||||||
|
"title": "الهاتف",
|
||||||
|
"number": "+968 24 28 98 88"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"title": "البريد الإلكتروني",
|
||||||
|
"address": "info@adhorizonintl.com"
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"title": "ساعات العمل",
|
||||||
|
"weekdays": "الإثنين - الجمعة: 9:00 صباحاً - 5:00 مساءً",
|
||||||
|
"weekend": "عطلة نهاية الأسبوع: مغلق"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"social": {
|
||||||
|
"title": "تواصل معنا",
|
||||||
|
"facebook": "فيسبوك",
|
||||||
|
"twitter": "تويتر",
|
||||||
|
"instagram": "انستغرام",
|
||||||
|
"linkedin": "لينكد إن"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"title": "أرسل لنا رسالة",
|
||||||
|
"name": {
|
||||||
|
"label": "الاسم",
|
||||||
|
"placeholder": "أدخل اسمك"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"label": "البريد الإلكتروني",
|
||||||
|
"placeholder": "أدخل بريدك الإلكتروني"
|
||||||
|
},
|
||||||
|
"phone": {
|
||||||
|
"label": "الهاتف",
|
||||||
|
"placeholder": "+968 ..."
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": "الموضوع",
|
||||||
|
"placeholder": "كيف يمكننا مساعدتك؟"
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"label": "الرسالة",
|
||||||
|
"placeholder": "اكتب رسالتك هنا..."
|
||||||
|
},
|
||||||
|
"submit": "إرسال الرسالة",
|
||||||
|
"sending": "جاري الإرسال...",
|
||||||
|
"success": "شكراً لك! تم إرسال رسالتك بنجاح. سنعاود الاتصال بك قريباً."
|
||||||
|
},
|
||||||
|
"map": {
|
||||||
|
"title": "ابحث عنا على الخريطة"
|
||||||
|
},
|
||||||
|
"languageSwitcher": {
|
||||||
|
"label": "اللغة",
|
||||||
|
"english": "English",
|
||||||
|
"arabic": "العربية"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"HomePage": {
|
"HomePage": {
|
||||||
"SEO":{
|
"SEO": {
|
||||||
"title":"Advanced Horizon Services LLC",
|
"title": "Advanced Horizon Services LLC",
|
||||||
"description":"Advanced Horizon Services LLC offers reliable wholesale supply chain solutions for high-quality detergents and food products with a focus on excellence"
|
"description": "Advanced Horizon Services LLC offers reliable wholesale supply chain solutions for high-quality detergents and food products with a focus on excellence"
|
||||||
},
|
},
|
||||||
"AboutUs": {
|
"AboutUs": {
|
||||||
"brandName": "ADVANCED HORIZON SERVICES LLC",
|
"brandName": "ADVANCED HORIZON SERVICES LLC",
|
||||||
|
@ -12,7 +12,6 @@
|
||||||
" At AHS, we understand the complexities of the supply chain and strive to simplify the process for our partners. Our extensive network of suppliers and manufacturers allows us to source top-notch products at competitive prices, ensuring that you receive the best value for your investment"
|
" At AHS, we understand the complexities of the supply chain and strive to simplify the process for our partners. Our extensive network of suppliers and manufacturers allows us to source top-notch products at competitive prices, ensuring that you receive the best value for your investment"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
"Sides": {
|
"Sides": {
|
||||||
"title": "Discover Our Expertise",
|
"title": "Discover Our Expertise",
|
||||||
"fmcg": {
|
"fmcg": {
|
||||||
|
@ -26,32 +25,29 @@
|
||||||
"description": "Our Construction arm is dedicated to creating lasting infrastructure and innovative building solutions. From residential projects to commercial complexes, we bring expertise, quality, and sustainability to every construction endeavor"
|
"description": "Our Construction arm is dedicated to creating lasting infrastructure and innovative building solutions. From residential projects to commercial complexes, we bring expertise, quality, and sustainability to every construction endeavor"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"products":{
|
"products": {
|
||||||
"title":[
|
"title": ["Active Products", "Constructions"]
|
||||||
"Active Products",
|
|
||||||
"Constructions"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Footer": {
|
"Footer": {
|
||||||
"address": "Unit No. 53, Building No 203, Complex No.308 , Mawaleh North ,Road No. 108 Al Mouj Street , Muscat Oman , P.o.box.607 , P.c.111 Muscat Airport"
|
"address": "Office No. 53, Building No. 203, Complex No. 308, Mawaleh North, Road No. 108, Al Mouj Street, Al Seeb, Muscat Governorate, Sultanate of Oman - P.O. Box: 65, P.C: 104"
|
||||||
},
|
},
|
||||||
"PLP":{
|
"PLP": {
|
||||||
"title":"Products",
|
"title": "Products",
|
||||||
"subtitle":"Explore Our Range of Products",
|
"subtitle": "Explore Our Range of Products",
|
||||||
"filter":{
|
"filter": {
|
||||||
"title":"Filters",
|
"title": "Filters",
|
||||||
"categories":"Categories",
|
"categories": "Categories",
|
||||||
"brands":"Brands"
|
"brands": "Brands"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PDP":{
|
"PDP": {
|
||||||
"contactUs":"Contact Us",
|
"contactUs": "Contact Us",
|
||||||
"home":"Home",
|
"home": "Home",
|
||||||
"productDetails":"Product Details",
|
"productDetails": "Product Details",
|
||||||
"productDescription":"Product Description",
|
"productDescription": "Product Description",
|
||||||
"productSpecification":"Product Specification",
|
"productSpecification": "Product Specification",
|
||||||
"productRelated":"Frequently Bought Together"
|
"productRelated": "Frequently Bought Together"
|
||||||
},
|
},
|
||||||
"ContactModal": {
|
"ContactModal": {
|
||||||
"title": "Contact Us",
|
"title": "Contact Us",
|
||||||
|
@ -63,15 +59,79 @@
|
||||||
"messagePlaceholder": "Enter your message",
|
"messagePlaceholder": "Enter your message",
|
||||||
"sendButton": "Send Message",
|
"sendButton": "Send Message",
|
||||||
"closeButton": "Close",
|
"closeButton": "Close",
|
||||||
"error":{
|
"error": {
|
||||||
"fillAllFields":"Please fill all fields",
|
"fillAllFields": "Please fill all fields",
|
||||||
"invalidEmail":"Please enter a valid email address"
|
"invalidEmail": "Please enter a valid email address"
|
||||||
},
|
},
|
||||||
"success":"Message sent successfully",
|
"success": "Message sent successfully",
|
||||||
"cta":"Contact Us"
|
"cta": "Contact Us"
|
||||||
},
|
},
|
||||||
"Utils":{
|
"Utils": {
|
||||||
"showMoreLink":"Show more",
|
"showMoreLink": "Show more",
|
||||||
"moreDetail":"More detail"
|
"moreDetail": "More detail"
|
||||||
|
},
|
||||||
|
"ContactUs": {
|
||||||
|
"pageTitle": "Get in Touch",
|
||||||
|
"pageSubtitle": "We're here to support your business. Our team is ready to assist with all your wholesale FMCG and construction product needs",
|
||||||
|
"contactInfo": {
|
||||||
|
"title": "Contact Information",
|
||||||
|
"description": "Fill up the form and our team will get back to you within 24 hours.",
|
||||||
|
"office": {
|
||||||
|
"title": "Our Office",
|
||||||
|
"address1": "Office No. 53, Building No. 203, Complex No. 308 ",
|
||||||
|
"address2": "Mawaleh North, Road No. 108, Al Mouj Street, Al Seeb",
|
||||||
|
"address3": "Muscat Governorate, Sultanate of Oman",
|
||||||
|
"postalCode": "P.O. Box: 65, P.C: 104"
|
||||||
|
},
|
||||||
|
"phone": {
|
||||||
|
"title": "Phone",
|
||||||
|
"number": "+968 24 28 98 88"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"title": "Email",
|
||||||
|
"address": "info@adhorizonintl.com"
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"title": "Working Hours",
|
||||||
|
"weekdays": "Monday - Friday: 9:00 AM - 5:00 PM",
|
||||||
|
"weekend": "Weekend: Closed"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"social": {
|
||||||
|
"title": "Connect With Us",
|
||||||
|
"facebook": "Facebook",
|
||||||
|
"twitter": "Twitter",
|
||||||
|
"instagram": "Instagram",
|
||||||
|
"linkedin": "LinkedIn"
|
||||||
|
},
|
||||||
|
"form": {
|
||||||
|
"title": "Send us a message",
|
||||||
|
"name": {
|
||||||
|
"label": "Your Name",
|
||||||
|
"placeholder": "John Doe"
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
"label": "Email Address",
|
||||||
|
"placeholder": "john@example.com"
|
||||||
|
},
|
||||||
|
"phone": {
|
||||||
|
"label": "Phone",
|
||||||
|
"placeholder": "+968 ..."
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"label": "Subject",
|
||||||
|
"placeholder": "How can we help you?"
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"label": "Message",
|
||||||
|
"placeholder": "Your message here..."
|
||||||
|
},
|
||||||
|
"submit": "Send Message",
|
||||||
|
"sending": "Sending...",
|
||||||
|
"success": "Thank you! Your message has been sent successfully. We'll get back to you soon."
|
||||||
|
},
|
||||||
|
"map": {
|
||||||
|
"title": "Find Us on the Map"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,7 @@ const Footer = () => {
|
||||||
|
|
||||||
<footer className="bg-background border-t">
|
<footer className="bg-background border-t">
|
||||||
<div className="container px-4 py-8 md:py-12 mx-auto">
|
<div className="container px-4 py-8 md:py-12 mx-auto">
|
||||||
<div className="grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4">
|
<div className="grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4 ">
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
|
|
|
@ -67,6 +67,7 @@ const Landing = async () => {
|
||||||
|
|
||||||
<Products />
|
<Products />
|
||||||
{/* <WhyHorizon/> */}
|
{/* <WhyHorizon/> */}
|
||||||
|
<ContactUs/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue