Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
9 changes: 0 additions & 9 deletions .eslintignore

This file was deleted.

44 changes: 0 additions & 44 deletions .eslintrc.json

This file was deleted.

8 changes: 4 additions & 4 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
- package-ecosystem: 'npm' # See documentation for possible values
directory: '/' # Location of package manifests
schedule:
interval: "weekly"
interval: 'weekly'
groups:
dependencies:
patterns:
- "*" # Combines all npm updates into one PR
- '*' # Combines all npm updates into one PR
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22.22.1
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
"printWidth": 100,
"tabWidth": 2,
"useTabs": false,
"arrowParens": "always"
"arrowParens": "always",
"endOfLine": "auto"
}
22 changes: 11 additions & 11 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
- Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities
Expand Down Expand Up @@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
Expand Down
13 changes: 10 additions & 3 deletions app/globals.css
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import 'tailwindcss';

@theme {
--color-primary: #ccff00;
--color-secondary: #ff00ff;
--color-tertiary: #00f0ff;
--color-background: #050505;
--color-surface: #121212;
--color-elevated: #1a1a1a;
}

@layer base {
html {
Expand Down
4 changes: 2 additions & 2 deletions app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
'use client';

import { Github, User, Users, BarChart3, TrendingUp } from 'lucide-react';
import { GitBranch, User, Users, BarChart3, TrendingUp } from 'lucide-react';
import Link from 'next/link';

export default function Home() {
Expand Down Expand Up @@ -31,7 +31,7 @@ export default function Home() {
href="/"
className="flex items-center space-x-3 hover:opacity-80 transition-opacity"
>
<Github className="h-8 w-8 text-primary" />
<GitBranch className="h-8 w-8 text-primary" />
<h1 className="text-2xl font-bold text-primary">GitHub Toolkit</h1>
</Link>
</div>
Expand Down
4 changes: 2 additions & 2 deletions components/CompareProfiles.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use client';

import { useState } from 'react';
import { Github } from 'lucide-react';
import { GitBranch } from 'lucide-react';
import Link from 'next/link';
import ComparisonView from '@/components/ComparisonView';

Expand Down Expand Up @@ -46,7 +46,7 @@ export default function CompareProfiles() {
href="/"
className="flex items-center space-x-3 hover:opacity-80 transition-opacity"
>
<Github className="h-8 w-8 text-primary" />
<GitBranch className="h-8 w-8 text-primary" />
<h1 className="text-2xl font-bold text-primary">GitHub Toolkit</h1>
</Link>
</div>
Expand Down
8 changes: 3 additions & 5 deletions components/LanguageChart.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,11 @@ interface LanguageChartProps {
}

export default function LanguageChart({ data }: LanguageChartProps) {
const [isMobile, setIsMobile] = useState(false);
const [isMobile, setIsMobile] = useState(() =>
typeof window !== 'undefined' ? window.innerWidth < 768 : false
);

useEffect(() => {
// Check if mobile on mount
setIsMobile(window.innerWidth < 768);

// Handle window resize
const handleResize = () => {
setIsMobile(window.innerWidth < 768);
};
Expand Down
4 changes: 2 additions & 2 deletions components/ProfileAnalyzer.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use client';

import { useState } from 'react';
import { Search, Github } from 'lucide-react';
import { Search, GitBranch } from 'lucide-react';
import Link from 'next/link';
import ProfileCard from '@/components/ProfileCard';
import RepositoryList from '@/components/RepositoryList';
Expand Down Expand Up @@ -50,7 +50,7 @@ export default function ProfileAnalyzer() {
href="/"
className="flex items-center space-x-3 hover:opacity-80 transition-opacity"
>
<Github className="h-8 w-8 text-primary" />
<GitBranch className="h-8 w-8 text-primary" />
<h1 className="text-2xl font-bold text-primary">GitHub Toolkit</h1>
</Link>
</div>
Expand Down
4 changes: 2 additions & 2 deletions components/ProfileCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import Image from 'next/image';
import { GitHubProfile } from '@/types';
import { MapPin, Building, Globe, Twitter, Calendar, Users, Star, GitFork } from 'lucide-react';
import { MapPin, Building, Globe, AtSign, Calendar, Users, Star, GitFork } from 'lucide-react';

interface ProfileCardProps {
profile: GitHubProfile;
Expand Down Expand Up @@ -71,7 +71,7 @@ export default function ProfileCard({ profile }: ProfileCardProps) {
)}
{profile.twitter_username && (
<div className="flex items-center space-x-2 text-gray-400">
<Twitter className="h-4 w-4" />
<AtSign className="h-4 w-4" />
<a
href={`https://twitter.com/${profile.twitter_username}`}
target="_blank"
Expand Down
51 changes: 51 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import nextConfig from 'eslint-config-next';
import tsPlugin from '@typescript-eslint/eslint-plugin';
import prettierConfig from 'eslint-config-prettier';
import prettierPlugin from 'eslint-plugin-prettier';
import { fixupConfigRules } from '@eslint/compat';

export default [
{
ignores: [
'node_modules/**',
'.next/**',
'out/**',
'build/**',
'dist/**',
'.husky/**',
'coverage/**',
'*.config.js',
'*.config.mjs',
],
},
// Next.js flat config — wrapped to fix legacy eslint-plugin-react context APIs
...fixupConfigRules(nextConfig),
// @typescript-eslint recommended rules (plugin already registered by nextConfig)
...tsPlugin.configs['flat/recommended'].map(({ plugins: _p, ...config }) => config),
// Disable formatting rules that conflict with Prettier
prettierConfig,
// Custom rules + prettier plugin
{
files: ['**/*.{ts,tsx,js,jsx}'],
plugins: {
prettier: prettierPlugin,
},
rules: {
'react/react-in-jsx-scope': 'off',
'react/prop-types': 'off',
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
],
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/explicit-function-return-types': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'prettier/prettier': 'error',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
},
settings: {
react: { version: 'detect' },
},
},
];
3 changes: 2 additions & 1 deletion next-env.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
import './.next/dev/types/routes.d.ts';

// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
51 changes: 29 additions & 22 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,43 +9,50 @@
"dev": "concurrently \"npm run next-dev\" \"npm run flask-dev\"",
"build": "next build",
"start": "next start",
"lint": "eslint . --ext .ts,.tsx,.js,.jsx",
"lint:fix": "npm run lint -- --fix",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"type-check": "tsc --noEmit",
"format": "prettier --write .",
"format:check": "prettier --check .",
"qa": "npm run lint && npm run type-check && npm run format:check",
"prepare": "husky install"
},
"dependencies": {
"autoprefixer": "^10.4.16",
"axios": "^1.15.2",
"chart.js": "^4.4.0",
"autoprefixer": "^10.5.0",
"axios": "^1.16.1",
"chart.js": "^4.5.1",
"concurrently": "^9.2.1",
"lucide-react": "^0.292.0",
"next": "15.5.18",
"postcss": "^8.5.10",
"react": "18.2.0",
"react-chartjs-2": "^5.2.0",
"react-dom": "18.2.0",
"tailwindcss": "^3.3.0"
"lucide-react": "^1.16.0",
"next": "16.2.6",
"postcss": "^8.5.14",
"react": "19.2.6",
"react-chartjs-2": "^5.3.1",
"react-dom": "19.2.6",
"tailwindcss": "^4.3.0"
},
"devDependencies": {
"@types/node": "20.8.0",
"@types/react": "18.2.0",
"@types/react-dom": "18.2.0",
"@typescript-eslint/eslint-plugin": "^8.55.0",
"@typescript-eslint/parser": "^8.55.0",
"@eslint/compat": "^2.1.0",
"@tailwindcss/postcss": "^4.3.0",
"@types/node": "25.8.0",
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"@typescript-eslint/eslint-plugin": "^8.59.3",
"@typescript-eslint/parser": "^8.59.3",
"baseline-browser-mapping": "^2.9.19",
"eslint": "^8.57.1",
"eslint-config-next": "14.0.0",
"eslint": "^10.3.0",
"eslint-config-next": "16.2.6",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^7.0.1",
"husky": "^9.1.7",
"lint-staged": "^16.2.7",
"prettier": "^3.8.1",
"typescript": "5.2.2"
"lint-staged": "^17.0.4",
"prettier": "^3.8.3",
"typescript": "6.0.3"
},
"resolutions": {
"minimatch": "^9.0.6",
"picomatch": "^2.3.2"
},
"lint-staged": {
"*.{ts,tsx,js,jsx}": [
Expand Down
2 changes: 1 addition & 1 deletion postcss.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
'@tailwindcss/postcss': {},
autoprefixer: {},
},
};
Loading