11import React , { useState } from "react" ;
2- import { Layout , ConfigProvider , theme } from "antd" ;
2+ import { Layout , ConfigProvider , theme , Typography } from "antd" ;
33import { ThemeProvider , useTheme } from "./contexts/ThemeContext" ;
44import SearchBox from "./components/SearchBox" ;
55import PackageResults from "./components/PackageResults" ;
@@ -10,6 +10,10 @@ import "./App.css";
1010
1111const { Header, Content, Footer } = Layout ;
1212const { defaultAlgorithm, darkAlgorithm } = theme ;
13+ const { Link } = Typography ;
14+
15+ // Define a vibrant primary color
16+ const primaryColor = "#238636" ; // GitHub green
1317
1418const AppContent : React . FC = ( ) => {
1519 const { isDarkTheme } = useTheme ( ) ;
@@ -21,11 +25,19 @@ const AppContent: React.FC = () => {
2125 error,
2226 packageInfo,
2327 hasSearched,
28+ resetSearch,
2429 } = usePackageSearch ( ) ;
2530
2631 // State for version filter
2732 const [ versionFilter , setVersionFilter ] = useState ( "" ) ;
2833
34+ // Handle logo click to reset the app to home state
35+ const handleLogoClick = ( ) => {
36+ resetSearch ( ) ;
37+ setSearchTerm ( "" ) ;
38+ setVersionFilter ( "" ) ;
39+ } ;
40+
2941 const renderContent = ( ) => {
3042 if ( error ) {
3143 return (
@@ -55,18 +67,33 @@ const AppContent: React.FC = () => {
5567 < ConfigProvider
5668 theme = { {
5769 algorithm : isDarkTheme ? darkAlgorithm : defaultAlgorithm ,
70+ token : {
71+ colorPrimary : primaryColor ,
72+ } ,
5873 components : {
5974 Layout : {
6075 bodyBg : isDarkTheme ? "#000000" : "#f5f5f5" ,
61- headerBg : isDarkTheme ? "#141414" : "#001529 " ,
76+ headerBg : isDarkTheme ? "#141414" : "#24292F " ,
6277 footerBg : isDarkTheme ? "#141414" : "#f0f2f5" ,
6378 } ,
79+ Button : {
80+ colorPrimaryHover : isDarkTheme ? "#2EA043" : "#2EA043" ,
81+ } ,
82+ Progress : {
83+ colorInfo : primaryColor ,
84+ } ,
6485 } ,
6586 } }
6687 >
6788 < Layout style = { { width : "100%" , minHeight : "100vh" } } >
6889 < Header className = "app-header" >
69- < div className = "app-logo" > NPM Version Checker</ div >
90+ < Link
91+ className = "app-logo"
92+ onClick = { handleLogoClick }
93+ style = { { color : "white" , cursor : "pointer" } }
94+ >
95+ NPM Version Popularity
96+ </ Link >
7097 < ThemeToggle />
7198 </ Header >
7299 < Content className = "app-content" >
@@ -83,8 +110,7 @@ const AppContent: React.FC = () => {
83110 </ div >
84111 </ Content >
85112 < Footer className = "app-footer" >
86- NPM Version Popularity Checker ©{ new Date ( ) . getFullYear ( ) } Created
87- with Ant Design
113+ NPM Version Popularity ©{ new Date ( ) . getFullYear ( ) }
88114 </ Footer >
89115 </ Layout >
90116 </ ConfigProvider >
0 commit comments