sisa animasi
This commit is contained in:
parent
331c459b87
commit
b5b04505b9
101
package-lock.json
generated
101
package-lock.json
generated
@ -4575,10 +4575,13 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/react": {
|
"node_modules/react": {
|
||||||
"version": "19.0.0",
|
"version": "18.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
|
||||||
"integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==",
|
"integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"loose-envify": "^1.1.0"
|
||||||
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
@ -4597,71 +4600,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-dom": {
|
"node_modules/react-dom": {
|
||||||
"version": "19.0.0",
|
"version": "18.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
|
||||||
"integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==",
|
"integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"scheduler": "^0.25.0"
|
"loose-envify": "^1.1.0",
|
||||||
|
"scheduler": "^0.23.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": "^19.0.0"
|
"react": "^18.3.1"
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-google-recaptcha": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"prop-types": "^15.5.0",
|
|
||||||
"react-async-script": "^1.2.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": ">=16.4.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-intersection-observer": {
|
|
||||||
"version": "9.15.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.15.1.tgz",
|
|
||||||
"integrity": "sha512-vGrqYEVWXfH+AGu241uzfUpNK4HAdhCkSAyFdkMb9VWWXs6mxzBLpWCxEy9YcnDNY2g9eO6z7qUtTBdA9hc8pA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
||||||
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-google-recaptcha": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"prop-types": "^15.5.0",
|
|
||||||
"react-async-script": "^1.2.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": ">=16.4.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/react-intersection-observer": {
|
|
||||||
"version": "9.15.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.15.1.tgz",
|
|
||||||
"integrity": "sha512-vGrqYEVWXfH+AGu241uzfUpNK4HAdhCkSAyFdkMb9VWWXs6mxzBLpWCxEy9YcnDNY2g9eO6z7qUtTBdA9hc8pA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
||||||
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"react-dom": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-google-recaptcha": {
|
"node_modules/react-google-recaptcha": {
|
||||||
@ -4709,9 +4657,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-router": {
|
"node_modules/react-router": {
|
||||||
"version": "7.1.5",
|
"version": "7.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.3.tgz",
|
||||||
"integrity": "sha512-8BUF+hZEU4/z/JD201yK6S+UYhsf58bzYIDq2NS1iGpwxSXDu7F+DeGSkIXMFBuHZB21FSiCzEcUb18cQNdRkA==",
|
"integrity": "sha512-EezYymLY6Guk/zLQ2vRA8WvdUhWFEj5fcE3RfWihhxXBW7+cd1LsIiA3lmx+KCmneAGQuyBv820o44L2+TtkSA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/cookie": "^0.6.0",
|
"@types/cookie": "^0.6.0",
|
||||||
@ -4733,12 +4681,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/react-router-dom": {
|
"node_modules/react-router-dom": {
|
||||||
"version": "7.1.5",
|
"version": "7.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.1.3.tgz",
|
||||||
"integrity": "sha512-/4f9+up0Qv92D3bB8iN5P1s3oHAepSGa9h5k6tpTFlixTTskJZwKGhJ6vRJ277tLD1zuaZTt95hyGWV1Z37csQ==",
|
"integrity": "sha512-qQGTE+77hleBzv9SIUIkGRvuFBQGagW+TQKy53UTZAO/3+YFNBYvRsNIZ1GT17yHbc63FylMOdS+m3oUriF1GA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react-router": "7.1.5"
|
"react-router": "7.1.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20.0.0"
|
"node": ">=20.0.0"
|
||||||
@ -4973,10 +4921,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/scheduler": {
|
"node_modules/scheduler": {
|
||||||
"version": "0.25.0",
|
"version": "0.23.2",
|
||||||
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
|
||||||
"integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==",
|
"integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
|
||||||
"license": "MIT"
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"loose-envify": "^1.1.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"node_modules/semver": {
|
"node_modules/semver": {
|
||||||
"version": "6.3.1",
|
"version": "6.3.1",
|
||||||
|
@ -30,9 +30,13 @@ function Hero() {
|
|||||||
<img src={waIcon} alt="WhatsApp Icon" className="mr-2 h-7 w-7" />
|
<img src={waIcon} alt="WhatsApp Icon" className="mr-2 h-7 w-7" />
|
||||||
Konsultasi Gratis
|
Konsultasi Gratis
|
||||||
</button>
|
</button>
|
||||||
<button className="flex items-center justify-center px-6 py-3 rounded-[14px] md:w-[245px] md:h-[55px] bg-gradient-to-r from-[#DC0168] to-[#5B59E8] text-white font-medium text-base lg:text-lg hover:opacity-90 transition-opacity">
|
<Link to={"/Contact#form"}>
|
||||||
Coba Sekarang
|
<button
|
||||||
</button>
|
className="flex items-center justify-center px-6 py-3 rounded-[14px] w-[358px] h-[55px] md:w-[245px] md:h-[55px] bg-gradient-to-r from-[#DC0168] to-[#5B59E8] text-white font-medium text-base lg:text-lg hover:opacity-90 transition-opacity">
|
||||||
|
Coba Sekarang
|
||||||
|
</button>
|
||||||
|
</Link>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,71 +1,39 @@
|
|||||||
import { wagreen } from "./asset"; // Import gambar WhatsApp untuk ikon
|
import { wagreen } from "./asset"; // Import gambar WhatsApp untuk ikon
|
||||||
import { motion } from "framer-motion";
|
|
||||||
import { useEffect, useState } from "react";
|
|
||||||
|
|
||||||
const BottomCTA = () => {
|
const BottomCTA = () => {
|
||||||
const [isVisible, setIsVisible] = useState(false);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const handleScroll = () => {
|
|
||||||
const scrollY = window.scrollY;
|
|
||||||
const triggerHeight = window.innerHeight / 1.5;
|
|
||||||
setIsVisible(scrollY > triggerHeight);
|
|
||||||
};
|
|
||||||
|
|
||||||
window.addEventListener("scroll", handleScroll);
|
|
||||||
return () => window.removeEventListener("scroll", handleScroll);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="w-full bg-white text-center py-10 mb-[113px]">
|
<section className="w-full bg-white text-center py-10 mb-[113px]">
|
||||||
{/* Animasi teks turun dari atas saat di-scroll */}
|
{/* Bagian ini untuk menampilkan teks yang memberi tahu pengguna bahwa mereka bisa menghubungi jika masih ada pertanyaan */}
|
||||||
<motion.div
|
<div className="flex flex-wrap justify-center gap-2">
|
||||||
initial={{ opacity: 0, y: -50 }}
|
|
||||||
animate={isVisible ? { opacity: 1, y: 0 } : { opacity: 0, y: -50 }}
|
|
||||||
transition={{ duration: 2.5, ease: "easeOut" }}
|
|
||||||
className="flex flex-wrap justify-center gap-2"
|
|
||||||
>
|
|
||||||
<h3 className="text-[#212121] text-center text-[32px] font-[550] leading-[48px] tracking-[0.005em]">
|
<h3 className="text-[#212121] text-center text-[32px] font-[550] leading-[48px] tracking-[0.005em]">
|
||||||
Masih punya pertanyaan seputar
|
Masih punya pertanyaan seputar
|
||||||
</h3>
|
</h3>
|
||||||
<h3 className="text-[24px] sm:text-xl md:text-2xl text-[#212121] mb-3">
|
|
||||||
|
<h3 className="text-[24px] sm:text-xl md:text-2xl text-[#212121] mb-3">
|
||||||
|
{/* Menampilkan tag #Rekan AI dengan background warna dan teks putih */}
|
||||||
<span className="bg-[#dc0168] bg-[length:100%] rounded-[18px] text-[#ffffff] px-9 py-2 inline-block mr-[5px]">
|
<span className="bg-[#dc0168] bg-[length:100%] rounded-[18px] text-[#ffffff] px-9 py-2 inline-block mr-[5px]">
|
||||||
#Rekan AI
|
#Rekan AI
|
||||||
</span>
|
</span>
|
||||||
<span className="font-semibold ml-1">?</span>
|
<span className="font-semibold ml-1">?</span>
|
||||||
</h3>
|
</h3>
|
||||||
</motion.div>
|
</div>
|
||||||
|
|
||||||
<motion.p
|
{/* Pesan yang memberi tahu pengguna untuk menghubungi jika pertanyaan belum terjawab */}
|
||||||
initial={{ opacity: 0, y: -30 }}
|
<p className=" text-[20px] font-normal leading-[30px] tracking-[0.005em] text-center text-[#212121] mb-5 mx-auto">
|
||||||
animate={isVisible ? { opacity: 1, y: 0 } : { opacity: 0, y: -30 }}
|
Jika pertanyaan Anda belum terjawab di atas, jangan ragu untuk menghubungi kami melalui formulir<br />kontak atau email. Kami dengan senang hati akan membantu!
|
||||||
transition={{ duration: 2, ease: "easeOut" }}
|
</p>
|
||||||
className="text-[20px] font-normal leading-[30px] tracking-[0.005em] text-center text-[#212121] mb-5 mx-auto"
|
|
||||||
>
|
|
||||||
Jika pertanyaan Anda belum terjawab di atas, jangan ragu untuk menghubungi kami melalui formulir<br />
|
|
||||||
kontak atau email. Kami dengan senang hati akan membantu!
|
|
||||||
</motion.p>
|
|
||||||
|
|
||||||
{/* Animasi tombol keluar dari kanan dan kiri saat di-scroll */}
|
{/* Bagian tombol CTA */}
|
||||||
<div className="flex flex-col justify-center md:mt-12 sm:flex-row gap-6 sm:gap-12 sm:mt-1 px-4 sm:px-0">
|
<div className="flex flex-col justify-center md:mt-12 sm:flex-row gap-6 sm:gap-12 sm:mt-1 px-4 sm:px-0">
|
||||||
<motion.button
|
<button className="w-full lg:w-[270px] h-[70px] btn2 flex items-center justify-center py-3 border-2 border-[#DC0168] rounded-[14px] text-[#DC0168] font-semibold text-[18px] lg:text-[20px] cursor-pointer transition-all ease-in-out hover:bg-[#ffffff1a]">
|
||||||
initial={{ opacity: 0, x: -50 }}
|
|
||||||
animate={isVisible ? { opacity: 1, x: 0 } : { opacity: 0, x: -50 }}
|
|
||||||
transition={{ duration: 2.5, ease: "easeOut" }}
|
|
||||||
className="w-full lg:w-[270px] h-[70px] btn2 flex items-center justify-center py-3 border-2 border-[#DC0168] rounded-[14px] text-[#DC0168] font-semibold text-[18px] lg:text-[20px] cursor-pointer transition-all ease-in-out hover:bg-[#ffffff1a]"
|
|
||||||
>
|
|
||||||
<img src={wagreen} alt="WhatsApp Icon" className="mr-4 w-5 h-5 md:w-[30px] md:h-[30px]" />
|
<img src={wagreen} alt="WhatsApp Icon" className="mr-4 w-5 h-5 md:w-[30px] md:h-[30px]" />
|
||||||
Konsultasi Gratis
|
Konsultasi Gratis
|
||||||
</motion.button>
|
</button>
|
||||||
<motion.button
|
<button className="w-full lg:w-[276px] h-[70px] btn2 flex items-center justify-center py-3 px-8 rounded-[14px] bg-gradient-to-r from-[#DC0168] to-[#5B59E8] text-white font-semibold text-[18px] lg:text-[20px] cursor-pointer transition-all ease-in-out hover:opacity-90">
|
||||||
initial={{ opacity: 0, x: 50 }}
|
|
||||||
animate={isVisible ? { opacity: 1, x: 0 } : { opacity: 0, x: 50 }}
|
|
||||||
transition={{ duration: 2.5, ease: "easeOut" }}
|
|
||||||
className="w-full lg:w-[276px] h-[70px] btn2 flex items-center justify-center py-3 px-8 rounded-[14px] bg-gradient-to-r from-[#DC0168] to-[#5B59E8] text-white font-semibold text-[18px] lg:text-[20px] cursor-pointer transition-all ease-in-out hover:opacity-90"
|
|
||||||
>
|
|
||||||
Coba Sekarang
|
Coba Sekarang
|
||||||
</motion.button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -16,28 +16,109 @@ const FAQ = () => {
|
|||||||
// Jika tidak ada pertanyaan yang terbuka, nilai adalah null
|
// Jika tidak ada pertanyaan yang terbuka, nilai adalah null
|
||||||
const [openQuestion, setOpenQuestion] = useState(null);
|
const [openQuestion, setOpenQuestion] = useState(null);
|
||||||
|
|
||||||
useEffect(() => {
|
// Fungsi untuk membuka atau menutup pertanyaan berdasarkan indeks
|
||||||
if (location.hash) {
|
// Jika pertanyaan yang sama diklik lagi, tutup pertanyaan tersebut
|
||||||
const element = document.querySelector(location.hash);
|
|
||||||
if (element) {
|
|
||||||
element.scrollIntoView({ behavior: "smooth" });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, [location]);
|
|
||||||
|
|
||||||
const toggleQuestion = (index) => {
|
const toggleQuestion = (index) => {
|
||||||
|
// Cek apakah pertanyaan yang sama diklik
|
||||||
|
// Jika iya, tutup (set openQuestion ke null), jika tidak, buka pertanyaan tersebut
|
||||||
setOpenQuestion(openQuestion === index ? null : index);
|
setOpenQuestion(openQuestion === index ? null : index);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Data FAQ yang berisi array objek dengan pertanyaan dan jawaban
|
||||||
const faqData = [
|
const faqData = [
|
||||||
{ question: "Apa itu Rekan AI?", answer: <p>Rekan AI adalah platform teknologi kecerdasan buatan (AI) yang menyediakan solusi berbasis AI untuk meningkatkan efisiensi operasional, analisis data, dan pengalaman pelanggan bagi UMKM hingga perusahaan besar.</p> },
|
{
|
||||||
{ question: "Apa saja produk yang ditawarkan oleh Rekan AI?", answer: <div><p>Kami menawarkan beberapa produk unggulan, termasuk:</p><ul className="list-decimal list-inside space-y-1"><li>Rekan Doku: Solusi autentikasi dan manajemen dokumen digital.</li><li>Rekan HR: Automasi dan optimalisasi proses HR.</li><li>Rekan LLM: AI berbasis model bahasa besar untuk analisis dan komunikasi.</li><li>Rekan Veri: Verifikasi data yang cepat dan akurat.</li></ul></div> },
|
question: "Apa itu Rekan AI?",
|
||||||
{ question: "Bagaimana cara menghubungi tim Rekan AI?", answer: <div><p>Anda dapat menghubungi kami melalui:</p><ul className="list-decimal list-inside space-y-1"><li>Email: support@rekanai.com</li><li>Telepon: (+62) 123-4567-890</li><li>WhatsApp: (+62) 812-3456-7890</li></ul></div> },
|
answer: (
|
||||||
{ question: "Apakah solusi Rekan AI mudah diimplementasikan?", answer: <p>Ya, produk kami dirancang untuk integrasi yang mulus dengan sistem bisnis Anda yang sudah ada. Kami juga menyediakan dukungan teknis untuk memastikan implementasi berjalan lancar.</p> },
|
<p>
|
||||||
{ question: "Apakah Rekan AI cocok untuk UMKM?", answer: <p>Tentu saja! Kami menawarkan solusi yang terjangkau, mudah digunakan, dan dapat membantu UMKM meningkatkan efisiensi, mengurangi biaya operasional, dan mempercepat pertumbuhan.</p> },
|
Rekan AI adalah platform teknologi kecerdasan buatan (AI) yang
|
||||||
{ question: "Bagaimana dengan keamanan data?", answer: <p>Keamanan adalah prioritas kami. Semua produk Rekan AI menggunakan teknologi enkripsi canggih untuk melindungi data Anda dari ancaman cyber.</p> },
|
menyediakan solusi berbasis AI untuk meningkatkan efisiensi
|
||||||
{ question: "Bagaimana saya memulai menggunakan produk Rekan AI?", answer: <p>Anda dapat memulai dengan menghubungi tim kami untuk demo produk atau konsultasi gratis. Kami akan membantu Anda menemukan solusi yang paling sesuai dengan kebutuhan bisnis Anda.</p> },
|
operasional, analisis data, dan pengalaman pelanggan bagi UMKM hingga
|
||||||
{ question: "Apakah Rekan AI memiliki paket harga yang bisa dipilih?", answer: <p>Ya, kami dapat memberikan paket harga terbaik untuk solusi produk yang Anda pilih. Informasi lebih lanjut silakan hubungi kami dan konsultasikan kebutuhan Anda secara gratis.</p> },
|
perusahaan besar.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Apa saja produk yang ditawarkan oleh Rekan AI?",
|
||||||
|
answer: (
|
||||||
|
<div>
|
||||||
|
<p className="mb-1">Kami menawarkan beberapa produk unggulan, termasuk:</p>
|
||||||
|
<ul className="list-decimal list-inside space-y-1">
|
||||||
|
<li>
|
||||||
|
Rekan Doku: Solusi autentikasi dan manajemen dokumen digital.
|
||||||
|
</li>
|
||||||
|
<li>Rekan HR: Automasi dan optimalisasi proses HR.</li>
|
||||||
|
<li>
|
||||||
|
Rekan LLM: AI berbasis model bahasa besar untuk analisis dan
|
||||||
|
komunikasi.
|
||||||
|
</li>
|
||||||
|
<li>Rekan Veri: Verifikasi data yang cepat dan akurat.</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Bagaimana cara menghubungi tim Rekan AI?",
|
||||||
|
answer: (
|
||||||
|
<div>
|
||||||
|
<p className="mb-1">Anda dapat menghubungi kami melalui:</p>
|
||||||
|
<ul className="list-decimal list-inside space-y-1">
|
||||||
|
<li>Email: support@rekanai.com</li>
|
||||||
|
<li>Telepon: (+62) 123-4567-890</li>
|
||||||
|
<li>WhatsApp: (+62) 812-3456-7890</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Apakah solusi Rekan AI mudah diimplementasikan?",
|
||||||
|
answer: (
|
||||||
|
<p>
|
||||||
|
Ya, produk kami dirancang untuk integrasi yang mulus dengan sistem
|
||||||
|
bisnis Anda yang sudah ada. Kami juga menyediakan dukungan teknis
|
||||||
|
untuk memastikan implementasi berjalan lancar.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Apakah Rekan AI cocok untuk UMKM?",
|
||||||
|
answer: (
|
||||||
|
<p>
|
||||||
|
Tentu saja! Kami menawarkan solusi yang terjangkau, mudah digunakan,
|
||||||
|
dan dapat membantu UMKM meningkatkan efisiensi, mengurangi biaya
|
||||||
|
operasional, dan mempercepat pertumbuhan.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Bagaimana dengan keamanan data?",
|
||||||
|
answer: (
|
||||||
|
<p>
|
||||||
|
Keamanan adalah prioritas kami. Semua produk Rekan AI menggunakan
|
||||||
|
teknologi enkripsi canggih untuk melindungi data Anda dari ancaman
|
||||||
|
cyber.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Bagaimana saya memulai menggunakan produk Rekan AI?",
|
||||||
|
answer: (
|
||||||
|
<p>
|
||||||
|
Anda dapat memulai dengan menghubungi tim kami untuk demo produk atau
|
||||||
|
konsultasi gratis. Kami akan membantu Anda menemukan solusi yang
|
||||||
|
paling sesuai dengan kebutuhan bisnis Anda.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
question: "Apakah Rekan AI memiliki paket harga yang bisa dipilih?",
|
||||||
|
answer: (
|
||||||
|
<p>
|
||||||
|
Ya, kami dapat memberikan paket harga terbaik untuk solusi produk yang
|
||||||
|
Anda pilih. Informasi lebih lanjut silakan hubungi kami dan
|
||||||
|
konsultasikan kebutuhan Anda secara gratis.
|
||||||
|
</p>
|
||||||
|
),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -52,37 +133,33 @@ const FAQ = () => {
|
|||||||
</h2>
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Bagian FAQ */}
|
||||||
<div className="space-y-[22px] mb-[110px] mt-[60px]">
|
<div className="space-y-[22px] mb-[110px] mt-[60px]">
|
||||||
{faqData.map((item, index) => {
|
{faqData.map((item, index) => (
|
||||||
const { ref, inView } = useInView({ threshold: 0.1 });
|
<div
|
||||||
|
key={index}
|
||||||
return (
|
className="text-[20px] border border-[#5B59E8] p-[5px] rounded-[12px] overflow-hidden "
|
||||||
|
>
|
||||||
|
{/* Bagian untuk menampilkan pertanyaan dan tanda buka/tutup */}
|
||||||
<div
|
<div
|
||||||
key={index}
|
className={`flex justify-between items-center cursor-pointer bg-white ml-4 ${
|
||||||
ref={ref}
|
// Jika pertanyaan ini dibuka, beri highlight
|
||||||
className={`text-[20px] border border-[#5B59E8] p-[5px] rounded-[12px] overflow-hidden transition-opacity duration-700 transform ${
|
openQuestion === index ? "text-blue-500" : ""
|
||||||
inView ? "opacity-100 translate-y-0" : "opacity-0 translate-y-10"
|
|
||||||
}`}
|
}`}
|
||||||
style={{ transitionDelay: `${index * 100}ms` }}
|
onClick={() => toggleQuestion(index)} // Ketika pertanyaan diklik, panggil toggleQuestion
|
||||||
>
|
>
|
||||||
<div
|
<span className="font-[550]">{item.question}</span>
|
||||||
className={`flex justify-between items-center cursor-pointer bg-white ml-4 ${
|
<span className="text-[39px] text-[#845FF1] mr-4">{openQuestion === index ? "–" : "+"}</span> {/* Tampilkan tanda buka atau tutup */}
|
||||||
openQuestion === index ? "text-blue-500" : ""
|
|
||||||
}`}
|
|
||||||
onClick={() => toggleQuestion(index)}
|
|
||||||
>
|
|
||||||
<span className="font-[550]">{item.question}</span>
|
|
||||||
<span className="text-[39px] text-[#845FF1] mr-4">{openQuestion === index ? "–" : "+"}</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{openQuestion === index && (
|
|
||||||
<div className="p-4 text-[16px] ml-4 text-left bg-white text-sm">
|
|
||||||
{item.answer}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
|
||||||
})}
|
{/* Bagian untuk menampilkan jawaban jika pertanyaan ini terbuka */}
|
||||||
|
{openQuestion === index && (
|
||||||
|
<div className="p-4 text-[16px] ml-4 text-left bg-white text-sm">
|
||||||
|
{item.answer}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -39,7 +39,7 @@ const ContactForm = () => {
|
|||||||
Kami percaya bahwa kolaborasi adalah kunci kesuksesan. Hubungi kami hari ini, dan mari wujudkan masa depan
|
Kami percaya bahwa kolaborasi adalah kunci kesuksesan. Hubungi kami hari ini, dan mari wujudkan masa depan
|
||||||
bisnis Anda bersama Rekan AI!
|
bisnis Anda bersama Rekan AI!
|
||||||
</p>
|
</p>
|
||||||
</motion.div>
|
</div>
|
||||||
|
|
||||||
{/* Form Section */}
|
{/* Form Section */}
|
||||||
<div className="w-full lg:w-7/12 xl:w-6/12">
|
<div className="w-full lg:w-7/12 xl:w-6/12">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user