11import { siteConfig } from '@/lib/config'
2+ import { useRef } from 'react'
3+ import { handleEmailClick } from '@/lib/plugins/mailEncrypt'
4+
25/**
36 * 社交联系方式按钮组
47 * @returns {JSX.Element }
58 * @constructor
69 */
710const SocialButton = ( ) => {
11+ const CONTACT_GITHUB = siteConfig ( 'CONTACT_GITHUB' )
12+ const CONTACT_TWITTER = siteConfig ( 'CONTACT_TWITTER' )
13+ const CONTACT_TELEGRAM = siteConfig ( 'CONTACT_TELEGRAM' )
14+ const CONTACT_LINKEDIN = siteConfig ( 'CONTACT_LINKEDIN' )
15+ const CONTACT_WEIBO = siteConfig ( 'CONTACT_WEIBO' )
16+ const CONTACT_INSTAGRAM = siteConfig ( 'CONTACT_INSTAGRAM' )
17+ const CONTACT_EMAIL = siteConfig ( 'CONTACT_EMAIL' )
18+ const ENABLE_RSS = siteConfig ( 'ENABLE_RSS' )
19+ const CONTACT_BILIBILI = siteConfig ( 'CONTACT_BILIBILI' )
20+ const CONTACT_YOUTUBE = siteConfig ( 'CONTACT_YOUTUBE' )
21+
22+ const emailIcon = useRef ( null )
23+
824 return (
925 < div className = 'w-full justify-center flex-wrap flex' >
1026 < div className = 'space-x-3 text-xl text-gray-600 dark:text-gray-300 ' >
11- { siteConfig ( ' CONTACT_GITHUB' ) && (
27+ { CONTACT_GITHUB && (
1228 < a
1329 target = '_blank'
1430 rel = 'noreferrer'
1531 title = { 'github' }
16- href = { siteConfig ( ' CONTACT_GITHUB' ) } >
32+ href = { CONTACT_GITHUB } >
1733 < i className = 'transform hover:scale-125 duration-150 fab fa-github dark:hover:text-red-400 hover:text-red-600' />
1834 </ a >
1935 ) }
20- { siteConfig ( ' CONTACT_TWITTER' ) && (
36+ { CONTACT_TWITTER && (
2137 < a
2238 target = '_blank'
2339 rel = 'noreferrer'
2440 title = { 'twitter' }
25- href = { siteConfig ( ' CONTACT_TWITTER' ) } >
41+ href = { CONTACT_TWITTER } >
2642 < i className = 'transform hover:scale-125 duration-150 fab fa-twitter dark:hover:text-red-400 hover:text-red-600' />
2743 </ a >
2844 ) }
29- { siteConfig ( ' CONTACT_TELEGRAM' ) && (
45+ { CONTACT_TELEGRAM && (
3046 < a
3147 target = '_blank'
3248 rel = 'noreferrer'
33- href = { siteConfig ( ' CONTACT_TELEGRAM' ) }
49+ href = { CONTACT_TELEGRAM }
3450 title = { 'telegram' } >
3551 < i className = 'transform hover:scale-125 duration-150 fab fa-telegram dark:hover:text-red-400 hover:text-red-600' />
3652 </ a >
3753 ) }
38- { siteConfig ( ' CONTACT_LINKEDIN' ) && (
54+ { CONTACT_LINKEDIN && (
3955 < a
4056 target = '_blank'
4157 rel = 'noreferrer'
42- href = { siteConfig ( ' CONTACT_LINKEDIN' ) }
58+ href = { CONTACT_LINKEDIN }
4359 title = { 'linkIn' } >
4460 < i className = 'transform hover:scale-125 duration-150 fab fa-linkedin dark:hover:text-red-400 hover:text-red-600' />
4561 </ a >
4662 ) }
47- { siteConfig ( ' CONTACT_WEIBO' ) && (
63+ { CONTACT_WEIBO && (
4864 < a
4965 target = '_blank'
5066 rel = 'noreferrer'
5167 title = { 'weibo' }
52- href = { siteConfig ( ' CONTACT_WEIBO' ) } >
68+ href = { CONTACT_WEIBO } >
5369 < i className = 'transform hover:scale-125 duration-150 fab fa-weibo dark:hover:text-red-400 hover:text-red-600' />
5470 </ a >
5571 ) }
56- { siteConfig ( ' CONTACT_INSTAGRAM' ) && (
72+ { CONTACT_INSTAGRAM && (
5773 < a
5874 target = '_blank'
5975 rel = 'noreferrer'
6076 title = { 'instagram' }
61- href = { siteConfig ( ' CONTACT_INSTAGRAM' ) } >
77+ href = { CONTACT_INSTAGRAM } >
6278 < i className = 'transform hover:scale-125 duration-150 fab fa-instagram dark:hover:text-red-400 hover:text-red-600' />
6379 </ a >
6480 ) }
65- { siteConfig ( ' CONTACT_EMAIL' ) && (
81+ { CONTACT_EMAIL && (
6682 < a
67- target = '_blank'
68- rel = 'noreferrer '
69- title = { 'email' }
70- href = { `mailto: ${ siteConfig ( 'CONTACT_EMAIL' ) } ` } >
83+ onClick = { e => handleEmailClick ( e , emailIcon , CONTACT_EMAIL ) }
84+ title = 'email '
85+ className = 'cursor-pointer'
86+ ref = { emailIcon } >
7187 < i className = 'transform hover:scale-125 duration-150 fas fa-envelope dark:hover:text-red-400 hover:text-red-600' />
7288 </ a >
7389 ) }
74- { JSON . parse ( siteConfig ( ' ENABLE_RSS' ) ) && (
90+ { ENABLE_RSS && (
7591 < a
7692 target = '_blank'
7793 rel = 'noreferrer'
@@ -80,21 +96,21 @@ const SocialButton = () => {
8096 < i className = 'transform hover:scale-125 duration-150 fas fa-rss dark:hover:text-red-400 hover:text-red-600' />
8197 </ a >
8298 ) }
83- { siteConfig ( ' CONTACT_BILIBILI' ) && (
99+ { CONTACT_BILIBILI && (
84100 < a
85101 target = '_blank'
86102 rel = 'noreferrer'
87103 title = { 'bilibili' }
88- href = { siteConfig ( ' CONTACT_BILIBILI' ) } >
104+ href = { CONTACT_BILIBILI } >
89105 < i className = 'transform hover:scale-125 duration-150 fab fa-bilibili dark:hover:text-red-400 hover:text-red-600' />
90106 </ a >
91107 ) }
92- { siteConfig ( ' CONTACT_YOUTUBE' ) && (
108+ { CONTACT_YOUTUBE && (
93109 < a
94110 target = '_blank'
95111 rel = 'noreferrer'
96112 title = { 'youtube' }
97- href = { siteConfig ( ' CONTACT_YOUTUBE' ) } >
113+ href = { CONTACT_YOUTUBE } >
98114 < i className = 'transform hover:scale-125 duration-150 fab fa-youtube dark:hover:text-red-400 hover:text-red-600' />
99115 </ a >
100116 ) }
0 commit comments