|
1 | | -import { Dispatch, FC, MouseEvent, SetStateAction, useState } from 'react' |
| 1 | +import { FC } from 'react' |
2 | 2 |
|
3 | | -import { ContactSupportModal, OrderContractModal, PrivacyPolicyModal, TermsModal } from '../modals' |
4 | | -import { ProfileProvider } from '../profile-provider' |
5 | | -import { Facebook, Instagram, LinkedIn, Twitter, Youtube } from '../social-links' |
6 | | - |
7 | | -import styles from './PageFooter.module.scss' |
| 3 | +// eslint-disable-next-line @typescript-eslint/no-explicit-any |
| 4 | +declare let tcUniNav: any |
8 | 5 |
|
9 | 6 | const PageFooter: FC<{}> = () => { |
10 | 7 |
|
11 | | - const [isContactSupportModalOpen, setIsContactSupportModalOpen]: [boolean, Dispatch<SetStateAction<boolean>>] = useState<boolean>(false) |
12 | | - const [isOrderContractModalOpen, setIsOrderContractModalOpen]: [boolean, Dispatch<SetStateAction<boolean>>] = useState<boolean>(false) |
13 | | - const [isPrivacyModalOpen, setIsPrivacyModalOpen]: [boolean, Dispatch<SetStateAction<boolean>>] = useState<boolean>(false) |
14 | | - const [isTermsModalOpen, setIsTermsModalOpen]: [boolean, Dispatch<SetStateAction<boolean>>] = useState<boolean>(false) |
15 | | - |
16 | | - function handleClick(event: MouseEvent<HTMLAnchorElement>, setter: Dispatch<SetStateAction<boolean>>): void { |
17 | | - event.preventDefault() |
18 | | - setter(true) |
19 | | - } |
20 | | - |
21 | | - return ( |
22 | | - <div className={styles['footer-wrap']}> |
23 | | - |
24 | | - <ProfileProvider> |
25 | | - <ContactSupportModal |
26 | | - isOpen={isContactSupportModalOpen} |
27 | | - onClose={() => setIsContactSupportModalOpen(false)} |
28 | | - /> |
29 | | - </ProfileProvider> |
| 8 | + const navElementId: string = 'footer-nav-el' |
30 | 9 |
|
31 | | - <OrderContractModal |
32 | | - isOpen={isOrderContractModalOpen} |
33 | | - onClose={() => setIsOrderContractModalOpen(false)} |
34 | | - /> |
35 | | - |
36 | | - <PrivacyPolicyModal |
37 | | - isOpen={isPrivacyModalOpen} |
38 | | - onClose={() => setIsPrivacyModalOpen(false)} |
39 | | - /> |
40 | | - |
41 | | - <TermsModal |
42 | | - isOpen={isTermsModalOpen} |
43 | | - onClose={() => setIsTermsModalOpen(false)} |
44 | | - /> |
45 | | - |
46 | | - <div className={styles['footer-inner']}> |
47 | | - <div className={styles.utils}> |
48 | | - <div> |
49 | | - <span> |
50 | | - © |
51 | | - {(new Date()) |
52 | | - .getFullYear()} |
53 | | - {' '} |
54 | | - Topcoder |
55 | | - </span> |
56 | | - <a |
57 | | - href={window.location.href} |
58 | | - onClick={e => handleClick(e, setIsContactSupportModalOpen)} |
59 | | - > |
60 | | - Support |
61 | | - </a> |
62 | | - {/* TODO: add Report a bug functionality to send to zendesk |
63 | | - https://topcoder.atlassian.net/browse/PROD-1864 |
64 | | - <a href='#'>See a Bug?</a> */} |
65 | | - </div> |
66 | | - <div> |
67 | | - <a |
68 | | - href={window.location.href} |
69 | | - onClick={e => handleClick(e, setIsTermsModalOpen)} |
70 | | - > |
71 | | - Terms |
72 | | - </a> |
73 | | - <a |
74 | | - href={window.location.href} |
75 | | - onClick={e => handleClick(e, setIsPrivacyModalOpen)} |
76 | | - > |
77 | | - Privacy Policy |
78 | | - </a> |
79 | | - </div> |
80 | | - </div> |
81 | | - <div className={styles.social}> |
82 | | - <Facebook /> |
83 | | - <Youtube /> |
84 | | - <LinkedIn /> |
85 | | - <Twitter /> |
86 | | - <Instagram /> |
87 | | - </div> |
88 | | - </div> |
89 | | - </div> |
| 10 | + tcUniNav( |
| 11 | + 'init', |
| 12 | + navElementId, |
| 13 | + { |
| 14 | + type: 'footer', |
| 15 | + }, |
90 | 16 | ) |
| 17 | + |
| 18 | + return <div id={navElementId} /> |
91 | 19 | } |
92 | 20 |
|
93 | 21 | export default PageFooter |
0 commit comments