diff --git a/themes/commerce/components/SocialButton.js b/themes/commerce/components/SocialButton.js index 24823924..3572010a 100644 --- a/themes/commerce/components/SocialButton.js +++ b/themes/commerce/components/SocialButton.js @@ -1,77 +1,97 @@ import { siteConfig } from '@/lib/config' +import { useEffect, useRef } from 'react' /** * 社交联系方式按钮组 * @returns {JSX.Element} * @constructor */ const SocialButton = () => { + const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') + const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') + const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') + const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') + const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') + const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') + const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') + const ENABLE_RSS = siteConfig('ENABLE_RSS') + const CONTACT_BILIBILI = siteConfig('CONTACT_BILIBILI') + const CONTACT_YOUTUBE = siteConfig('CONTACT_YOUTUBE') + + const emailIcon = useRef(null) + useEffect(() => { + if (CONTACT_EMAIL && emailIcon.current) { + emailIcon.current.href = + 'mailto:' + decodeURIComponent(escape(atob(CONTACT_EMAIL))) + } + }, [CONTACT_EMAIL]) return (
- {siteConfig('CONTACT_GITHUB') && ( + {CONTACT_GITHUB && ( + href={CONTACT_GITHUB}> )} - {siteConfig('CONTACT_TWITTER') && ( + {CONTACT_TWITTER && ( + href={CONTACT_TWITTER}> )} - {siteConfig('CONTACT_TELEGRAM') && ( + {CONTACT_TELEGRAM && ( )} - {siteConfig('CONTACT_LINKEDIN') && ( + {CONTACT_LINKEDIN && ( )} - {siteConfig('CONTACT_WEIBO') && ( + {CONTACT_WEIBO && ( + href={CONTACT_WEIBO}> )} - {siteConfig('CONTACT_INSTAGRAM') && ( + {CONTACT_INSTAGRAM && ( + href={CONTACT_INSTAGRAM}> )} - {siteConfig('CONTACT_EMAIL') && ( + {CONTACT_EMAIL && ( + href={CONTACT_EMAIL}> )} - {JSON.parse(siteConfig('ENABLE_RSS')) && ( + {ENABLE_RSS && ( { )} - {siteConfig('CONTACT_BILIBILI') && ( + {CONTACT_BILIBILI && ( + href={CONTACT_BILIBILI}> )} - {siteConfig('CONTACT_YOUTUBE') && ( + {CONTACT_YOUTUBE && ( + href={CONTACT_YOUTUBE}> )} diff --git a/themes/heo/components/SocialButton.js b/themes/heo/components/SocialButton.js index f746bc0b..2b18b467 100644 --- a/themes/heo/components/SocialButton.js +++ b/themes/heo/components/SocialButton.js @@ -82,7 +82,7 @@ const SocialButton = () => { )} - {JSON.parse(ENABLE_RSS) && ( + {ENABLE_RSS && ( { setShow(!show) } + const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') + const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') + const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') + const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') + const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') + const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') + const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') + const ENABLE_RSS = siteConfig('ENABLE_RSS') + const CONTACT_BILIBILI = siteConfig('CONTACT_BILIBILI') + const CONTACT_YOUTUBE = siteConfig('CONTACT_YOUTUBE') + + const emailIcon = useRef(null) + useEffect(() => { + if (CONTACT_EMAIL && emailIcon.current) { + emailIcon.current.href = + 'mailto:' + decodeURIComponent(escape(atob(CONTACT_EMAIL))) + } + }, [CONTACT_EMAIL]) + return (
{!show && ( @@ -22,70 +41,71 @@ const SocialButton = () => { )} {show && ( <> - {siteConfig('CONTACT_GITHUB') && ( + {CONTACT_GITHUB && ( + href={CONTACT_GITHUB}> )} - {siteConfig('CONTACT_TWITTER') && ( + {CONTACT_TWITTER && ( + href={CONTACT_TWITTER}> )} - {siteConfig('CONTACT_TELEGRAM') && ( + {CONTACT_TELEGRAM && ( )} - {siteConfig('CONTACT_LINKEDIN') && ( + {CONTACT_LINKEDIN && ( )} - {siteConfig('CONTACT_WEIBO') && ( + {CONTACT_WEIBO && ( + href={CONTACT_WEIBO}> )} - {siteConfig('CONTACT_INSTAGRAM') && ( + {CONTACT_INSTAGRAM && ( + href={CONTACT_INSTAGRAM}> )} - {siteConfig('CONTACT_EMAIL') && ( + {CONTACT_EMAIL && ( + href={CONTACT_EMAIL}> )} - {JSON.parse(siteConfig('ENABLE_RSS')) && ( + {ENABLE_RSS && ( { )} - {siteConfig('CONTACT_BILIBILI') && ( + {CONTACT_BILIBILI && ( + href={CONTACT_BILIBILI}> )} - {siteConfig('CONTACT_YOUTUBE') && ( + {CONTACT_YOUTUBE && ( + href={CONTACT_YOUTUBE}> )} diff --git a/themes/medium/components/SocialButton.js b/themes/medium/components/SocialButton.js index 95b8b412..40ae1ca4 100644 --- a/themes/medium/components/SocialButton.js +++ b/themes/medium/components/SocialButton.js @@ -1,4 +1,5 @@ import { siteConfig } from '@/lib/config' +import { useEffect, useRef } from 'react' /** * 社交联系方式按钮组 @@ -6,72 +7,91 @@ import { siteConfig } from '@/lib/config' * @constructor */ const SocialButton = () => { + const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') + const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') + const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') + const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') + const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') + const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') + const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') + const ENABLE_RSS = siteConfig('ENABLE_RSS') + const CONTACT_BILIBILI = siteConfig('CONTACT_BILIBILI') + const CONTACT_YOUTUBE = siteConfig('CONTACT_YOUTUBE') + + const emailIcon = useRef(null) + useEffect(() => { + if (CONTACT_EMAIL && emailIcon.current) { + emailIcon.current.href = + 'mailto:' + decodeURIComponent(escape(atob(CONTACT_EMAIL))) + } + }, [CONTACT_EMAIL]) return (
- {siteConfig('CONTACT_GITHUB') && ( + {CONTACT_GITHUB && ( + href={CONTACT_GITHUB}> )} - {siteConfig('CONTACT_TWITTER') && ( + {CONTACT_TWITTER && ( + href={CONTACT_TWITTER}> )} - {siteConfig('CONTACT_TELEGRAM') && ( + {CONTACT_TELEGRAM && ( )} - {siteConfig('CONTACT_LINKEDIN') && ( + {CONTACT_LINKEDIN && ( )} - {siteConfig('CONTACT_WEIBO') && ( + {CONTACT_WEIBO && ( + href={CONTACT_WEIBO}> )} - {siteConfig('CONTACT_INSTAGRAM') && ( + {CONTACT_INSTAGRAM && ( + href={CONTACT_INSTAGRAM}> )} - {siteConfig('CONTACT_EMAIL') && ( + {CONTACT_EMAIL && ( + href={CONTACT_EMAIL}> )} - {JSON.parse(siteConfig('ENABLE_RSS')) && ( + {ENABLE_RSS && ( { )} - {siteConfig('CONTACT_BILIBILI') && ( + {CONTACT_BILIBILI && ( + href={CONTACT_BILIBILI}> )} - {siteConfig('CONTACT_YOUTUBE') && ( + {CONTACT_YOUTUBE && ( + href={CONTACT_YOUTUBE}> )} diff --git a/themes/nav/components/SocialButton.js b/themes/nav/components/SocialButton.js index 74fdad37..64aa4cc1 100755 --- a/themes/nav/components/SocialButton.js +++ b/themes/nav/components/SocialButton.js @@ -1,4 +1,5 @@ import { siteConfig } from '@/lib/config' +import { useEffect, useRef } from 'react' /** * 社交联系方式按钮组 @@ -6,72 +7,89 @@ import { siteConfig } from '@/lib/config' * @constructor */ const SocialButton = () => { + const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') + const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') + const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') + const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') + const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') + const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') + const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') + const ENABLE_RSS = siteConfig('ENABLE_RSS') + + const emailIcon = useRef(null) + useEffect(() => { + if (CONTACT_EMAIL && emailIcon.current) { + emailIcon.current.href = + 'mailto:' + decodeURIComponent(escape(atob(CONTACT_EMAIL))) + } + }, [CONTACT_EMAIL]) return (
- {siteConfig('CONTACT_GITHUB') && ( + {CONTACT_GITHUB && ( + href={CONTACT_GITHUB}> )} - {siteConfig('CONTACT_TWITTER') && ( + {CONTACT_TWITTER && ( + href={CONTACT_TWITTER}> )} - {siteConfig('CONTACT_TELEGRAM') && ( + {CONTACT_TELEGRAM && ( )} - {siteConfig('CONTACT_LINKEDIN') && ( + {CONTACT_LINKEDIN && ( )} - {siteConfig('CONTACT_WEIBO') && ( + {CONTACT_WEIBO && ( + href={CONTACT_WEIBO}> )} - {siteConfig('CONTACT_INSTAGRAM') && ( + {CONTACT_INSTAGRAM && ( + href={CONTACT_INSTAGRAM}> )} - {siteConfig('CONTACT_EMAIL') && ( + {CONTACT_EMAIL && ( + href={CONTACT_EMAIL}> )} - {JSON.parse(siteConfig('ENABLE_RSS')) && ( + {ENABLE_RSS && ( { + const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') + const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') + const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') + const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') + const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') + const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') + const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') + const ENABLE_RSS = siteConfig('ENABLE_RSS') + const CONTACT_BILIBILI = siteConfig('CONTACT_BILIBILI') + const CONTACT_YOUTUBE = siteConfig('CONTACT_YOUTUBE') + + const emailIcon = useRef(null) + useEffect(() => { + if (CONTACT_EMAIL && emailIcon.current) { + emailIcon.current.href = + 'mailto:' + decodeURIComponent(escape(atob(CONTACT_EMAIL))) + } + }, [CONTACT_EMAIL]) return (
- {siteConfig('CONTACT_GITHUB') && ( + {CONTACT_GITHUB && ( + href={CONTACT_GITHUB}> )} - {siteConfig('CONTACT_TWITTER') && ( + {CONTACT_TWITTER && ( + href={CONTACT_TWITTER}> )} - {siteConfig('CONTACT_TELEGRAM') && ( + {CONTACT_TELEGRAM && ( )} - {siteConfig('CONTACT_LINKEDIN') && ( + {CONTACT_LINKEDIN && ( )} - {siteConfig('CONTACT_WEIBO') && ( + {CONTACT_WEIBO && ( + href={CONTACT_WEIBO}> )} - {siteConfig('CONTACT_INSTAGRAM') && ( + {CONTACT_INSTAGRAM && ( + href={CONTACT_INSTAGRAM}> )} - {siteConfig('CONTACT_EMAIL') && ( + {CONTACT_EMAIL && ( + href={CONTACT_EMAIL}> )} - {JSON.parse(siteConfig('ENABLE_RSS')) && ( + {ENABLE_RSS && ( { )} - {siteConfig('CONTACT_BILIBILI') && ( + {CONTACT_BILIBILI && ( + href={CONTACT_BILIBILI}> )} - {siteConfig('CONTACT_YOUTUBE') && ( + {CONTACT_YOUTUBE && ( + href={CONTACT_YOUTUBE}> )} diff --git a/themes/starter/components/SocialButton.js b/themes/starter/components/SocialButton.js index d11f3423..a90d533b 100644 --- a/themes/starter/components/SocialButton.js +++ b/themes/starter/components/SocialButton.js @@ -1,4 +1,5 @@ import { siteConfig } from '@/lib/config' +import { useEffect, useRef } from 'react' /** * 社交联系方式按钮组 @@ -6,73 +7,92 @@ import { siteConfig } from '@/lib/config' * @constructor */ const SocialButton = () => { + const CONTACT_GITHUB = siteConfig('CONTACT_GITHUB') + const CONTACT_TWITTER = siteConfig('CONTACT_TWITTER') + const CONTACT_TELEGRAM = siteConfig('CONTACT_TELEGRAM') + const CONTACT_LINKEDIN = siteConfig('CONTACT_LINKEDIN') + const CONTACT_WEIBO = siteConfig('CONTACT_WEIBO') + const CONTACT_INSTAGRAM = siteConfig('CONTACT_INSTAGRAM') + const CONTACT_EMAIL = siteConfig('CONTACT_EMAIL') + const ENABLE_RSS = siteConfig('ENABLE_RSS') + const CONTACT_BILIBILI = siteConfig('CONTACT_BILIBILI') + const CONTACT_YOUTUBE = siteConfig('CONTACT_YOUTUBE') + + const emailIcon = useRef(null) + useEffect(() => { + if (CONTACT_EMAIL && emailIcon.current) { + emailIcon.current.href = + 'mailto:' + decodeURIComponent(escape(atob(CONTACT_EMAIL))) + } + }, [CONTACT_EMAIL]) return (
- {siteConfig('CONTACT_GITHUB') && ( + {CONTACT_GITHUB && ( + href={CONTACT_GITHUB}> )} - {siteConfig('CONTACT_TWITTER') && ( + {CONTACT_TWITTER && ( + href={CONTACT_TWITTER}> )} - {siteConfig('CONTACT_TELEGRAM') && ( + {CONTACT_TELEGRAM && ( )} - {siteConfig('CONTACT_LINKEDIN') && ( + {CONTACT_LINKEDIN && ( )} - {siteConfig('CONTACT_WEIBO') && ( + {CONTACT_WEIBO && ( + href={CONTACT_WEIBO}> )} - {siteConfig('CONTACT_INSTAGRAM') && ( + {CONTACT_INSTAGRAM && ( + href={CONTACT_INSTAGRAM}> )} - {siteConfig('CONTACT_EMAIL') && ( + {CONTACT_EMAIL && ( + href={CONTACT_EMAIL}> )} - {JSON.parse(siteConfig('ENABLE_RSS')) && ( + {ENABLE_RSS && ( { )} - {siteConfig('CONTACT_BILIBILI') && ( + {CONTACT_BILIBILI && ( + href={CONTACT_BILIBILI}> )} - {siteConfig('CONTACT_YOUTUBE') && ( + {CONTACT_YOUTUBE && ( + href={CONTACT_YOUTUBE}> )}