@@ -21,13 +21,18 @@ import {useMediaQuery} from 'usehooks-ts';
2121import GreatFrontEnd from '../../(common)/GreatFrontEnd' ;
2222
2323const rootUrl = `${ process . env . NEXT_PUBLIC_ROOT_URL } /api` ;
24+ const baseUrl = process . env . NEXT_PUBLIC_ROOT_URL ;
2425
25- const generateSvgUrlToCopy = ( login : string , isBasic ?: boolean ) : string => {
26- if ( isBasic ) {
27- return `` ;
28- }
26+ // For display (markdown format)
27+ const generateSvgUrlToDisplay = ( login : string , isBasic ?: boolean ) : string => {
28+ const apiEndpoint = isBasic ? 'github-stats' : 'github-stats-advanced' ;
29+ return `` ;
30+ } ;
2931
30- return `` ;
32+ // For copying (HTML format)
33+ const generateSvgUrlToCopy = ( login : string , isBasic ?: boolean ) : string => {
34+ const apiEndpoint = isBasic ? 'github-stats' : 'github-stats-advanced' ;
35+ return `<a href="${ baseUrl } /stats/${ login } "><img src="${ rootUrl } /${ apiEndpoint } ?login=${ login } " width="600" /></a>` ;
3136} ;
3237
3338type SvgType = 'basic' | 'advanced' | 'trophies' ;
@@ -64,7 +69,8 @@ function Hero({t, statsInfo}: Props): ReactElement {
6469 const [ searchLogin , setSearchedUID ] = useState ( '' ) ;
6570 const [ githubSVG , setGithubSVG ] = useState < string | null > ( null ) ;
6671 const [ noTrophies , setNoTrophies ] = useState ( false ) ;
67- const [ svgStatsURL , setSvgStatsURL ] = useState < string > ( '' ) ;
72+ const [ svgStatsURLDisplay , setSvgStatsURLDisplay ] = useState < string > ( '' ) ;
73+ const [ svgStatsURLCopy , setSvgStatsURLCopy ] = useState < string > ( '' ) ;
6874 const [ isBasic , setIsBasic ] = useState < boolean | undefined > ( undefined ) ;
6975 const { register, formState, handleSubmit} = useForm ( ) ;
7076
@@ -80,13 +86,15 @@ function Hero({t, statsInfo}: Props): ReactElement {
8086 const base64dataStats = btoa ( unescape ( encodeURIComponent ( svgStats ) ) ) ;
8187 setGithubSVG ( base64dataStats ) ;
8288
83- setSvgStatsURL ( generateSvgUrlToCopy ( login , false ) ) ;
89+ setSvgStatsURLDisplay ( generateSvgUrlToDisplay ( login , false ) ) ;
90+ setSvgStatsURLCopy ( generateSvgUrlToCopy ( login , false ) ) ;
8491 setSearchedUID ( login ) ;
8592 setIsBasic ( false ) ;
8693 setNoTrophies ( false ) ;
8794 } catch ( err ) {
8895 setGithubSVG ( null ) ;
89- setSvgStatsURL ( '' ) ;
96+ setSvgStatsURLDisplay ( '' ) ;
97+ setSvgStatsURLCopy ( '' ) ;
9098 setIsBasic ( undefined ) ;
9199 }
92100 }
@@ -202,7 +210,8 @@ function Hero({t, statsInfo}: Props): ReactElement {
202210 buttons = { [ { label : t . basic } , { label : t . advanced } ] }
203211 onClick = { ( index ) => {
204212 const shouldBeBasic = index === 0 ;
205- setSvgStatsURL ( generateSvgUrlToCopy ( login , shouldBeBasic ) ) ;
213+ setSvgStatsURLDisplay ( generateSvgUrlToDisplay ( login , shouldBeBasic ) ) ;
214+ setSvgStatsURLCopy ( generateSvgUrlToCopy ( login , shouldBeBasic ) ) ;
206215 setIsBasic ( shouldBeBasic ) ;
207216
208217 track ( 'Press Stat Tab' , { login, basic : shouldBeBasic } ) ;
@@ -243,11 +252,12 @@ function Hero({t, statsInfo}: Props): ReactElement {
243252 />
244253 </ div >
245254 ) : null }
246- { svgStatsURL ? (
255+ { svgStatsURLDisplay ? (
247256 < StatsUrlCard
248257 t = { t }
249258 selectedPluginType = { selectedPluginType }
250- svgStatsURL = { svgStatsURL }
259+ svgStatsURLDisplay = { svgStatsURLDisplay }
260+ svgStatsURLCopy = { svgStatsURLCopy }
251261 svgTrophiesURL = {
252262 ! noTrophies ? getSVGUrl ( 'trophies' , searchLogin ) : ''
253263 }
0 commit comments