├── .eslintrc.json ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── suggest_project.yml ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ ├── deploy.yml │ └── pr.yml ├── .gitignore ├── .husky └── pre-commit ├── .prettierrc ├── CNAME ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SUPPORT.md ├── components ├── Footer │ ├── Footer.module.scss │ └── Footer.tsx ├── GeneralFilter.tsx ├── HappyCommitsInfo.tsx ├── HappyContainer.tsx ├── Header │ ├── Header.module.scss │ └── Header.tsx ├── HeroContainer.tsx ├── IssueItem.tsx ├── IssueList.tsx ├── LanguageFilter.tsx ├── Layout.tsx ├── RepositoryDescription.tsx ├── RepositoryIssueNumberIndicator.tsx ├── RepositoryItem.tsx ├── RepositoryItemTopBar.tsx ├── RepositoryLinkTitle.tsx ├── RepositoryList.tsx ├── RepositoryMetadata.tsx └── SDGFilter.tsx ├── constants.ts ├── context └── AppDataContext.tsx ├── generate.ts ├── generated.json ├── happycommits.json ├── hooks └── useAppData.tsx ├── next.config.js ├── package-lock.json ├── package.json ├── pages ├── _app.tsx ├── _document.tsx └── index.tsx ├── postcss.config.js ├── public ├── android-favicon.png ├── apple-touch-icon.png ├── favicon.png ├── for-good-first-issue.svg ├── github.svg └── robots.txt ├── styles ├── favicon.ico └── globals.scss ├── tailwind.config.js ├── templates ├── CODEOWNERS └── CODE_OF_CONDUCT.md ├── topics.json ├── topics.ts ├── tsconfig.json └── types.ts /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "plugin:@typescript-eslint/recommended", 4 | "next", 5 | "next/core-web-vitals", 6 | "prettier" 7 | ], 8 | "parser": "@typescript-eslint/parser", 9 | "parserOptions": { 10 | "ecmaFeatures": { 11 | "jsx": true 12 | }, 13 | "ecmaVersion": 12, 14 | "sourceType": "module" 15 | }, 16 | "plugins": ["@typescript-eslint"] 17 | } 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/suggest_project.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: 💪 Suggest a Project 3 | description: Have a project that we should be listing? Let us know! 4 | title: "[New Project]:
10 | {repositoryDescription}{" "} 11 |
12 | ); 13 | }; 14 | -------------------------------------------------------------------------------- /components/RepositoryIssueNumberIndicator.tsx: -------------------------------------------------------------------------------- 1 | import { FaChevronDown } from 'react-icons/fa'; 2 | import { FaChevronUp } from 'react-icons/fa'; 3 | 4 | type RepositoryIssueNumberIndicatorProps = { 5 | isIssueOpen: boolean; 6 | }; 7 | 8 | export const RepositoryIssueNumberIndicator = ({ 9 | isIssueOpen 10 | }: RepositoryIssueNumberIndicatorProps) => { 11 | return ( 12 | 13 | {isIssueOpen ?