diff --git a/package-lock.json b/package-lock.json index fccee57..d76dc80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,15 +10,19 @@ "dependencies": { "flowbite-react": "^0.10.2", "framer-motion": "^11.11.17", + "moment": "^2.30.1", "next": "14.2.18", "react": "^18", "react-dom": "^18", + "react-slick": "^0.30.2", + "slick-carousel": "^1.8.1", "swiper": "^11.1.15" }, "devDependencies": { "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "@types/react-slick": "^0.23.13", "eslint": "^8", "eslint-config-next": "14.2.18", "postcss": "^8", @@ -597,6 +601,15 @@ "@types/react": "*" } }, + "node_modules/@types/react-slick": { + "version": "0.23.13", + "resolved": "https://registry.npmjs.org/@types/react-slick/-/react-slick-0.23.13.tgz", + "integrity": "sha512-bNZfDhe/L8t5OQzIyhrRhBr/61pfBcWaYJoq6UDqFtv5LMwfg4NsVDD2J8N01JqdAdxLjOt66OZEp6PX+dGs/A==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -1520,6 +1533,11 @@ "node": ">=10.13.0" } }, + "node_modules/enquire.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==" + }, "node_modules/es-abstract": { "version": "1.23.5", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", @@ -3103,6 +3121,12 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "peer": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -3138,6 +3162,14 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "dependencies": { + "string-convert": "^0.2.0" + } + }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -3233,6 +3265,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -3312,6 +3349,14 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3940,6 +3985,22 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, + "node_modules/react-slick": { + "version": "0.30.2", + "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.30.2.tgz", + "integrity": "sha512-XvQJi7mRHuiU3b9irsqS9SGIgftIfdV5/tNcURTb5LdIokRA5kIIx3l4rlq2XYHfxcSntXapoRg/GxaVOM1yfg==", + "dependencies": { + "classnames": "^2.2.5", + "enquire.js": "^2.1.6", + "json2mq": "^0.2.0", + "lodash.debounce": "^4.0.8", + "resize-observer-polyfill": "^1.5.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -3998,6 +4059,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -4235,6 +4301,14 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", + "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==", + "peerDependencies": { + "jquery": ">=1.8.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4251,6 +4325,11 @@ "node": ">=10.0.0" } }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", diff --git a/package.json b/package.json index 5da0c0e..81c6c88 100644 --- a/package.json +++ b/package.json @@ -11,15 +11,19 @@ "dependencies": { "flowbite-react": "^0.10.2", "framer-motion": "^11.11.17", + "moment": "^2.30.1", "next": "14.2.18", "react": "^18", "react-dom": "^18", + "react-slick": "^0.30.2", + "slick-carousel": "^1.8.1", "swiper": "^11.1.15" }, "devDependencies": { "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "@types/react-slick": "^0.23.13", "eslint": "^8", "eslint-config-next": "14.2.18", "postcss": "^8", diff --git a/src/app/(home)/about-us/page.tsx b/src/app/(home)/about-us/page.tsx index 25360a6..a2f1532 100644 --- a/src/app/(home)/about-us/page.tsx +++ b/src/app/(home)/about-us/page.tsx @@ -1,11 +1,2 @@ -import React from 'react' - -const AboutUS = () => { - return ( -
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Nihil est fuga distinctio repellat veniam laborum molestias blanditiis neque, similique tempora recusandae, eligendi incidunt reiciendis nulla optio dolore ratione fugiat! Minima! -
- ) -} - -export default AboutUS \ No newline at end of file +import AboutUs from "@/components/pages/about/AboutUs"; +export default AboutUs; \ No newline at end of file diff --git a/src/app/(home)/contact-us/page.tsx b/src/app/(home)/contact-us/page.tsx index 983ebb8..c30d4c3 100644 --- a/src/app/(home)/contact-us/page.tsx +++ b/src/app/(home)/contact-us/page.tsx @@ -1,9 +1,88 @@ -import React from 'react' +'use client' +import Link from 'next/link'; +import { motion } from 'framer-motion'; +import { FaEnvelope, FaPhoneAlt, FaFacebook } from 'react-icons/fa'; // Import icons from react-icons -const page = () => { +const ContactUs: React.FC = () => { return ( -
page
- ) -} +
+
+
+
+ + আমাদের অবস্থান দেখুন + + + আমাদের অফিসিয়াল ঠিকানা এবং যোগাযোগ তথ্য + +
+
+
+ {/* Google Maps Section */} +
+ +
-export default page \ No newline at end of file + {/* Address and Contact Details Section */} +
+
+ {/* Address */} + +

