Skip to content
Open
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 43 additions & 1 deletion nx-dev/ui-common/src/lib/headers/header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,32 @@ export function Header({
// Use the new docs URL when Astro docs are enabled
const docsUrl = '/docs/getting-started/intro';
let [isScrolled, setIsScrolled] = useState(false);

const [starCount, setStarCount] = useState<number | null>(null);
const router = useRouter();

const formatStarCount = (count: number): string => {
return new Intl.NumberFormat('en-US', {
notation: 'compact',
maximumFractionDigits: 1
}).format(count);
};

useEffect(() => {
const getStarCount = async () => {
try {
const response = await fetch('https://api.github.com/repos/nrwl/nx');
if (!response.ok) {
throw new Error(`GitHub API error: ${response.status}`);
}
const data = await response.json();
setStarCount(data.stargazers_count);
} catch (error) {
console.error('Failed to fetch GitHub stars:', error);
}
};
getStarCount();
}, []);

const handleContextMenu = (e: MouseEvent) => {
e.preventDefault();
router.push('/brands');
Expand Down Expand Up @@ -328,6 +351,25 @@ export function Header({
)}
</div>
</div>
{/* GitHub Stars Button */}
<a
href="https://github.com/nrwl/nx"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-1.5 rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm font-medium text-slate-700 no-underline shadow-sm transition hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-800 dark:text-slate-200 dark:hover:bg-slate-700"
title="Star Nx on GitHub"
>
<svg
width="16"
height="16"
viewBox="0 0 16 16"
fill="currentColor"
className="flex-shrink-0"
>
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" />
</svg>
<span>{starCount !== null ? formatStarCount(starCount) : ''}</span>
</a>
<a
title="Nx is open source, check the code on GitHub"
href="https://github.com/nrwl/nx"
Expand Down