55 */
66
77import { FC , memo } from 'react'
8+ import QRCode from 'qrcode-react'
89
910import type { TMetric } from '@/spec'
11+ import { ICON } from '@/config'
1012import { METRIC } from '@/constant'
13+ import { openShareWindow } from '@/utils/helper'
14+
1115import { Br } from '@/components/Common'
16+ import Tooltip from '@/components/Tooltip'
1217import ArrowLink from '@/components/Buttons/ArrowLink'
1318
1419import Blocks from './Blocks'
1520
1621import {
1722 Wrapper ,
1823 InnerWrapper ,
24+ SupportLogo ,
1925 Title ,
2026 Divider ,
2127 Desc ,
28+ MainDesc ,
2229 FocusDesc ,
30+ SocialWrapper ,
31+ SocialIcon ,
2332} from './styles'
2433
34+ const url = 'https://coderplanets.com'
35+
36+ const toPlatform = ( type : string ) : void => {
37+ const title = 'CoderPlanets'
38+ const digest = '可能是最性感的开发者社区'
39+
40+ switch ( type ) {
41+ case 'twitter' : {
42+ const param = { url, text : title }
43+
44+ return openShareWindow ( 'https://twitter.com/intent/tweet' , param )
45+ }
46+
47+ case 'telegram' : {
48+ const param = { url, text : title }
49+
50+ return openShareWindow ( 'https://telegram.me/share/url' , param )
51+ }
52+
53+ case 'facebook' : {
54+ const param = { u : url }
55+ return openShareWindow ( 'https://facebook.com/share.php' , param )
56+ }
57+
58+ case 'douban' : {
59+ const param = { href : url , name : title }
60+ return openShareWindow ( 'https://shuo.douban.com/!service/share' , param )
61+ }
62+
63+ case 'weibo' : {
64+ const param = { url, title }
65+ return openShareWindow ( 'https://service.weibo.com/share/share.php' , param )
66+ }
67+
68+ default : {
69+ /* eslint-disable-next-line */
70+ return
71+ }
72+ }
73+ }
74+
2575type TProps = {
2676 metric ?: TMetric
2777}
@@ -30,24 +80,53 @@ const SupportUS: FC<TProps> = ({ metric = METRIC.SUPPORT_US }) => {
3080 return (
3181 < Wrapper testid = "support-us-content" >
3282 < InnerWrapper metric = { metric } >
33- < Title > 支持我们</ Title >
83+ < Title >
84+ < SupportLogo src = { `${ ICON } /menu/lifebuoy.png` } noLazy />
85+ 支持我们
86+ </ Title >
3487 < Divider />
35- < Desc align >
88+ < MainDesc align >
3689 { /* eslint-disable-next-line */ }
37- 编写一个功能完善的现代社区需要开发者保持长期的专注和付出,论坛的持续打磨和维护,更需要团队投入海量的精力,矛盾的是,现阶段因为缺乏流量等各种资源,难以通过自身造血实现正向循环。你的支持将有助于我们保持独立,在论坛的开发和维护上投入更多时间 。
38- </ Desc >
90+ 编写一个功能完善的现代社区需要开发者保持长期的专注和付出,论坛的持续打磨和维护,更需要团队投入海量的精力,矛盾的是,现阶段因为缺乏流量等各种资源,难以通过自身造血实现正向循环。你的支持将有助于我们保持独立,在论坛的开发和运营上倾注更多时间 。
91+ </ MainDesc >
3992 < Br top = { 80 } />
4093 < Blocks />
4194 < Br top = { 60 } />
4295
43- < Desc >
44- 开源项目的健康发展无法仅靠情怀支撑,所受钱款将全部用于支付本站所使用的基础设施、第三方服务、开发人员生计等产生的必要费用,确保社区健壮、稳定、 可持续。
96+ < Desc align >
97+ 开源项目的健康发展无法仅靠情怀支撑,所受钱款将全部用于支付本站所使用的基础设施、第三方服务、资源以及开发人员生计等产生的必要费用,确保社区稳定、 可持续,谢谢理解 。
4598 </ Desc >
4699 < Br top = { 20 } />
47100 < Desc >
48- 最后,如果你喜欢这里,还请高抬贵指将本社区转发给你身边的开发者朋友、氛围良好的交流群中,
49- < FocusDesc > Don’t tell me , tell the world ~</ FocusDesc >
101+ 最后,如果你喜欢这里,还请高抬贵指将本社区转发给你身边的开发者朋友,以及各种社交媒体平台:
50102 </ Desc >
103+ < SocialWrapper >
104+ < Tooltip content = { < QRCode value = { url } size = { 100 } /> } placement = "top" >
105+ < SocialIcon src = { `${ ICON } /social/wechat-share.png` } />
106+ </ Tooltip >
107+
108+ < SocialIcon
109+ src = { `${ ICON } /social/twitter-share.png` }
110+ onClick = { ( ) => toPlatform ( 'twitter' ) }
111+ />
112+ < SocialIcon
113+ src = { `${ ICON } /social/telegram-share.png` }
114+ onClick = { ( ) => toPlatform ( 'telegram' ) }
115+ />
116+ < SocialIcon
117+ src = { `${ ICON } /social/weibo-share.png` }
118+ onClick = { ( ) => toPlatform ( 'weibo' ) }
119+ />
120+ < SocialIcon
121+ src = { `${ ICON } /social/douban-share.png` }
122+ onClick = { ( ) => toPlatform ( 'douban' ) }
123+ />
124+ < SocialIcon
125+ src = { `${ ICON } /social/facebook-share.png` }
126+ onClick = { ( ) => toPlatform ( 'facebook' ) }
127+ />
128+ </ SocialWrapper >
129+ < FocusDesc > Don’t tell me , tell the world ~</ FocusDesc >
51130 </ InnerWrapper >
52131 </ Wrapper >
53132 )
0 commit comments