ঠিকানা:

+

রামনা মিস্ত্রী পাড়া, চিলমারী, বাংলাদেশ, ৫৬৩০

+

চিলমারী, কুড়িগ্রাম

+
+ + {/* Contact Information */} + +

Contact

+
+ +

ইমেল: radiochilmari@gmail.com

+
+
+ +

ফোন: +৮৮০১৭১৯৪৬৪৯৮১, ০১৯৬৯-৯০৬০০৮

+
+
+ + ফেসবুক পেজ +
+
+
+
+
+
+
+
+
+ ); +}; + +export default ContactUs; diff --git a/src/app/(home)/our-show/page.tsx b/src/app/(home)/our-show/page.tsx index 983ebb8..94dbd1f 100644 --- a/src/app/(home)/our-show/page.tsx +++ b/src/app/(home)/our-show/page.tsx @@ -1,8 +1,15 @@ +import HoursCard from '@/components/ui/HoursCard' +import RdrsProgram from '@/components/ui/RdrsProgram' import React from 'react' const page = () => { return ( -
page
+
+
+ + +
+
) } diff --git a/src/assets/icons/31_RDRS%20Bangladesh%20_Logo.png b/src/assets/icons/31_RDRS%20Bangladesh%20_Logo.png new file mode 100644 index 0000000..17c0a71 Binary files /dev/null and b/src/assets/icons/31_RDRS%20Bangladesh%20_Logo.png differ diff --git a/src/assets/icons/images.jpeg b/src/assets/icons/images.jpeg new file mode 100644 index 0000000..2686a12 Binary files /dev/null and b/src/assets/icons/images.jpeg differ diff --git a/src/assets/icons/readio_icon.png b/src/assets/icons/readio_icon.png new file mode 100644 index 0000000..dcf7ad8 Binary files /dev/null and b/src/assets/icons/readio_icon.png differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_1.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_1.png" new file mode 100644 index 0000000..2c16fdb Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_1.png" differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_2.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_2.png" new file mode 100644 index 0000000..88cab5f Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_2.png" differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_3.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_3.png" new file mode 100644 index 0000000..2bbfcce Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_3.png" differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_4.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_4.png" new file mode 100644 index 0000000..22d7551 Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_4.png" differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_5.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_5.png" new file mode 100644 index 0000000..99d7b51 Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_5.png" differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_6.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_6.png" new file mode 100644 index 0000000..7e44789 Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_6.png" differ diff --git "a/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_7.png" "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_7.png" new file mode 100644 index 0000000..cd71704 Binary files /dev/null and "b/src/assets/images/RDRS/\340\246\260\340\247\207\340\246\241\340\246\277\340\246\223_\340\246\232\340\246\277\340\246\262\340\246\256\340\246\276\340\246\260\340\246\277_RDRS_7.png" differ diff --git a/src/components/pages/about/AboutUs.tsx b/src/components/pages/about/AboutUs.tsx new file mode 100644 index 0000000..7f93644 --- /dev/null +++ b/src/components/pages/about/AboutUs.tsx @@ -0,0 +1,120 @@ +'use client' +import React from "react"; +import { aboutUsData } from "@/contexts/aboutUsData"; +import Link from "next/link"; +import { motion } from "framer-motion"; + +const AboutUs: React.FC = () => { + const { title, address, contact, broadcast, description, audienceAndCoverage } = aboutUsData; + + return ( +
+
+ + {title} + + + {/* Address Section */} +
+ + ঠিকানা: + + {address.map((line, index) => ( +

{line}

+ ))} +
+ + {/* Contact Section */} +
+ + যোগাযোগ: + +

ফোন: {contact.phone.join(", ")}

+

+ ইমেল:{" "} + + {contact.email} + +

+

+ ফেসবুক:{" "} + + {contact.facebook} + +

+
+ + {/* Broadcast Details */} +
+ + সম্প্রচার বিবরণ: + +

ফ্রিকোয়েন্সি: {broadcast.frequency}

+

+ শুরুর বছর: পরীক্ষামূলক: {broadcast.yearStarted.test}, + আনুষ্ঠানিক: {broadcast.yearStarted.official} +

+

দেশ: {broadcast.country}

+

মালিকানা: {broadcast.ownership}

+

মালিক: {broadcast.owner}

+
+ + {/* Description Section */} +
+ + বিবরণ: + +

{description}

+
+ + {/* Audience & Coverage */} +
+ + শ্রোতা ও কভারেজ: + +

শ্রোতার ধরন: {audienceAndCoverage.audience.join(", ")}

+

ভাষা: {audienceAndCoverage.languages}

+

+ কভারেজ এলাকাসমূহ:{" "} + {audienceAndCoverage.coverage.join(", ")} +

+

বিষয়বস্তু: {audienceAndCoverage.contentType}

+

কভারেজ ধরণ: {audienceAndCoverage.coverageType}

+
+
+
+ ); +}; + +export default AboutUs; + diff --git a/src/components/pages/home/Home.tsx b/src/components/pages/home/Home.tsx index 8c86986..d4cbc08 100644 --- a/src/components/pages/home/Home.tsx +++ b/src/components/pages/home/Home.tsx @@ -1,28 +1,51 @@ -import React from 'react' -import { Alert } from "flowbite-react"; +import React from 'react'; import TopRegularProgramSlider from '@/components/ui/TopRegularProgramSlider'; import FacebookVideoEmbed from '@/components/ui/FacebookVideoEmbed'; import RadioChilmariFacebookPage from '@/components/ui/FacebookPage'; - - +import HoursCard from '@/components/ui/HoursCard'; +import OurFacebookNews from '@/components/ui/OurFacebookNews'; +import RdrsProgram from '@/components/ui/RdrsProgram'; const Home = () => { return ( -
+
+ + {/* Main Content */} +
+ + {/* Slider Section */} +
+ +
-Alert! + {/* Facebook Page Section */} +
+ +
- + {/* Facebook News Section */} +
+ +
+ + {/* Hours Card Section */} +
+ +
- + + {/* Video Embed Section */} +
+ {/* Uncomment if needed */} + +
-
- +
- ) -} + ); +}; -export default Home \ No newline at end of file +export default Home; diff --git a/src/components/ui/FacebookPage.tsx b/src/components/ui/FacebookPage.tsx index 9d10b3e..0b56e13 100644 --- a/src/components/ui/FacebookPage.tsx +++ b/src/components/ui/FacebookPage.tsx @@ -1,8 +1,19 @@ 'use client'; import { useEffect } from 'react'; +import OurFacebookNewsData from '@/contexts/OurFacebookNewsData'; +import readio_icon from '@/assets/icons/readio_icon.png'; +import Image from 'next/image'; -const RadioChilmariFacebookPage = () => { +interface RadioChilmariFacebookPageProps { + pageHref: string; + width?: number | string; + height?: number | string; +} + +const RadioChilmariFacebookPage = ({ + +}: RadioChilmariFacebookPageProps) => { useEffect(() => { // Load the Facebook SDK if (!document.getElementById('facebook-jssdk')) { @@ -15,19 +26,23 @@ const RadioChilmariFacebookPage = () => { document.body.appendChild(script); } }, []); - return ( -
- {/* Left Side: Text Content */} -
-

- Our Facebook Page +
+ +আমাদের অফিসিয়াল ফেসবুক পেজ l + +
+ + {/* Left Side: Text Content (Bangla) */} +
+ Image +

+ {OurFacebookNewsData.title_1}

-

- Stay updated all the time! Lorem ipsum dolor sit amet consectetur adipisicing elit. - Perspiciatis incidunt velit asperiores voluptate necessitatibus voluptates harum tempora atque quo. - Saepe vitae ad dicta neque voluptatibus ut officiis ducimus perspiciatis eos? +

+ {OurFacebookNewsData.description}

+
{/* Right Side: Facebook Page Embed */} @@ -54,6 +69,7 @@ const RadioChilmariFacebookPage = () => {

+
); }; diff --git a/src/components/ui/FacebookVideoEmbed.tsx b/src/components/ui/FacebookVideoEmbed.tsx index 3b2c1e8..93c7aed 100644 --- a/src/components/ui/FacebookVideoEmbed.tsx +++ b/src/components/ui/FacebookVideoEmbed.tsx @@ -2,19 +2,85 @@ const FacebookVideoEmbed = () => { return ( -
-
- +
+
+
+ {/* Video 1 */} +
+ + +
+ + {/* Video 2 */} +
+ +
+ + {/* Video 3 */} +
+ +
+ + {/* Video 4 */} +
+ +
+ + {/* Video 5 */} +
+ +
+
); diff --git a/src/components/ui/Footer.tsx b/src/components/ui/Footer.tsx index a9f4da8..6528e89 100644 --- a/src/components/ui/Footer.tsx +++ b/src/components/ui/Footer.tsx @@ -1,3 +1,4 @@ +import Link from 'next/link'; import { FC } from 'react'; const Footer: FC = () => { @@ -8,30 +9,43 @@ const Footer: FC = () => {
{/* Footer Bottom Section */} -
- +
+ {/* Left Section - Logos */} +
+ RDRS Logo + RadioChilmari Logo +
+ + {/* Center Section - Copyright Text */} + © ২০২৪{' '} - - Kazi Byte - - . . সর্বস্বত্ব সংরক্ষিত। + + সর্বস্বত্ব সংরক্ষিত। + - {/* Social Media Icons */} -
- + - - - - - - + + + + +
diff --git a/src/components/ui/HoursCard.tsx b/src/components/ui/HoursCard.tsx new file mode 100644 index 0000000..da31928 --- /dev/null +++ b/src/components/ui/HoursCard.tsx @@ -0,0 +1,89 @@ +'use client'; +import React, { useEffect, useState } from "react"; +import moment from "moment"; +import "moment/locale/bn"; // Import Bangla locale +import { motion } from 'framer-motion'; // Import framer-motion + +moment.locale("bn"); // Set moment to Bangla locale + +// Function to convert English numbers to Bangla +const toBanglaNumber = (number: string): string => { + const englishToBanglaMap: { [key: string]: string } = { + "0": "০", + "1": "১", + "2": "২", + "3": "৩", + "4": "৪", + "5": "৫", + "6": "৬", + "7": "৭", + "8": "৮", + "9": "৯", + }; + return number.replace(/[0-9]/g, (digit) => englishToBanglaMap[digit]); +}; + +const HoursCard: React.FC = () => { + const [currentTime, setCurrentTime] = useState(""); + + useEffect(() => { + const updateTime = () => { + // Format current time in 12-hour format with AM/PM and adjust to Bangladesh timezone + setCurrentTime( + toBanglaNumber( + moment().utcOffset("+06:00").format("dddd, LL, h:mm:ss A") + ) + ); + }; + + updateTime(); + const interval = setInterval(updateTime, 1000); // Update every second + + return () => clearInterval(interval); // Cleanup + }, []); + + const hours = [ + { day: "সোমবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + { day: "মঙ্গলবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + { day: "বুধবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + { day: "বৃহস্পতিবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + { day: "শুক্রবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + { day: "শনিবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + { day: "রবিবার", time: toBanglaNumber("২:৪৫ PM - ৮:০৫ PM") }, + ]; + + // Assign a background color to each day + const dayColors = [ + "bg-blue-100", "bg-green-100", "bg-yellow-100", + "bg-red-100", "bg-purple-100", "bg-pink-100", "bg-indigo-100" + ]; + + return ( +
+
+

+ অনুষ্ঠানের সময়সূচি +

+
+

বর্তমান সময়:

+

{currentTime}

+
+
    + {hours.map((hour, index) => ( + + {hour.day} + {hour.time} + + ))} +
+
+
+ ); +}; + +export default HoursCard; diff --git a/src/components/ui/Navbar.tsx b/src/components/ui/Navbar.tsx index 528e258..97eb753 100644 --- a/src/components/ui/Navbar.tsx +++ b/src/components/ui/Navbar.tsx @@ -1,36 +1,74 @@ -import React from 'react'; +'use client'; +import React, { useState, useEffect } from 'react'; import Image from 'next/image'; import Link from 'next/link'; +import { motion } from 'framer-motion'; const Navbar = () => { + const [scrolling, setScrolling] = useState(false); + + // Detect scrolling and apply blur effect + useEffect(() => { + const handleScroll = () => { + if (window.scrollY > 0) { + setScrolling(true); + } else { + setScrolling(false); + } + }; + + window.addEventListener('scroll', handleScroll); + return () => window.removeEventListener('scroll', handleScroll); + }, []); + return ( -
+ {/* Centered Logo */}
- - Logo - + + Logo +
{/* Right Side Links */} -
- - আমাদের সম্পর্কে - - - আমাদের শো - - - যোগাযোগ করুন - +
+ + আমাদের সম্পর্কে + + + আমাদের শো + + + যোগাযোগ করুন +
-
+
); }; diff --git a/src/components/ui/OurFacebookNews.tsx b/src/components/ui/OurFacebookNews.tsx new file mode 100644 index 0000000..98c11a0 --- /dev/null +++ b/src/components/ui/OurFacebookNews.tsx @@ -0,0 +1,64 @@ +'use client'; +import { AwaitedReactNode, JSXElementConstructor, Key, ReactElement, ReactNode, ReactPortal } from 'react'; +import OurFacebookNewsData from '@/contexts/OurFacebookNewsData'; +import { motion } from 'framer-motion'; // Import framer-motion + +const OurFacebookNews = () => { + return ( +
+ {/* Left Side: Text Content (Bangla) */} +
+

+ {OurFacebookNewsData.title} +

+

+ {OurFacebookNewsData.description} +

+

+ {OurFacebookNewsData.programs[0].type} +

+
    + {OurFacebookNewsData.programs[0].details.map((detail: string | number | bigint | boolean | ReactElement> | Iterable | ReactPortal | Promise | null | undefined, index: Key | null | undefined) => ( + + {detail} + + ))} +
+

+ {OurFacebookNewsData.programs[1].type} +

+

+ {OurFacebookNewsData.programs[1].details} +

+

+ আমাদের ফেইসবুক পেজে কেন যুক্ত হবেন? +

+
    + {OurFacebookNewsData.facebookPageReasons.map((reason: string | number | bigint | boolean | ReactElement> | Iterable | ReactPortal | Promise | null | undefined, index: Key | null | undefined) => ( + + {reason} + + ))} +
+

+ চোখ রাখুন Radio Chilmary-তে! +

+

+ {OurFacebookNewsData.closingMessage} +

+
+
+ ); +}; + +export default OurFacebookNews; diff --git a/src/components/ui/RdrsProgram.tsx b/src/components/ui/RdrsProgram.tsx new file mode 100644 index 0000000..33ba455 --- /dev/null +++ b/src/components/ui/RdrsProgram.tsx @@ -0,0 +1,71 @@ +'use client'; +import React from 'react'; +import Slider from 'react-slick'; +import 'slick-carousel/slick/slick.css'; +import 'slick-carousel/slick/slick-theme.css'; +import { RdrsProgramImages } from '@/contexts/RdrsProgram'; +import Image from 'next/image'; +import { StaticImport } from 'next/dist/shared/lib/get-img-props'; + +export default function RdrsProgram() { + const settings = { + dots: true, // Show dots for pagination + infinite: true, // Infinite scroll + speed: 500, // Transition speed + slidesToShow: 1, // Default: Show 1 slide at a time + slidesToScroll: 1, // Scroll 1 slide at a time + autoplay: true, // Autoplay the carousel + autoplaySpeed: 2500, // Autoplay speed (ms) + arrows: true, // Show navigation arrows + responsive: [ // Responsive settings + { + breakpoint: 1024, // For tablets and up (large screens) + settings: { + slidesToShow: 3, // Show 3 slides at a time + slidesToScroll: 1, + infinite: true, + dots: true, + }, + }, + { + breakpoint: 768, // For tablets (medium screens) + settings: { + slidesToShow: 2, // Show 2 slides at a time + slidesToScroll: 1, + infinite: true, + dots: true, + }, + }, + { + breakpoint: 480, // For mobile (small screens) + settings: { + slidesToShow: 1, // Show 1 slide at a time + slidesToScroll: 1, + infinite: true, + dots: true, + }, + }, + ], + }; + + return ( +
+
+নারীর অধিকার এবং নারী ও শিশু সম্পর্কিত প্রোগ্রামগুলি সচেতনতা সৃষ্টি, তথ্য প্রদান এবং সমাজে ইতিবাচক পরিবর্তন আনার জন্য প্রচারিত হয়। এসব প্রোগ্রামে নারীদের আইনি অধিকার, গার্হস্থ্য সহিংসতা, শিশুদের শিক্ষা ও সুরক্ষা, স্বাস্থ্য সচেতনতা, এবং নারী উদ্যোক্তাদের সাফল্য তুলে ধরা হয়। এছাড়া, শিশু শ্রম, পাচার ও নির্যাতন রোধে সচেতনতা তৈরি করা হয়, যা নারী ও শিশুদের নিরাপত্তা এবং সমান অধিকার নিশ্চিত করতে সহায়ক। +
+ + {RdrsProgramImages.map((image: string | StaticImport, index: React.Key | null | undefined) => ( +
+ {`Slide +
+ ))} +
+
+ ); +} diff --git a/src/components/ui/TopRegularProgramSlider.tsx b/src/components/ui/TopRegularProgramSlider.tsx index 3d20fee..a8d22a7 100644 --- a/src/components/ui/TopRegularProgramSlider.tsx +++ b/src/components/ui/TopRegularProgramSlider.tsx @@ -33,12 +33,13 @@ const TopRegularProgramSlider: React.FC = () => { }; return ( -
+
{/* Header */}
-

+

নিয়মিত প্রোগ্রাম সমূহ

+
{/* Swiper Slider */} @@ -92,8 +93,8 @@ const TopRegularProgramSlider: React.FC = () => { {/* Current Slide Indicator */}
- - Item {currentSlide} + + তালিকাভুক্ত {currentSlide}
diff --git a/src/contexts/OurFacebookNewsData.ts b/src/contexts/OurFacebookNewsData.ts new file mode 100644 index 0000000..c857ece --- /dev/null +++ b/src/contexts/OurFacebookNewsData.ts @@ -0,0 +1,49 @@ +// OurFacebookNewsData + + +export interface RadioChilmariData { + title: string; + title_1: string; + + description: string; + programs: { + type: string; + details: string[]; + }[]; + facebookPageReasons: string[]; + closingMessage: string; + } + + const OurFacebookNewsData: RadioChilmariData = { + title: "রেডিও চিলমারি : আপনার প্রিয় অনুষ্ঠানগুলোর সকল আপডেটের কেন্দ্রবিন্দু!", + title_1: "আপনার প্রিয় অনুষ্ঠানগুলোর সকল আপডেটের কেন্দ্রবিন্দু!", + description: + "সকল শ্রোতাদের জন্য উন্মুক্ত রেডিও চিলমারি, যেখানে আপনি পাবেন আপনার প্রিয় অনুষ্ঠানগুলোর সেরা আপডেট এবং তথ্য। আমাদের রেডিও চ্যানেল আপনাকে প্রতিদিন বিনোদন, শিক্ষা এবং তথ্যের সঙ্গে যুক্ত রাখে।", + programs: [ + { + type: "🎙️ নানা ধরনের অনুষ্ঠান:", + details: [ + "🎵 সঙ্গীতানুষ্ঠান", + "📚 শিক্ষামূলক প্রোগ্রাম", + "🗞️ সাম্প্রতিক খবর", + "👩‍👩‍👧‍👦 কমিউনিটি ভিত্তিক অনুষ্ঠান", + ], + }, + { + type: "📢 বিশেষ আয়োজনের আপডেট:", + details: [ + "যেকোনো বিশেষ অনুষ্ঠান, সরাসরি সম্প্রচার, অথবা নতুন সেগমেন্টের খবর পেতে Radio Chilmary আপনার প্রথম পছন্দ।", + ], + }, + ], + facebookPageReasons: [ + "👉 সকল অনুষ্ঠানের শিডিউল: আপনার প্রিয় অনুষ্ঠানগুলো কখন সম্প্রচারিত হবে তা জানতে আমাদের ফেইসবুক পেজ ফলো করুন।", + "👉 বিশেষ ঘোষণার আপডেট: নতুন শো, প্রতিযোগিতা এবং আরও অনেক কিছু।", + "👉 শ্রোতাদের মতামত ও প্রশ্নের উত্তর: আপনার মূল্যবান মতামত আমাদের কাছে গুরুত্বপূর্ণ।", + ], + closingMessage: + "আপনার প্রতিদিনের সঙ্গী, Radio Chilmary, সব খবর ও আপডেটের জন্য!", + }; + + export default OurFacebookNewsData; + \ No newline at end of file diff --git a/src/contexts/RdrsProgram.ts b/src/contexts/RdrsProgram.ts new file mode 100644 index 0000000..3940d21 --- /dev/null +++ b/src/contexts/RdrsProgram.ts @@ -0,0 +1,12 @@ +import im1 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_1.png" +import im2 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_2.png" +import im3 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_3.png" +import im4 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_4.png" +import im5 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_5.png" +import im6 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_6.png" +import im7 from "@/assets/images/RDRS/রেডিও_চিলমারি_RDRS_7.png" + + + + +export const RdrsProgramImages = [im1,im2,im3,im4,im5,im6,im7] \ No newline at end of file diff --git a/src/contexts/aboutUsData.ts b/src/contexts/aboutUsData.ts new file mode 100644 index 0000000..9e43c8a --- /dev/null +++ b/src/contexts/aboutUsData.ts @@ -0,0 +1,39 @@ +export const aboutUsData = { + title: "রেডিও চিলমারী", + address: [ + "আরডিআরএস চিলমারী ক্যাম্পাস", + "চিলমারী, কুড়িগ্রাম", + "রামনা মিস্ত্রী পাড়া, চিলমারী, বাংলাদেশ, ৫৬৩০", + ], + contact: { + phone: ["+৮৮০১৭১৯৪৬৪৯৮১", "০১৯৬৯-৯০৬০০৮"], + email: "radiochilmari@gmail.com", + facebook: "ফেসবুক পেজ", + }, + broadcast: { + frequency: "৯৯.২০ এফএম", + yearStarted: { + test: "২রা নভেম্বর, ২০১১", + official: "৩রা জুন, ২০১২", + }, + country: "বাংলাদেশ", + ownership: "বেসরকারি", + owner: "আরডিআরএস বাংলাদেশ", + }, + description: `রেডিও চিলমারী ৩রা জুন, ২০১২ তারিখে আনুষ্ঠানিকভাবে উদ্বোধন করা হয়। + ১৯৭২ সাল থেকে আরডিআরএস বাংলাদেশ রংপুর-দিনাজপুর অঞ্চলের দরিদ্র জনগণের সামাজিক, + অর্থনৈতিক এবং সাংস্কৃতিক উন্নয়নের জন্য কাজ করে আসছে। এর ধারাবাহিকতায়, একটি + কমিউনিটি রেডিও প্রতিষ্ঠার উদ্যোগ গ্রহণ করা হয়। "শোনো বাহে, জাগো বাহে" স্লোগান নিয়ে + রেডিও চালু হওয়ার পর থেকে শ্রোতার সংখ্যা ক্রমাগত বৃদ্ধি পাচ্ছে।`, + audienceAndCoverage: { + audience: ["কৃষক", "জেলে", "ছাত্র", "নারী", "ব্যবসায়ী"], + languages: "বাংলা", + coverage: [ + "সুন্দরগঞ্জ উপজেলা (গাইবান্ধা জেলা)", + "রৌমারী, রাজীবপুর, চিলমারী এবং উলিপুর উপজেলা (কুড়িগ্রাম জেলা)", + ], + contentType: "নারীর অধিকার", + coverageType: "স্থানীয়", + }, + }; + \ No newline at end of file diff --git a/src/layouts/RootLayout.tsx b/src/layouts/RootLayout.tsx index aa26a40..04e86de 100644 --- a/src/layouts/RootLayout.tsx +++ b/src/layouts/RootLayout.tsx @@ -19,9 +19,13 @@ export default async function RootLayout({ }>) { return ( + + + + -
+
{children}