From db08d1201c1dc58871508efa6578d3922ad4c283 Mon Sep 17 00:00:00 2001 From: Ebube Date: Mon, 18 Mar 2024 15:52:12 +0100 Subject: [PATCH 1/4] complete footer and home layout page created --- src/assets/images/socials/facebook.svg | 1 + src/assets/images/socials/instagram.svg | 1 + src/assets/images/socials/linkedin.svg | 1 + src/assets/images/socials/twitterx.svg | 1 + src/assets/images/socials/whatsapp.svg | 1 + src/assets/images/socials/youtube.svg | 1 + src/components/Footer/BottomFooterOne.tsx | 73 +++++++++++++++++++--- src/components/Footer/MidFooter.tsx | 2 +- src/components/Footer/TopFooterOneMenu.tsx | 2 +- src/components/Footer/index.tsx | 3 +- src/layouts/HomeLayout.tsx | 27 ++++++++ src/layouts/index.ts | 3 + src/pages/HomePage.tsx | 18 ++---- src/utils/data.tsx | 64 +++++++++++++++++++ 14 files changed, 174 insertions(+), 24 deletions(-) create mode 100644 src/assets/images/socials/facebook.svg create mode 100644 src/assets/images/socials/instagram.svg create mode 100644 src/assets/images/socials/linkedin.svg create mode 100644 src/assets/images/socials/twitterx.svg create mode 100644 src/assets/images/socials/whatsapp.svg create mode 100644 src/assets/images/socials/youtube.svg create mode 100644 src/layouts/HomeLayout.tsx create mode 100644 src/layouts/index.ts diff --git a/src/assets/images/socials/facebook.svg b/src/assets/images/socials/facebook.svg new file mode 100644 index 0000000..0948ce9 --- /dev/null +++ b/src/assets/images/socials/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/socials/instagram.svg b/src/assets/images/socials/instagram.svg new file mode 100644 index 0000000..e9848bd --- /dev/null +++ b/src/assets/images/socials/instagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/socials/linkedin.svg b/src/assets/images/socials/linkedin.svg new file mode 100644 index 0000000..2868dd3 --- /dev/null +++ b/src/assets/images/socials/linkedin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/socials/twitterx.svg b/src/assets/images/socials/twitterx.svg new file mode 100644 index 0000000..fe1257d --- /dev/null +++ b/src/assets/images/socials/twitterx.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/socials/whatsapp.svg b/src/assets/images/socials/whatsapp.svg new file mode 100644 index 0000000..2fac177 --- /dev/null +++ b/src/assets/images/socials/whatsapp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/socials/youtube.svg b/src/assets/images/socials/youtube.svg new file mode 100644 index 0000000..8f5e238 --- /dev/null +++ b/src/assets/images/socials/youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Footer/BottomFooterOne.tsx b/src/components/Footer/BottomFooterOne.tsx index 1398fc6..d7f420f 100644 --- a/src/components/Footer/BottomFooterOne.tsx +++ b/src/components/Footer/BottomFooterOne.tsx @@ -1,10 +1,69 @@ +import { footerCustomerLinks, footerSocialLinks } from "../../utils/data"; -const BottomFooterOne = () => { - return ( - - ) +interface FooterLinksProps { + href: string; + icon?: string; + text?: string; } -export default BottomFooterOne +const BottomFooterOne = () => { + const date: number = new Date().getFullYear(); + + return ( + + ); +}; + +export default BottomFooterOne; + +const SocialIconButtons = () => { + const icons = footerSocialLinks.map( + ({ href, icon }: FooterLinksProps, idx: number) => ( +
  • + + {icon && icon} + +
  • + ) + ); + + return ; +}; + +const CustomerLinks = () => { + const links = footerCustomerLinks.map( + ({ href, text }: FooterLinksProps, idx: number) => ( +
  • + + {text} + +
  • + ) + ); + return ( +
    + {links} +
    + ); +}; diff --git a/src/components/Footer/MidFooter.tsx b/src/components/Footer/MidFooter.tsx index e46e123..bab6a84 100644 --- a/src/components/Footer/MidFooter.tsx +++ b/src/components/Footer/MidFooter.tsx @@ -5,7 +5,7 @@ const MidFooter = () => {
    -

    My Bank and I

    +

    my bank and I

    diff --git a/src/components/Footer/TopFooterOneMenu.tsx b/src/components/Footer/TopFooterOneMenu.tsx index 36a4923..7323a4c 100644 --- a/src/components/Footer/TopFooterOneMenu.tsx +++ b/src/components/Footer/TopFooterOneMenu.tsx @@ -16,7 +16,7 @@ const TopFooterOneMenu: React.FC = ({ {subItems.map(({ href = "#", text }) => (
  • {href ? {text} : {text}}
  • diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx index 8bdfed9..2d488be 100644 --- a/src/components/Footer/index.tsx +++ b/src/components/Footer/index.tsx @@ -1,5 +1,6 @@ import Footer from "./Footer"; import TopFooterOne from "./TopFooterOne"; import MidFooter from "./MidFooter"; +import BottomFooterOne from "./BottomFooterOne"; -export { Footer, TopFooterOne, MidFooter }; +export { Footer, TopFooterOne, MidFooter, BottomFooterOne }; diff --git a/src/layouts/HomeLayout.tsx b/src/layouts/HomeLayout.tsx new file mode 100644 index 0000000..e0110c2 --- /dev/null +++ b/src/layouts/HomeLayout.tsx @@ -0,0 +1,27 @@ +import React, { ReactNode } from "react"; +import { + BottomFooterOne, + Header, + MidFooter, + TopFooterOne, + TopHeader, +} from "../components"; + +interface HomeLayoutProps { + children: ReactNode; +} + +const HomeLayout: React.FC = ({ children }) => { + return ( + <> + +
    + {children} + + + + + ); +}; + +export default HomeLayout; diff --git a/src/layouts/index.ts b/src/layouts/index.ts new file mode 100644 index 0000000..d04c9a0 --- /dev/null +++ b/src/layouts/index.ts @@ -0,0 +1,3 @@ +import HomeLayout from "./HomeLayout"; + +export { HomeLayout }; diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index 762da27..82af61b 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,23 +1,13 @@ import React from "react"; -import { - Hero, - Header, - TopHeader, - Requirements, - TopFooterOne, - MidFooter, -} from "../components"; +import { Hero, Requirements } from "../components"; +import { HomeLayout } from "../layouts"; const HomePage: React.FC = () => { return ( - <> - -
    + - - - + ); }; diff --git a/src/utils/data.tsx b/src/utils/data.tsx index 5ef3c25..3dd7fe5 100644 --- a/src/utils/data.tsx +++ b/src/utils/data.tsx @@ -1,6 +1,12 @@ import FBook from "../assets/icons/facebook.svg"; import Twitter from "../assets/icons/twitter.svg"; import Instagram from "../assets/icons/instagram.svg"; +import FBookWhite from "../assets/images/socials/facebook.svg"; +import LinkedInWhite from "../assets/images/socials/linkedin.svg"; +import XWhite from "../assets/images/socials/twitterx.svg"; +import WhatsappWhite from "../assets/images/socials/whatsapp.svg"; +import YoutubeWhite from "../assets/images/socials/youtube.svg"; +import InstagramWhite from "../assets/images/socials/instagram.svg"; export const top_header_data = [ { id: 1, name: "HOME" }, @@ -139,3 +145,61 @@ export const footerItems = [ ], }, ]; + +export const footerSocialLinks = [ + { + href: "https://www.facebook.com/FcmbMyBank/", + icon: FBookWhite, + }, + { + href: "https://twitter.com/myfcmb/", + icon: XWhite, + }, + { + href: "https://www.linkedin.com/company/first-city-monument-bank-ltd/", + icon: LinkedInWhite, + }, + { + href: "https://www.youtube.com/user/fcmbplc", + icon: YoutubeWhite, + }, + { + href: "https://www.instagram.com/myfcmb/", + icon: InstagramWhite, + }, + { + href: "https://api.whatsapp.com/send?phone=09099999814", + icon: WhatsappWhite, + }, +]; + +export const footerCustomerLinks = [ + { + text: "PRIVACY POLICY", + href: "https://www.fcmb.com/privacy-policy", + }, + { + text: "PRESS RELEASES", + href: "/press-releases", + }, + { + text: "SHARE PRICE", + href: "/", + }, + { + text: "WHISTLE BLOWER", + href: "/fcmb-whistle-blower-form", + }, + { + text: "FRAUD PREVENTION", + href: "/customer-service", + }, + { + text: "AML", + href: "/customer-service", + }, + { + text: "CAREERS", + href: "/career", + }, +]; From df6fe828e3ea18d6b717b7f5bf230ed0339a21c5 Mon Sep 17 00:00:00 2001 From: Ebube Date: Mon, 18 Mar 2024 17:23:04 +0100 Subject: [PATCH 2/4] added Terms and Condition Page --- src/components/Footer/BottomFooterOne.tsx | 2 +- src/components/Header/Header.tsx | 19 +- src/components/Header/HeaderMenuItem.tsx | 33 ++ .../Home/Requirements/FeatureText.tsx | 7 +- src/components/TsAndCs/Main.tsx | 428 ++++++++++++++++++ src/components/TsAndCs/index.ts | 3 + src/components/index.ts | 5 +- src/pages/TermsAndConditionPage.tsx | 13 + src/pages/index.ts | 2 + src/router/Router.tsx | 43 +- src/router/routes.tsx | 19 +- src/utils/data.tsx | 348 ++++++++++++++ 12 files changed, 890 insertions(+), 32 deletions(-) create mode 100644 src/components/Header/HeaderMenuItem.tsx create mode 100644 src/components/TsAndCs/Main.tsx create mode 100644 src/components/TsAndCs/index.ts create mode 100644 src/pages/TermsAndConditionPage.tsx diff --git a/src/components/Footer/BottomFooterOne.tsx b/src/components/Footer/BottomFooterOne.tsx index d7f420f..2819d90 100644 --- a/src/components/Footer/BottomFooterOne.tsx +++ b/src/components/Footer/BottomFooterOne.tsx @@ -62,7 +62,7 @@ const CustomerLinks = () => { ) ); return ( -
    +
    {links}
    ); diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 1c95973..21cad3b 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -1,13 +1,15 @@ import React, { useState, ChangeEvent } from "react"; import Logo from "../../assets/icons/logo.svg"; import Button from "../shared/Button"; -import { lowerMenuItems } from "../../utils/data"; +import { _lowerMenuItems } from "../../utils/data"; import Sidebar from "./Sidebar"; import { Link } from "react-router-dom"; +import HeaderMenuItem from "./HeaderMenuItem"; -type LowerMenuItem = { - id: string | number; +export type LowerMenuItem = { name: string; + linkPath: string; + subItems?: LowerMenuItem[]; }; type HiddenMenuItems = { @@ -88,14 +90,9 @@ const Header: React.FC = ({ />
    -
      - {lowerMenuItems.map((item: LowerMenuItem) => ( -
    • - {item.name} -
    • +
        + {_lowerMenuItems.map((item: LowerMenuItem, idx: number) => ( + ))}
      diff --git a/src/components/Header/HeaderMenuItem.tsx b/src/components/Header/HeaderMenuItem.tsx new file mode 100644 index 0000000..2cd44b3 --- /dev/null +++ b/src/components/Header/HeaderMenuItem.tsx @@ -0,0 +1,33 @@ +import React, { useState } from "react"; +import { LowerMenuItem } from "./Header"; + +interface MenuItemProps { + item: LowerMenuItem; +} + +const HeaderMenuItem: React.FC = ({ item }) => { + const [showSubMenu, setShowSubMenu] = useState(false); + + const toggleSubMenu = () => { + setShowSubMenu(!showSubMenu); + }; + + return ( +
    • + {item.name} + {showSubMenu && item.subItems && ( +
        + {item.subItems.map((subItem, index) => ( + + ))} +
      + )} +
    • + ); +}; + +export default HeaderMenuItem; diff --git a/src/components/Home/Requirements/FeatureText.tsx b/src/components/Home/Requirements/FeatureText.tsx index e4e9c44..094cebc 100644 --- a/src/components/Home/Requirements/FeatureText.tsx +++ b/src/components/Home/Requirements/FeatureText.tsx @@ -32,9 +32,12 @@ const FeatureText = () => { > *** Click here to apply -

      + Terms and conditions apply -

      + ); }; diff --git a/src/components/TsAndCs/Main.tsx b/src/components/TsAndCs/Main.tsx new file mode 100644 index 0000000..d8b30c2 --- /dev/null +++ b/src/components/TsAndCs/Main.tsx @@ -0,0 +1,428 @@ +import React from "react"; + +const Main = () => { + return ( +
      +
      +

      + PRIVACY POLICY +

      +

      + + 1.Your Privacy is important to us. + +

      +

      + This privacy statement sets out the privacy policy of + fcmbgroupplc.com, which provides a portal, or gateway, to the + financial services offered by the First City Monument Bank Limited and + the other members of the FCMB Group Plc (Collectively, “FCMB”). +

      +

      + This policy explains how we collect, share, use, and protect + information when you visit or use this website and any other online + services, platforms, or products offered by FCMB or any of its banking + and non-banking affiliates and subsidiaries that link to or reference + this policy (collectively, our “services”). +

      +

      + 1.1 FCMB and You +

      +

      + First City Monument Bank Limited is a private limited liability + company registered in the Federal Republic of Nigeria under RC No. + 46713. Its head-office is at Primrose Tower, 17A Tinubu Street, Lagos + State, Nigeria. +

      +

      + FCMB Group Plc hosts the fcmbgroupplc.com website and provides + technical support, access and links to the Local Sites of First City + Group members. fcmbgroupplc.com does not offer financial services or + products. Financial services and products may only be obtained by + registering with a Local Site. The First City Group provides financial + products and services to a global clientele through its affiliated + companies and branches located in 36 states and the Federal Capital + Territory in Nigeria, and in the UK. Privacy and personal data + protection principles vary from one country to another. When you + access or link to a Local Site, please read the privacy statement + issued by the Local Site to determine the policies that apply to + information or data maintained by the Local Site. +

      +

      + + 2. Information we may collect about you + +

      +

      + 2.1 Your Personal Information +

      +

      + At FCMB, we strive to meet your needs and provide you with exceptional + services. In the course of consuming our services through various + channels, such as forms, phone calls, correspondence, service point + interfaces, and other available channels, we collect information that + you provide to us. This information may include, but is not limited + to, contact data, log/Technical information, Financial Data, Marketing + and Communications Data, identity verification details (this includes + Personally Identifiable Information (PII), otherwise known as Personal + Information or Personal Data, which includes email address, phone + number, contact address, limited financial information, location data, + device data etc.) and documents, services consumed or desired, mode of + consumption, preferences, location, general events, and instructions + and transactions relating to the services. +

      +

      + The lawful basis we rely on for processing your Personal Information + are: +

      +
        +
      1. + Your Consent: Where you agree to us collecting your Personal + Information by using our Services. +
      2. +
      3. + We have a contractual obligation: Without your Personal Information, + we cannot provide our Services to you. +
      4. +
      5. + We have a legal obligation: To ensure we are fully compliant with + all applicable financial legislations such as Anti-Money Laundering + and Countering the Financing of Terrorism (AML/CFT) Laws, we must + collect and store your Personal Information. We protect against + fraud by checking your identity with your Personal Information. +
      6. +
      +

      + Additionally, to better serve your needs, we may utilize information + about you collected from third parties and service partners. It is + important to note that these third-party sources are not under the + control of FCMB, and we are not responsible for how they use the + information. +

      +

      + 2.2 Usage and other information +

      +

      + In addition to the personal information described above, we may + collect certain information about your use of our online services. For + example, we may capture the IP address of the device you use to + connect to the online service, the type of operating system and + browser you use, and information about the site you came from, the + parts of our online service you access, and the site you visit next. + FCMB or our third-party partners may also use cookies, web beacons or + other technologies to collect and store other information about your + visit to, or use of, our online services. In addition, we may later + associate the usage and other information we collect online with + personal information about you. +

      +

      + 2.3 FCMB Mobile +

      +

      + For the convenience of our FCMB customers, we provide access to our + products and services through our mobile applications and + mobile-optimized websites ("FCMB Mobile"). When you engage with us + through FCMB Mobile, we may collect certain information to enhance + your experience. This information may include unique device + identifiers for your mobile device, screen resolution, device + settings, location information, and analytical data regarding your + mobile device usage. Please note that we may request your permission + before collecting specific information, such as precise geo-location + data,- contact or image data and other personal identifiable + information through FCMB Mobile. Rest assured that any information + collected is handled with the utmost care and in accordance with our + privacy policy. +

      +

      + 2.4 Additional sources of information +

      +

      + We may also collect information about you from additional online and + offline sources including from co-branded partner sites or + commercially available third-party sources, such as credit reporting + agencies. We may combine this information with the personal and other + information we have collected about you under this Privacy Policy. +

      +

      + 2.5 Non-Personal Information +

      +

      + In order to achieve our goal of providing you with the best-in-class + service, we may also collect, store, use and transfer non-personal + information or anonymized data such as statistical or demographic + data. These may be collected or sourced during your visits to perform + certain tasks such as grant you access to some parts of our web site + or conduct research on your behaviour on our site in order to improve + our services. We will not disclose your information to any person + outside our organization except as described in this Privacy Policy. +

      +

      + + 3. Our Use of Information + +

      +

      + FCMB and/or subsidiaries may use or process the information discussed + above in a number of ways, such as to: +

      +
        +
      1. Manage your preferences;
      2. +
      3. + Create and manage any accounts or transactions you may have with us, + verify your identity, provide our services, and respond to your + inquiries; +
      4. +
      5. + Process your applications and transactions (including authorization, + clearing, chargebacks and other related dispute resolution + activities); +
      6. +
      7. + Protect against and prevent fraud, unauthorized transactions, claims + and other liabilities as well as enhance the security of your + account or our online services; +
      8. +
      9. + Provide, administer and communicate with you about our products, + services, offers, programs and promotions as well as those of our + merchants and partners; +
      10. +
      11. + Evaluate your interest in employment and contact you regarding + possible employment with FCMB; +
      12. +
      13. + Evaluate and improve our business, including developing new products + and services; +
      14. +
      15. To target advertisements, newsletters, and service updates;
      16. +
      17. As necessary to establish, exercise and defend legal rights;
      18. +
      19. + Perform analytics concerning your use of our online services, + including your responses to our emails and the pages and + advertisements you view; +
      20. +
      21. + As may be required by applicable laws and regulations, including for + compliance with Know Your Customers and risk assessment, Anti-Money + Laundering, anti-corruption and sanctions screening requirements, or + as requested by any judicial process, law enforcement or + governmental agency having or claiming jurisdiction over FCMB or + affiliates; +
      22. +
      23. + To use data analytics to improve our Website, products, or services, + and user experiences; +
      24. +
      25. + For other purposes for which we provide specific notice at the time + you provide or we collect your information. +
      26. +
      +

      + We may also use data that we collect on an aggregate or anonymous + basis (such that it does not identify any individual customers) for + various business purposes, where permissible under applicable laws and + regulations. +

      +

      + + 4. Cookies + +

      +

      + This website, along with most other major websites, uses cookies. + Cookies are pieces of information that a website transfers to the + cookie file on your computer’s hard disk. Cookies enable users to + navigate around the website and (where appropriate) enable us to + tailor the content to fit the needs of visitors who have accessed the + site. +

      +

      + Firstcitygroup.com uses two types of cookies on this website: +

      +
        +
      1. + Session cookies, which are temporary cookies that remain in the + cookie file of your computer until you close your browser (at which + point they are deleted). +
      2. +
      3. + Persistent or stored cookies that remain permanently on the cookie + file of your computer. +
      4. +
      +

      + Cookies cannot look into your computer and obtain information about + you or your family or read any material kept on your hard drive and, + unless you have logged onto an authenticated page, cookies cannot be + used to identify who you are. +

      +

      + Cookies cannot be used by anyone else who has access to the computer + to find out anything about you, other than the fact that someone using + the computer has visited a certain website. Cookies do not in any way + compromise the security of your computer. +

      +

      + Cookies will not be used to contact you for marketing purposes other + than by means of advertisements offered within this website. +

      +

      + Cookies may be used to record details of pages relating to particular + products and services that you have visited on this website. This is + to provide fcmb.com with generic usage statistics to allow the company + to improve this website and to provide you with information that may + interest you. +

      +

      + The web browsers of most computers are initially set up to accept + cookies. If you prefer, you can set your web browser to disable + cookies or to inform you when a website is attempting to add a cookie. + You can also delete cookies that have previously been added to your + computer’s cookie file. +

      +

      + You can set your browser to disable persistent cookies and/or session + cookies but if you disable session cookies, although you will be able + to view this website’s unsecured pages, you may not be able to log + onto any authenticated pages. +

      +

      + Please visit{" "} + + http://www.allaboutcookies.org/manage-cookies/ + {" "} + to discover how to disable and delete cookies. +

      +

      + + 5. Disclosures + +

      +

      + 5.1 Disclosures +

      +

      + We may divulge individual data to any individual performing review, + lawful, operational, or different services for us. We will utilize + data which does not identify the person for these exercises at + whatever point achievable. Data divulged to vendors or contractors for + operational purposes may not be re-disclosed to others by such a + vendor or contractor. We may reveal individual data when needed to do + as such by a court request, or court order. We may divulge individual + data as we esteem it proper to secure the wellbeing of our customers + or for an investigation identified with open security or to report an + action that has all the earmarks of being disregarding law. We may + divulge individual data to ensure the security and dependability of + this site and to take safety measures against accountability. +

      +

      + 5.2 Disclosures to Third Parties +

      +

      + Data about you that is accessible to you by means of fcmb.com, + including your personal data, can become subject to the legal systems + and laws in force in the country where the data is held, received or + stored by you or us. Such data can become subject to disclosure + pursuant to the laws of the country. +

      +

      + We may reveal your name and other personal data and other monetary + data about you at the request of regulatory agency or in connection + with an examination of us as a bank. This information could be + revealed to internal and external attorneys or auditors, and to others + whom we are required to make such revelations. +

      +

      + + 6. Information Security and Retention + +

      +

      + At FCMB, we are fully committed to protecting the information we + collect. We maintain administrative, technical, and physical controls + to actively safeguard the Personal Information you provide or we + collect. These controls are designed to protect against loss, theft, + unauthorized access, disclosure, copying, misuse, or modification. +

      +

      + Our security measures actively include secure servers, firewalls, data + encryption, and restricted access granted only to employees for + fulfilling their job responsibilities. +

      +

      + When using a password for any of your accounts, it is essential that + you actively ensure its confidentiality and refrain from sharing it + with anyone. +

      +

      + We actively conduct our business in accordance with these principles + to actively ensure the confidentiality and protection of your Personal + Information. While transmitting information online may not be entirely + secure, we actively take all reasonable steps to ensure the security + and protection of your Personal Information. +

      +

      + We will only retain personal information on our servers for as long as + it is actively necessary while providing services to you. In the event + you close your account, we actively store your information on our + servers to comply with regulatory obligations and actively monitor, + detect, and prevent fraud. Any retention of your Personal Data is + solely for such length of time as may be required by law, regulation, + and the internal policies of FCMB, her members and/or affiliates. +

      +

      + 6.1 Data Protection on the Internet +

      +

      + At FCMB we utilize encryption innovation to ensure the transmission of + data to or from you by means of fcmb.com. For security reasons and to + protect the security of your information, access to fcmb.com is + restricted to authorized users only. However, because information + about you, your account data and other transactions can be accessed + through a public network, the Internet, there can be no guarantee that + your account information will remain secure and you accept the risk + that unauthorized persons may view such information. If you believe + that an unauthorized person has accessed your information, please + contact the Bank immediately. +

      +

      + + 7. Updates to this Policy + +

      +

      + From time to time, we may change, amend or review this Privacy Policy + from time to time to reflect new services or changes in our Privacy + Policy and place any updates on this page. All changes made will be + posted on this page and where changes will materially affect you, we + will notify you of this change by placing a notice online or via mail. + If you keep using our Services, you consent to all amendments of this + Privacy Policy. +

      +

      + + 8. Contact us + +

      +

      + For issues relating to personal data, please contact us via any of the + below: +

      +

      + Corporate Address: Primrose Tower, 17A, Tinubu Street, Marina, Lagos +

      +

      Telephone: 07003290000, 01-2798800

      +

      + Email: customerservice@fcmb.com +

      +

      + Whatsapp: (+234) 09099999814 or (+234) 09099999815 +

      +
      +
      + ); +}; + +export default Main; diff --git a/src/components/TsAndCs/index.ts b/src/components/TsAndCs/index.ts new file mode 100644 index 0000000..7980d4a --- /dev/null +++ b/src/components/TsAndCs/index.ts @@ -0,0 +1,3 @@ +import Main from "./Main"; + +export { Main as TsAndCs }; diff --git a/src/components/index.ts b/src/components/index.ts index c5a1cd8..8423231 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -5,5 +5,6 @@ export * from "./shared"; export * from "./Footer"; export * from "./DashboardLayout"; export * from "./Icons"; -export * from './Dashboard' -export * from './Cards' +export * from "./Dashboard"; +export * from "./Cards"; +export * from "./TsAndCs"; diff --git a/src/pages/TermsAndConditionPage.tsx b/src/pages/TermsAndConditionPage.tsx new file mode 100644 index 0000000..a273710 --- /dev/null +++ b/src/pages/TermsAndConditionPage.tsx @@ -0,0 +1,13 @@ +import React from "react"; +import { HomeLayout } from "../layouts"; +import { TsAndCs } from "../components"; + +const TermsAndConditionPage = () => { + return ( + + + + ); +}; + +export default TermsAndConditionPage; diff --git a/src/pages/index.ts b/src/pages/index.ts index 10a23d4..32f4957 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -6,6 +6,7 @@ import DashboardLegalsPage from "./DashboardLegalsPage"; import DashboardProfilePage from "./DashboardProfilePage"; import DashboardVerificationPage from "./DashboardVerificationPage"; import DashboardpaymentsPage from "./DashboardPaymentsPage"; +import TermsAndConditionPage from "./TermsAndConditionPage"; export { HomePage, @@ -16,4 +17,5 @@ export { DashboardProfilePage, DashboardVerificationPage, DashboardpaymentsPage, + TermsAndConditionPage, }; diff --git a/src/router/Router.tsx b/src/router/Router.tsx index 3cbe20f..f03b3e2 100644 --- a/src/router/Router.tsx +++ b/src/router/Router.tsx @@ -1,6 +1,16 @@ import { Route, Routes } from "react-router-dom"; import { RouteHandler } from "./routes"; -import { GetStartedPage, HomePage, LoginPage, DashboardHomePage, DashboardLegalsPage, DashboardProfilePage, DashboardVerificationPage, DashboardpaymentsPage } from "../pages"; +import { + GetStartedPage, + HomePage, + LoginPage, + DashboardHomePage, + DashboardLegalsPage, + DashboardProfilePage, + DashboardVerificationPage, + DashboardpaymentsPage, + TermsAndConditionPage, +} from "../pages"; import { DashboardAuth } from "../components"; const Routers = () => { @@ -9,14 +19,33 @@ const Routers = () => { } /> } /> } /> + } + /> }> - } /> - } /> - } /> - } /> - } /> + } + /> + } + /> + } + /> + } + /> + } + /> - Error Page} /> + Error Page} /> ); }; diff --git a/src/router/routes.tsx b/src/router/routes.tsx index af17bd3..210eff6 100644 --- a/src/router/routes.tsx +++ b/src/router/routes.tsx @@ -1,10 +1,11 @@ export class RouteHandler { - static homepage = "/" - static loginpage = '/login' - static getStarted = "/get-started" - static dashboardHome = '/dashboard/home' - static dashboardProfile = '/dashboard/profile' - static dashboardVerification = '/dashboard/verification' - static dashboardPayments = '/dashboard/payments' - static dashboardLegals = '/dashboard/legals' -} \ No newline at end of file + static homepage = "/"; + static loginpage = "/login"; + static getStarted = "/get-started"; + static dashboardHome = "/dashboard/home"; + static dashboardProfile = "/dashboard/profile"; + static dashboardVerification = "/dashboard/verification"; + static dashboardPayments = "/dashboard/payments"; + static dashboardLegals = "/dashboard/legals"; + static termsAndConditions = "/terms-and-conditions"; +} diff --git a/src/utils/data.tsx b/src/utils/data.tsx index 3dd7fe5..e3e1a9b 100644 --- a/src/utils/data.tsx +++ b/src/utils/data.tsx @@ -48,6 +48,354 @@ export const lowerMenuItems = [ }, ]; +export const _lowerMenuItems = [ + { + name: "PERSONAL BANKING", + linkPath: "/personal-banking", + subItems: [ + { + name: "CURRENT ACCOUNTS", + linkPath: "/current-accounts", + subItems: [ + { + name: "CLASSIC CURRENT ACCOUNT", + linkPath: "/personal-classic-current-account", + }, + { + name: "PREMIUM CURRENT ACCOUNT", + linkPath: "/premium-current-account", + }, + { + name: "PERSONAL BUSINESS ACCOUNT", + linkPath: "/personal-business-account", + }, + { + name: "DOMICILIARY CURRENT ACCOUNT", + linkPath: "/domiciliary-current-account", + }, + ], + }, + { + name: "SAVINGS ACCOUNTS", + linkPath: "/savings-accounts", + subItems: [ + { name: "FCMB EASY ACCOUNT", linkPath: "/easy-account" }, + { name: "KIDS (0-17 YRS)", linkPath: "/kids" }, + { name: "FLEXX (18-30 YRS)", linkPath: "/flexx-account" }, + { + name: "CLASSIC SAVINGS ACCOUNT", + linkPath: "/classic-savings-account", + }, + { + name: "PREMIUM SAVINGS ACCOUNT", + linkPath: "/fcmb-premium-savings-account", + }, + { + name: "FCMB SALARY SAVINGS ACCOUNT", + linkPath: "/fcmb-salary-savings-account", + }, + { + name: "DOMICILIARY SAVINGS ACCOUNT", + linkPath: "/domiciliary-savings-account", + }, + ], + }, + { + name: "INVESTMENTS", + linkPath: "/investment-accounts", + subItems: [ + { name: "FIXED DEPOSITS", linkPath: "/fixed-deposits" }, + { name: "GRO (App)", linkPath: "/GRO" }, + { name: "GRO (Web)", linkPath: "https://www.investwithgro.com/" }, + { + name: "I-NEST SAVING", + linkPath: "https://i-nest.fcmb.com/#/welcome", + }, + { name: "CALL DEPOSITS", linkPath: "/call-deposits" }, + { + name: "EDUCATION INVESTMENT PLAN", + linkPath: "/education-investment", + }, + { + name: "MUTUAL FUNDS", + linkPath: "https://www.fcmbassetmanagement.com/mutual-funds/", + }, + ], + }, + { + name: "LOANS AND CREDIT CARDS", + linkPath: "/loans-and-credit-cards", + subItems: [ + { name: "FASTCASH", linkPath: "/fastcash" }, + { name: "SALARY PLUS LOAN", linkPath: "/salary-plus-loan" }, + { name: "PREMIUM SALARY LOAN", linkPath: "/premium-salary-loan" }, + { name: "AUTO LOAN", linkPath: "/auto-loan" }, + { name: "AIRTIME LOAN", linkPath: "/airtime-loan" }, + { name: "CREDIT CARDS", linkPath: "/credit-cards" }, + { + name: "EASYLIFT LOAN", + linkPath: "https://easyliftloanform.fcmb.com", + }, + { name: "MORTGAGE", linkPath: "http://mortgage.fcmb.com/" }, + ], + }, + { + name: "NON-RESIDENT NIGERIAN (NRN) BANKING", + linkPath: "https://www.fcmb.com/non-resident-nigerian", + }, + { + name: "WAYS TO BANK", + linkPath: "/ways-to-bank", + subItems: [ + { name: "FCMB MOBILE", linkPath: "/fcmb-mobile" }, + { + name: "RETAIL INTERNET BANKING", + linkPath: "https://ibank.fcmb.com/", + }, + { name: "USSD BANKING", linkPath: "/ussd" }, + { name: "OUR BRANCH NETWORK", linkPath: "/branch-network" }, + { name: "OUR ATM NETWORK", linkPath: "/atm-network" }, + { name: "FLASHMECASH", linkPath: "/flashme-cash" }, + { name: "OUR CARDS", linkPath: "/our-cards" }, + { name: "FCMB ELECTRONIC CHANNELS", linkPath: "/e-channels" }, + { name: "AGENT BANKING", linkPath: "/agent-banking" }, + { + name: "FCMB SECURE COMMUNICATION", + linkPath: "/secure-communication", + }, + { name: "TEMI", linkPath: "/temi" }, + ], + }, + { name: "BANCASSURANCE", linkPath: "/bancassurance" }, + ], + }, + { + name: "BUSINESS BANKING", + linkPath: "/business-banking", + subItems: [ + { + name: "PROPOSITIONS", + linkPath: "", + subItems: [ + { name: "SHEVENTURES", linkPath: "/she-ventures" }, + { name: "BUSINESS ZONE", linkPath: "https://businesszone.fcmb.com/" }, + { + name: "FOOD BUSINESS SUPPORT", + linkPath: "https://www.fcmb.com/food-business-support/", + }, + { name: "SCHOOL BUSINESS SUPPORT", linkPath: "/school-support" }, + ], + }, + { + name: "CURRENT ACCOUNTS", + linkPath: "/business-current-accounts", + subItems: [ + { + name: "CORPORATE CURRENT ACCOUNT", + linkPath: "/corporate-current-account", + }, + { name: "FCMB BUSINESS ACCOUNT", linkPath: "/fcmb-business-account" }, + { + name: "DOMICILIARY CURRENT ACCOUNT", + linkPath: "/business-domiciliary-current-account", + }, + ], + }, + { + name: "SAVINGS ACCOUNTS", + linkPath: "/node/178", + subItems: [ + { + name: "BUSINESS SAVINGS ACCOUNT", + linkPath: "/business-savings-account", + }, + ], + }, + { + name: "LOANS", + linkPath: "/business-loans", + subItems: [ + { + name: "SME DEVELOPMENT FINANCE FACILITY", + linkPath: "/sme-development-finance-facility", + }, + { + name: "SME ASSET FINANCE FACILITY", + linkPath: "/sme-asset-finance-facility", + }, + { + name: "SME WORKING CAPITAL FACILITY", + linkPath: "/sme-working-capital-facility", + }, + { name: "QUICK LOAN", linkPath: "/quick-loan" }, + { + name: "SME INVOICE DISCOUNTING FINANCE (IDF) FACILITY", + linkPath: "/invoice-discounting-loan", + }, + { + name: "SME LOCAL PURCHASE ORDER (LPO) FINANCE FACILITY", + linkPath: "/local-purchase-order-loan", + }, + ], + }, + { name: "BONDS & GUARANTEES", linkPath: "/bonds-and-guarantees" }, + { name: "INTERVENTION FUNDS", linkPath: "/intervention-funds" }, + { name: "TRADE SERVICE", linkPath: "/trade-service" }, + { + name: "PAYMENT & COLLECTION", + linkPath: "/payment-and-collection", + subItems: [ + { name: "COLLECTION SOLUTIONS", linkPath: "/collection-solutions" }, + { name: "PAYMENT SOLUTIONS", linkPath: "/payment-solutions" }, + ], + }, + { + name: "WAYS TO BANK", + linkPath: "/business-ways-to-bank", + subItems: [ + { + name: "BUSINESS INTERNET BANKING", + linkPath: "https://ibank.fcmb.com/corporate/BbgLoginScreenUI.aspx", + }, + { + name: "CORPORATE INTERNET BANKING", + linkPath: "https://www.fcmbonline.com/", + }, + { name: "OUR ATM NETWORK", linkPath: "/atm-network2" }, + { name: "FCMB ONLINE", linkPath: "/fcmb-online-business" }, + { + name: "FCMB ELECTRONIC CHANNELS", + linkPath: "https://www.fcmb.com/e-channels", + }, + { name: "FCMB BUSINESS APP", linkPath: "/FCMB-business-app" }, + ], + }, + ], + }, + { + name: "CORPORATE BANKING", + linkPath: "/corporate-banking", + subItems: [ + { + name: "FOREIGN EXCHANGE SERVICES", + linkPath: "/foreign-exchange-services", + }, + { name: "TRADE SERVICES", linkPath: "/node/166" }, + { name: "CASH MANAGEMENT SOLUTIONS", linkPath: "/cash-management" }, + { name: "CORPORATE FINANCE", linkPath: "/corporate-finance" }, + ], + }, + { + name: "GROUP & SUBSIDIARIES", + linkPath: "", + subItems: [ + { name: "FCMB GROUP PLC", linkPath: "https://www.fcmbgroup.com/" }, + { + name: "CSL STOCKBROKERS", + linkPath: "https://www.cslstockbrokers.com/", + }, + { + name: "FCMB CAPITAL MARKETS", + linkPath: "https://www.fcmbcapitalmarketsng.com/", + }, + { + name: "FCMB ASSET MANAGEMENT", + linkPath: "https://www.fcmbassetmanagement.com/index/", + }, + { + name: "FCMB MICROFINANCE BANK", + linkPath: "/fcmb-microfinance-initiative", + }, + { name: "FCMB UK", linkPath: "http://www.fcmbuk.com/" }, + { + name: "FCMB PENSIONS LIMITED", + linkPath: "https://www.fcmbpensions.com/", + }, + { + name: "CREDIT DIRECT LIMITED", + linkPath: "https://www.creditdirect.ng", + }, + { name: "FCMB TRUSTEES", linkPath: "http://fcmbtrustees.com/" }, + ], + }, + { + name: "ABOUT US", + linkPath: "/about-us", + subItems: [ + { + name: "OUR VISION/MISSION/VALUES", + linkPath: "/about-us/vision-mision-core-values", + }, + { name: "OUR HISTORY", linkPath: "/about-us/our-history" }, + { + name: "INVESTOR RELATIONS", + linkPath: "http://www.fcmbgroup.com/investor-relations", + }, + { name: "CSR", linkPath: "/corporate-social-responsibility/index.html" }, + { name: "SUSTAINABILITY", linkPath: "/sustainability/index.html" }, + { name: "OUR LEADERSHIP", linkPath: "/about-us/our-leadership" }, + { name: "BOARD OF DIRECTORS", linkPath: "/about-us/board-of-directors" }, + { + name: "MEDIA RELATIONS", + linkPath: "/media-relations", + subItems: [ + { name: "PRESS RELEASES", linkPath: "/press-releases" }, + { name: "MEDIA STATEMENTS", linkPath: "/press-statements" }, + ], + }, + { name: "AWARDS AND RECOGNITION", linkPath: "/awards" }, + { + name: "OUR POLICY", + linkPath: "/our-policies", + subItems: [ + { name: "BUSINESS CONTINUITY", linkPath: "/business-continuity" }, + { + name: "CORPORATE GOVERNANCE POLICY", + linkPath: "/corporate-governance", + }, + { name: "PRIVACY POLICY", linkPath: "/privacy-policy" }, + { name: "QUALITY POLICY", linkPath: "/quality-policy" }, + ], + }, + ], + }, + { + name: "MY BANK AND I", + linkPath: "", + subItems: [ + { name: "TELEPHONE SELF SERVICE", linkPath: "/telephone-self-service" }, + { + name: "CURRENT CAMPAIGNS/PROMOS", + linkPath: "/current-campaigns-promos", + subItems: [ + { + name: "BOOK YOUR FLIGHTS AND PAY IN INSTALMENTS WITH FCMB", + linkPath: "/247travels", + }, + { name: "REFER AND WIN", linkPath: "/refer-and-win" }, + { name: "CARD DISCOUNTS", linkPath: "/card-discounts" }, + { + name: "FLEXX WRITING CHALLENGE", + linkPath: "https://flexxzone.fcmb.com/writing-challenge/", + }, + { + name: "FLEXXPRENEUR", + linkPath: + "https://flexxzone.fcmb.com/2020/07/flexxpreneur-is-back-2/", + }, + { + name: "3-MONTH FREE BANKING", + linkPath: "https://www.fcmb.com/campaign/smebanking", + }, + ], + }, + { name: "CAREERS", linkPath: "/career" }, + { name: "CUSTOMER FEEDBACK", linkPath: "/customer-feedback" }, + { name: "CUSTOMER SERVICE", linkPath: "/customer-service" }, + ], + }, +]; + export const socialsIcons = [ { name: "facebook", image: FBook }, { name: "twitter", image: Twitter }, From dde40725932d19f77e8e36802f6a05db98d6cb2a Mon Sep 17 00:00:00 2001 From: Ebube Date: Mon, 18 Mar 2024 17:42:36 +0100 Subject: [PATCH 3/4] added pages for top header nav links --- src/components/Header/TopHeader.tsx | 28 +++++++++++++++++++--------- src/pages/BusinessBankingPage.tsx | 8 ++++++++ src/pages/CooperateBankingPage.tsx | 12 ++++++++++++ src/pages/PersonalBankingPage.tsx | 12 ++++++++++++ src/pages/TermsAndConditionPage.tsx | 2 +- src/pages/index.ts | 6 ++++++ src/router/Router.tsx | 7 +++++++ src/router/routes.tsx | 3 +++ src/utils/data.tsx | 9 +++++---- 9 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 src/pages/BusinessBankingPage.tsx create mode 100644 src/pages/CooperateBankingPage.tsx create mode 100644 src/pages/PersonalBankingPage.tsx diff --git a/src/components/Header/TopHeader.tsx b/src/components/Header/TopHeader.tsx index 8eb83fb..51fc350 100644 --- a/src/components/Header/TopHeader.tsx +++ b/src/components/Header/TopHeader.tsx @@ -1,5 +1,7 @@ import { top_header_data } from "../../utils/data"; +import { Link } from "react-router-dom"; import styles from "./header.module.css"; +import { RouteHandler } from "../../router/routes"; const TopHeader = () => { return ( @@ -7,28 +9,36 @@ const TopHeader = () => {
        - {top_header_data.map(({ id, name }) => ( + {top_header_data.map(({ id, name, href }) => (
      • - + {name} - +
      • ))}
      diff --git a/src/pages/BusinessBankingPage.tsx b/src/pages/BusinessBankingPage.tsx new file mode 100644 index 0000000..5185ecc --- /dev/null +++ b/src/pages/BusinessBankingPage.tsx @@ -0,0 +1,8 @@ +import React from "react"; +import { HomeLayout } from "../layouts"; + +const BusinessBankingPage: React.FC = () => { + return Business Banking; +}; + +export default BusinessBankingPage; diff --git a/src/pages/CooperateBankingPage.tsx b/src/pages/CooperateBankingPage.tsx new file mode 100644 index 0000000..1a0f845 --- /dev/null +++ b/src/pages/CooperateBankingPage.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import { HomeLayout } from '../layouts' + +const CooperateBankingPage: React.FC = () => { + return ( + + Cooperate Banking + + ) +} + +export default CooperateBankingPage diff --git a/src/pages/PersonalBankingPage.tsx b/src/pages/PersonalBankingPage.tsx new file mode 100644 index 0000000..95be387 --- /dev/null +++ b/src/pages/PersonalBankingPage.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import { HomeLayout } from '../layouts' + +const PersonalBankingPage: React.FC = () => { + return ( + + Personal Banking + + ) +} + +export default PersonalBankingPage diff --git a/src/pages/TermsAndConditionPage.tsx b/src/pages/TermsAndConditionPage.tsx index a273710..b2c83c2 100644 --- a/src/pages/TermsAndConditionPage.tsx +++ b/src/pages/TermsAndConditionPage.tsx @@ -2,7 +2,7 @@ import React from "react"; import { HomeLayout } from "../layouts"; import { TsAndCs } from "../components"; -const TermsAndConditionPage = () => { +const TermsAndConditionPage: React.FC = () => { return ( diff --git a/src/pages/index.ts b/src/pages/index.ts index 32f4957..91bd4d9 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -7,6 +7,9 @@ import DashboardProfilePage from "./DashboardProfilePage"; import DashboardVerificationPage from "./DashboardVerificationPage"; import DashboardpaymentsPage from "./DashboardPaymentsPage"; import TermsAndConditionPage from "./TermsAndConditionPage"; +import PersonalBankingPage from "./PersonalBankingPage"; +import BusinessBankingPage from "./BusinessBankingPage"; +import CooperateBankingPage from "./CooperateBankingPage"; export { HomePage, @@ -18,4 +21,7 @@ export { DashboardVerificationPage, DashboardpaymentsPage, TermsAndConditionPage, + PersonalBankingPage, + BusinessBankingPage, + CooperateBankingPage }; diff --git a/src/router/Router.tsx b/src/router/Router.tsx index f03b3e2..f4fe8a0 100644 --- a/src/router/Router.tsx +++ b/src/router/Router.tsx @@ -10,6 +10,9 @@ import { DashboardVerificationPage, DashboardpaymentsPage, TermsAndConditionPage, + BusinessBankingPage, + CooperateBankingPage, + PersonalBankingPage, } from "../pages"; import { DashboardAuth } from "../components"; @@ -23,6 +26,10 @@ const Routers = () => { path={RouteHandler.termsAndConditions} element={} /> + } /> + } /> + } /> + }> Date: Mon, 18 Mar 2024 17:49:55 +0100 Subject: [PATCH 4/4] fix build error --- src/components/Header/TopHeader.tsx | 1 - src/components/TsAndCs/Main.tsx | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/Header/TopHeader.tsx b/src/components/Header/TopHeader.tsx index 51fc350..5996b66 100644 --- a/src/components/Header/TopHeader.tsx +++ b/src/components/Header/TopHeader.tsx @@ -1,7 +1,6 @@ import { top_header_data } from "../../utils/data"; import { Link } from "react-router-dom"; import styles from "./header.module.css"; -import { RouteHandler } from "../../router/routes"; const TopHeader = () => { return ( diff --git a/src/components/TsAndCs/Main.tsx b/src/components/TsAndCs/Main.tsx index d8b30c2..d6e24a6 100644 --- a/src/components/TsAndCs/Main.tsx +++ b/src/components/TsAndCs/Main.tsx @@ -1,6 +1,6 @@ import React from "react"; -const Main = () => { +const Main: React.FC = () => { return (