@@ -44,7 +44,15 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ title, intro }) => {
4444 [ activePage . languages , product ] ,
4545 ) ;
4646
47- const handleCopyMarkdown = useCallback ( async ( ) => {
47+ const resetCopyTooltip = useCallback ( ( ) => {
48+ setCopyTooltipOpen ( true ) ;
49+ setTimeout ( ( ) => {
50+ setCopyTooltipOpen ( false ) ;
51+ setTimeout ( ( ) => setCopyTooltipContent ( 'Copy' ) , 150 ) ;
52+ } , 2000 ) ;
53+ } , [ ] ) ;
54+
55+ const handleCopyMarkdown = async ( ) => {
4856 try {
4957 const response = await fetch ( `${ location . pathname } .md` ) ;
5058
@@ -60,25 +68,17 @@ export const PageHeader: React.FC<PageHeaderProps> = ({ title, intro }) => {
6068 const content = await response . text ( ) ;
6169 await navigator . clipboard . writeText ( content ) ;
6270 setCopyTooltipContent ( 'Copied!' ) ;
63- setCopyTooltipOpen ( true ) ;
64- setTimeout ( ( ) => {
65- setCopyTooltipOpen ( false ) ;
66- setTimeout ( ( ) => setCopyTooltipContent ( 'Copy' ) , 150 ) ;
67- } , 2000 ) ;
71+ resetCopyTooltip ( ) ;
6872
6973 track ( 'markdown_copy_link_clicked' , {
7074 location : location . pathname ,
7175 } ) ;
7276 } catch ( error ) {
7377 console . error ( 'Failed to copy markdown:' , error ) ;
7478 setCopyTooltipContent ( 'Error!' ) ;
75- setCopyTooltipOpen ( true ) ;
76- setTimeout ( ( ) => {
77- setCopyTooltipOpen ( false ) ;
78- setTimeout ( ( ) => setCopyTooltipContent ( 'Copy' ) , 150 ) ;
79- } , 2000 ) ;
79+ resetCopyTooltip ( ) ;
8080 }
81- } , [ location . pathname ] ) ;
81+ } ;
8282
8383 return (
8484 < div className = "my-8 border-b border-neutral-300 dark:border-neutral-1000 pb-8" >
0 commit comments