Skip to content

Commit dbefe84

Browse files
committed
feat: add GitHub link with icon to header
1 parent 8959ca7 commit dbefe84

File tree

6 files changed

+52
-1
lines changed

6 files changed

+52
-1
lines changed

src/App.less

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,20 @@
2929
font-weight: bold;
3030
}
3131

32+
.github-link {
33+
color: currentColor;
34+
text-decoration: none;
35+
display: inline-flex;
36+
align-items: center;
37+
opacity: 0.8;
38+
transition: opacity 0.2s ease;
39+
margin-left: auto;
40+
41+
&:hover {
42+
opacity: 1;
43+
}
44+
}
45+
3246
&.dark {
3347
color: @dark-text;
3448
background: @dark-secondary-bg;

src/App.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useState, useEffect } from 'react';
2-
import JsonFormatter from './components/json-formatter';
2+
import { JsonFormatter, GitHubIcon } from './components';
33
import './App.less';
44

55
export default function App() {
@@ -16,6 +16,14 @@ export default function App() {
1616
<div className={`app-container ${isDarkMode ? 'dark' : 'light'}`}>
1717
<div className={`header ${isDarkMode ? 'dark' : 'light'}`}>
1818
json-formatter
19+
<a
20+
href="https://github.com/luckfunc"
21+
target="_blank"
22+
rel="noopener noreferrer"
23+
className="github-link"
24+
>
25+
<GitHubIcon width={16} height={16} />
26+
</a>
1927
</div>
2028
<JsonFormatter isDarkMode={isDarkMode} onThemeChange={setIsDarkMode} />
2129
</div>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
interface GitHubIconProps {
2+
width?: number;
3+
height?: number;
4+
className?: string;
5+
}
6+
7+
export default function GithubIcon({ width = 16, height = 16, className }: GitHubIconProps) {
8+
return (
9+
<svg
10+
width={width}
11+
height={height}
12+
viewBox="0 0 24 24"
13+
fill="currentColor"
14+
className={className}
15+
>
16+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
17+
</svg>
18+
);
19+
}

src/components/icons/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default as GitHubIcon } from './github-icon';

src/components/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// Icons
2+
export * from './icons';
3+
4+
// Components
5+
export { default as JsonFormatter } from './json-formatter';

src/types/assets.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module '*.svg' {
2+
const content: string;
3+
export default content;
4+
}

0 commit comments

Comments
 (0)