From c33131fdc4e1e8c3cf64e362dad99b0f5a81d6ec Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Thu, 31 Jul 2025 23:26:26 +0530 Subject: [PATCH 01/24] Refactor header and hero components; add SVG icons for logo and hero section. Update styles for improved responsiveness and visual consistency. --- src/app/(public)/_components/header.tsx | 21 +- src/app/(public)/_components/hero.tsx | 13 +- src/components/Icons.tsx | 1239 +++++++++++++++++++++++ 3 files changed, 1256 insertions(+), 17 deletions(-) create mode 100644 src/components/Icons.tsx diff --git a/src/app/(public)/_components/header.tsx b/src/app/(public)/_components/header.tsx index 8bbf09c..b95f122 100644 --- a/src/app/(public)/_components/header.tsx +++ b/src/app/(public)/_components/header.tsx @@ -6,33 +6,30 @@ import { BsPeopleFill } from 'react-icons/bs'; import { SearchForm } from './search-form'; import { auth } from '@/auth'; import { signInAction, signOutAction } from '../../actions'; +import { LogoIconsSvg } from '@/components/Icons'; export async function Header() { const session = await auth(); return ( -
-
-
- - Hacktoberfest +
+
+
+ +
-
@@ -41,7 +38,7 @@ export async function Header() { href="https://github.com/max-programming/hacktoberfest-projects" target="_blank" rel="noreferrer" - className="btn btn-square btn-ghost umami--click--github-button" + className="btn btn-square btn-ghost umami--click--github-button hover:bg-blue-700 transition-colors" > diff --git a/src/app/(public)/_components/hero.tsx b/src/app/(public)/_components/hero.tsx index 40b1717..3ef1da5 100644 --- a/src/app/(public)/_components/hero.tsx +++ b/src/app/(public)/_components/hero.tsx @@ -9,6 +9,7 @@ import Link from 'next/link'; import { sortByName } from '@/lib/utils'; import languages from '@/assets/languages.json'; +import { HeroSectionSvg } from '@/components/Icons'; const { main: mainLanguages, others: otherLanguages } = languages; @@ -23,9 +24,8 @@ export function Hero() { } return ( -
-
-
+
+ {/*

Search your language @@ -39,13 +39,13 @@ export function Hero() {

@@ -79,6 +79,9 @@ export function Hero() {
+
*/} +
+
); diff --git a/src/components/Icons.tsx b/src/components/Icons.tsx new file mode 100644 index 0000000..eb12115 --- /dev/null +++ b/src/components/Icons.tsx @@ -0,0 +1,1239 @@ +export const LogoIconsSvg = () => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; +export const HeroSectionSvg = ({ className }: { className?: string }) => { + return ( + + + + + + + + + + ); +}; From 155f16e682b91582b5f45b897487e126416630ad Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Thu, 31 Jul 2025 23:26:35 +0530 Subject: [PATCH 02/24] Update styles and components for improved UI; add new gradients and button effects, modify layout background color, and enhance button accessibility. --- .gitignore | 3 +- src/app/(public)/_components/button.tsx | 7 +++- src/app/(public)/_components/header.tsx | 2 +- src/app/(public)/_components/hero.tsx | 26 ++++++------ .../(public)/_components/language-button.tsx | 2 +- src/app/layout.tsx | 2 +- src/styles/globals.css | 40 ++++++++++++++++--- tailwind.config.ts | 15 +++++-- 8 files changed, 69 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index 00871d2..4895555 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /.pnp .pnp.js package-lock.json +.env* # testing /coverage @@ -33,4 +34,4 @@ yarn-error.log* # vercel .vercel -.env*.local +.env*.local \ No newline at end of file diff --git a/src/app/(public)/_components/button.tsx b/src/app/(public)/_components/button.tsx index 4547cf7..334d998 100644 --- a/src/app/(public)/_components/button.tsx +++ b/src/app/(public)/_components/button.tsx @@ -14,12 +14,15 @@ export function Button({
); diff --git a/src/app/(public)/_components/header.tsx b/src/app/(public)/_components/header.tsx index b95f122..acb39f8 100644 --- a/src/app/(public)/_components/header.tsx +++ b/src/app/(public)/_components/header.tsx @@ -13,7 +13,7 @@ export async function Header() { return (
-
+
diff --git a/src/app/(public)/_components/hero.tsx b/src/app/(public)/_components/hero.tsx index 3ef1da5..f97e656 100644 --- a/src/app/(public)/_components/hero.tsx +++ b/src/app/(public)/_components/hero.tsx @@ -24,14 +24,14 @@ export function Hero() { } return ( -
- {/*
-
-

+
+
+
+

Search your language

@@ -51,15 +51,15 @@ export function Hero() {
-

+

Or select the programming language you would like to find repositories for.

- - {mainLanguages.map(language => ( - - ))} - +
+ {mainLanguages.map(language => ( + + ))} +
-
*/} -
+
+
diff --git a/src/app/(public)/_components/language-button.tsx b/src/app/(public)/_components/language-button.tsx index 2dd30f6..bc5c915 100644 --- a/src/app/(public)/_components/language-button.tsx +++ b/src/app/(public)/_components/language-button.tsx @@ -11,7 +11,7 @@ export function LanguageButton({ language }: LanguageButtonProps) { return ( - diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d343880..871be2a 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -18,7 +18,7 @@ const spaceGrotesk = Space_Grotesk({ export default function RootLayout({ children }: React.PropsWithChildren) { return ( - + {children}
diff --git a/src/styles/globals.css b/src/styles/globals.css index 78c4857..aec078f 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -17,15 +17,43 @@ a { } .btn-clip { + --corner-size: 5px; + --border-width: 1px; + --full-width: calc(var(--corner-size) + var(--border-width)); + position: absolute; + inset: -2px; + background-color: white; clip-path: polygon( - 12px 0px, - 100% 0px, - 100% 72%, - calc(100% - 12px) 100%, + 0px var(--full-width), + var(--border-width) var(--full-width), + var(--border-width) var(--border-width), + var(--full-width) var(--border-width), + var(--full-width) 0px, + 0px 0px, 0px 100%, - 0px 12px + 100% 100%, + 100% 0px, + calc(100% - var(--full-width)) 0px, + calc(100% - var(--full-width)) var(--border-width), + calc(100% - var(--border-width)) var(--border-width), + calc(100% - var(--border-width)) var(--full-width), + 100% var(--full-width), + 100% calc(100% - var(--full-width)), + calc(100% - var(--border-width)) calc(100% - var(--full-width)), + calc(100% - var(--border-width)) calc(100% - var(--border-width)), + calc(100% - var(--full-width)) calc(100% - var(--border-width)), + calc(100% - var(--full-width)) 100%, + var(--full-width) 100%, + var(--full-width) calc(100% - var(--border-width)), + var(--border-width) calc(100% - var(--border-width)), + var(--border-width) calc(100% - var(--full-width)), + 0px calc(100% - var(--full-width)), + 0px var(--full-width) ); - border-radius: 2px; + transition: + inset 300ms ease-in-out, + clip-path 300ms ease-in-out, + color 300ms ease-in-out; } .container-query { diff --git a/tailwind.config.ts b/tailwind.config.ts index 04fb7ef..62acb06 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -13,7 +13,11 @@ const config = { }, backgroundImage: { 'gradient-radial': - 'radial-gradient(30% 50% at center 50%, var(--tw-gradient-stops))' + 'radial-gradient(30% 50% at center 50%, var(--tw-gradient-stops))', + 'primary-btn-hover-gradient': + 'linear-gradient(270deg, rgb(194, 194, 255) 0%, rgb(90, 90, 181) 100%)', + 'primary-btn-gradient': + 'linear-gradient(90deg,rgb(from rgb(90, 90, 181) r g b / 0.15) 0%,rgb(from rgb(194, 194, 255) r g b / 0.15) 100%)' }, backgroundSize: { '50': '50%', @@ -23,17 +27,22 @@ const config = { sm: '0 1px 2px var(--tw-shadow-color)', DEFAULT: '0 0 10px var(--tw-shadow-color), 0 0 20px var(--tw-shadow-color)', - lg: '0 8px 16px var(--tw-shadow-color)' + lg: '0 8px 16px var(--tw-shadow-color)', + 'button-shadow': 'transparent 0px 0px 0px 1px', + 'primary-btn-shadow': + 'rgb(from rgb(208, 204, 227) r g b / 0.25) 0px 0px 0px 1px' }, colors: { hacktoberfest: { black: '#1C1C1C', green: '#50DA4C', + blue: '#1c1c3f', pink: '#FF8BFF', - light: '#FEFDF8', + light: '#d0cce3', beige: '#F3F0E0', 'dark-green': '#183717', 'light-green': '#D8FFD8', + 'light-blue': '#403f7d', 'deep-pink': '#C401C4', 'light-pink': '#FFDBFF' } From ad8b61026f3e33708cd7a8706a1c39ff93ede7a0 Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Sat, 2 Aug 2025 12:50:50 +0530 Subject: [PATCH 03/24] Enhance UI components with new gradients and animations; update button styles for smoother transitions, improve hero section layout, and add marquee text animation for better visual appeal. --- src/app/(public)/_components/button.tsx | 6 +-- src/app/(public)/_components/hero.tsx | 15 ++++--- .../_components/marque-text-animation.tsx | 37 +++++++++++++++++ src/styles/globals.css | 40 ++++++++++++++++++- tailwind.config.ts | 8 ++-- 5 files changed, 93 insertions(+), 13 deletions(-) create mode 100644 src/app/(public)/_components/marque-text-animation.tsx diff --git a/src/app/(public)/_components/button.tsx b/src/app/(public)/_components/button.tsx index 334d998..464a185 100644 --- a/src/app/(public)/_components/button.tsx +++ b/src/app/(public)/_components/button.tsx @@ -11,15 +11,15 @@ export function Button({ ...props }: PropsWithChildren) { return ( -
+
@@ -79,6 +81,7 @@ export function Hero() {
+

diff --git a/src/app/(public)/_components/marque-text-animation.tsx b/src/app/(public)/_components/marque-text-animation.tsx new file mode 100644 index 0000000..b71a78f --- /dev/null +++ b/src/app/(public)/_components/marque-text-animation.tsx @@ -0,0 +1,37 @@ +import React from 'react'; + +const MarqueeItem = () => ( + <> + {Array.from({ length: 4 }).map((_, i) => ( + + + Hacktoberfest 2025 + + + + ))} + +); + +export function MarqueTextAnimation() { + return ( +
+
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ ); +} diff --git a/src/styles/globals.css b/src/styles/globals.css index aec078f..e764601 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -53,7 +53,17 @@ a { transition: inset 300ms ease-in-out, clip-path 300ms ease-in-out, - color 300ms ease-in-out; + color 300ms ease-in-out !important; +} + +.btn-clip:hover { + inset: 0px; + color: transparent; +} + +.heading-text { + color: #ffffff; + text-shadow: rgb(from #d0cce3 r g b / 0.5) 0px 0px 10px; } .container-query { @@ -90,3 +100,31 @@ a { @apply w-full left-0; } } +.text-webkit { + -webkit-text-stroke: 1px #5a5ab5; +} + +@keyframes marquee { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(-50%); + } +} + +.animate-marquee { + animation: marquee 20s linear infinite; +} +@keyframes marquee-reverse { + 0% { + transform: translateX(-50%); + } + 100% { + transform: translateX(0); + } +} + +.animate-marquee-reverse { + animation: marquee-reverse 20s linear infinite; +} diff --git a/tailwind.config.ts b/tailwind.config.ts index 62acb06..18bf245 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -12,12 +12,14 @@ const config = { sans: ['var(--font-space-grotesk)', 'ui-sans-serif', 'system-ui'] }, backgroundImage: { - 'gradient-radial': - 'radial-gradient(30% 50% at center 50%, var(--tw-gradient-stops))', 'primary-btn-hover-gradient': 'linear-gradient(270deg, rgb(194, 194, 255) 0%, rgb(90, 90, 181) 100%)', + 'hero-gradient': + 'radial-gradient(85.48% 85.48% at 50% 0%,rgb(64,63,125) 0%,rgb(from rgb(28,28,63) r g b/ 0) 100%)', 'primary-btn-gradient': - 'linear-gradient(90deg,rgb(from rgb(90, 90, 181) r g b / 0.15) 0%,rgb(from rgb(194, 194, 255) r g b / 0.15) 100%)' + 'linear-gradient(90deg,rgb(from rgb(90, 90, 181) r g b / 0.15) 0%,rgb(from rgb(194, 194, 255) r g b / 0.15) 100%)', + 'square-box-gradient': + 'linear-gradient(to right,rgb(194, 194, 255) 0px,rgb(194, 194, 255) 12px,transparent 12px,transparent 28px,rgb(90, 90, 181) 28px,rgb(90, 90, 181) 40px,transparent 40px,transparent 56px,rgb(64, 63, 125) 56px,rgb(64, 63, 125) 68px)' }, backgroundSize: { '50': '50%', From 58b98880aa6909a04857df1c614b014e8f0cd4d9 Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Sat, 2 Aug 2025 13:00:37 +0530 Subject: [PATCH 04/24] Refactor Header component for improved mobile responsiveness; integrate mobile search and navigation, and update button implementation for better accessibility. --- src/app/(public)/_components/header.tsx | 26 ++++++-- src/app/(public)/_components/mobile-menu.tsx | 67 ++++++++++++++++++++ 2 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 src/app/(public)/_components/mobile-menu.tsx diff --git a/src/app/(public)/_components/header.tsx b/src/app/(public)/_components/header.tsx index acb39f8..47bc080 100644 --- a/src/app/(public)/_components/header.tsx +++ b/src/app/(public)/_components/header.tsx @@ -7,25 +7,31 @@ import { SearchForm } from './search-form'; import { auth } from '@/auth'; import { signInAction, signOutAction } from '../../actions'; import { LogoIconsSvg } from '@/components/Icons'; +import { Button } from './button'; +import { MobileMenu } from './mobile-menu'; export async function Header() { const session = await auth(); return ( -
-
+
+
- + {/* Desktop Search - Hidden on mobile */} +
+ +
-
+ {/* Desktop Navigation - Hidden on mobile */} +
- +
+ + {/* Mobile Hamburger Menu */} + +
+ + {/* Mobile Search - Visible only on mobile */} +
+
diff --git a/src/app/(public)/_components/mobile-menu.tsx b/src/app/(public)/_components/mobile-menu.tsx new file mode 100644 index 0000000..1e7f2e2 --- /dev/null +++ b/src/app/(public)/_components/mobile-menu.tsx @@ -0,0 +1,67 @@ +'use client'; + +import Link from 'next/link'; +import { useState } from 'react'; + +import { IoLogoGithub } from 'react-icons/io'; +import { BsPeopleFill } from 'react-icons/bs'; +import { HiMenu, HiX } from 'react-icons/hi'; + +import { Button } from './button'; +import { signInAction, signOutAction } from '../../actions'; + +interface MobileMenuProps { + session: any; +} + +export function MobileMenu({ session }: MobileMenuProps) { + const [isOpen, setIsOpen] = useState(false); + + const toggleMenu = () => setIsOpen(!isOpen); + + return ( +
+ {/* Hamburger Button */} + + + {/* Mobile Menu Overlay */} + {isOpen && ( +
+
+
+ +
+ + setIsOpen(false)} + > + + Contributors + + + setIsOpen(false)} + > + + GitHub + +
+
+ )} +
+ ); +} From 5225c76943a308064777b361bc7fb1cae9918710 Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Sat, 2 Aug 2025 13:01:30 +0530 Subject: [PATCH 05/24] Update footer component styles for improved layout consistency; remove unnecessary padding for a cleaner design. --- src/components/footer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/footer.tsx b/src/components/footer.tsx index 0044ba9..cc65bcd 100644 --- a/src/components/footer.tsx +++ b/src/components/footer.tsx @@ -8,7 +8,7 @@ const formatter = new Intl.ListFormat('en', { export function Footer() { return ( -
diff --git a/src/app/(public)/repos/[language]/_components/pagination.tsx b/src/app/(public)/repos/[language]/_components/pagination.tsx index f104512..cfb6828 100644 --- a/src/app/(public)/repos/[language]/_components/pagination.tsx +++ b/src/app/(public)/repos/[language]/_components/pagination.tsx @@ -18,7 +18,7 @@ export function Pagination({
{page > 1 && ( - @@ -27,7 +27,7 @@ export function Pagination({ {totalCount >= MAX_PER_PAGE && page < Math.ceil(totalCount / MAX_PER_PAGE) && ( - diff --git a/src/app/(public)/repos/[language]/_components/repo-card.tsx b/src/app/(public)/repos/[language]/_components/repo-card.tsx index 1af332b..10e812b 100644 --- a/src/app/(public)/repos/[language]/_components/repo-card.tsx +++ b/src/app/(public)/repos/[language]/_components/repo-card.tsx @@ -32,7 +32,7 @@ export function RepoCard({ repo }: RepoCardProps) { const hasMoreTopics = sortedTopics?.length > MAX_TOPICS_DISPLAY; return ( -
+
@@ -49,7 +49,7 @@ export function RepoCard({ repo }: RepoCardProps) { className="rounded-full" /> -

+

Read more @@ -86,15 +86,15 @@ export function RepoCard({ repo }: RepoCardProps) { className={cn( 'badge inline px-3 py-0.5 h-auto', topic === 'hacktoberfest' - ? 'bg-hacktoberfest-light-green text-hacktoberfest-dark-green' - : 'bg-hacktoberfest-deep-pink text-hacktoberfest-light-pink' + ? 'bg-hacktoberfest-beige text-hacktoberfest-blue' + : 'bg-hacktoberfest-light-blue text-hacktoberfest-light' )} > {topic} ))} {hasMoreTopics && ( - ... + ... )}

@@ -104,43 +104,49 @@ export function RepoCard({ repo }: RepoCardProps) { - +
-
+
{numberFormatter.format(repo.stargazers_count)}
-
Stars
+
+ Stars +
- +
-
+
{numberFormatter.format(repo.forks)}
-
Forks
+
+ Forks +
- + diff --git a/src/app/(public)/repos/[language]/_components/scroll-to-top.tsx b/src/app/(public)/repos/[language]/_components/scroll-to-top.tsx index ade9b47..e0b94b5 100644 --- a/src/app/(public)/repos/[language]/_components/scroll-to-top.tsx +++ b/src/app/(public)/repos/[language]/_components/scroll-to-top.tsx @@ -34,7 +34,7 @@ export function ScrollToTop() { animate={{ opacity: 1 }} exit={{ opacity: 0 }} > - diff --git a/src/app/(public)/repos/[language]/_components/sorter.tsx b/src/app/(public)/repos/[language]/_components/sorter.tsx index 22741cd..1b4e8bb 100644 --- a/src/app/(public)/repos/[language]/_components/sorter.tsx +++ b/src/app/(public)/repos/[language]/_components/sorter.tsx @@ -116,40 +116,43 @@ export function Sorter() { } return ( -
+
-
+
    {mainLanguages.sort(sortByName).map(language => { const sp = new URLSearchParams(searchParams); sp.delete('p'); return ( -
  • - - {language} - -
  • +
  • + + {language} + +
  • ); - })} + })}
-
+
    {navigationItems.map((item, index) => { const sp = item.onSelect(new URLSearchParams(searchParams)); @@ -160,7 +163,12 @@ export function Sorter() { } return (
  • - {item.name} + + {item.name} +
  • ); })} diff --git a/src/app/(public)/repos/[language]/_components/stars-filter.tsx b/src/app/(public)/repos/[language]/_components/stars-filter.tsx index 8f32d8d..a429587 100644 --- a/src/app/(public)/repos/[language]/_components/stars-filter.tsx +++ b/src/app/(public)/repos/[language]/_components/stars-filter.tsx @@ -62,7 +62,7 @@ export function StarsFilter() { render={({ field }) => ( field.onChange(e.target.valueAsNumber)} placeholder="Star's Starting Range" @@ -76,7 +76,7 @@ export function StarsFilter() { render={({ field }) => ( field.onChange(e.target.valueAsNumber)} placeholder="Star's Finish Range" @@ -89,7 +89,7 @@ export function StarsFilter() { {/* Flex container to center the button */}
    +
    + + {/* Decorative Elements */} +
    +
    +
    +
    +
diff --git a/src/components/Icons.tsx b/src/components/Icons.tsx index eb12115..0ab5aa5 100644 --- a/src/components/Icons.tsx +++ b/src/components/Icons.tsx @@ -1219,7 +1219,7 @@ export const HeroSectionSvg = ({ className }: { className?: string }) => { { y2="776.532" gradientUnits="userSpaceOnUse" > - - + + diff --git a/src/styles/globals.css b/src/styles/globals.css index 315d090..1157412 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -147,7 +147,7 @@ a { } .bg-shimmer { - background: linear-gradient(90deg, #183717 25%, #50da4c 50%, #183717 75%); + background: linear-gradient(90deg, #1c1c3f 25%, #403f7d 50%, #1c1c3f 75%); background-size: 200% 100%; } } diff --git a/src/xata.ts b/src/xata.ts index 132b58c..cbdd9e2 100644 --- a/src/xata.ts +++ b/src/xata.ts @@ -1,146 +1,23 @@ // Generated by Xata Codegen 0.30.1. Please do not edit. -import { buildClient } from "@xata.io/client"; +import { buildClient } from '@xata.io/client'; import type { BaseClientOptions, SchemaInference, - XataRecord, -} from "@xata.io/client"; + XataRecord +} from '@xata.io/client'; -const tables = [ - { - name: "reports", - columns: [ - { name: "repoId", type: "int", unique: true }, - { name: "repoAuthor", type: "string" }, - { - name: "message", - type: "text", - notNull: true, - defaultValue: "No Message", - }, - { name: "user", type: "link", link: { table: "nextauth_users" } }, - { name: "valid", type: "bool", notNull: true, defaultValue: "true" }, - { name: "repoUrl", type: "string", unique: true }, - ], - }, - { - name: "nextauth_users", - columns: [ - { name: "email", type: "email" }, - { name: "emailVerified", type: "datetime" }, - { name: "name", type: "string" }, - { name: "image", type: "string" }, - ], - revLinks: [ - { column: "user", table: "nextauth_accounts" }, - { column: "user", table: "nextauth_users_accounts" }, - { column: "user", table: "nextauth_users_sessions" }, - { column: "user", table: "nextauth_sessions" }, - { column: "user", table: "reports" }, - { column: "user", table: "bookmarks" }, - ], - }, - { - name: "nextauth_accounts", - columns: [ - { name: "user", type: "link", link: { table: "nextauth_users" } }, - { name: "type", type: "string" }, - { name: "provider", type: "string" }, - { name: "providerAccountId", type: "string" }, - { name: "refresh_token", type: "string" }, - { name: "access_token", type: "string" }, - { name: "expires_at", type: "int" }, - { name: "token_type", type: "string" }, - { name: "scope", type: "string" }, - { name: "id_token", type: "text" }, - { name: "session_state", type: "string" }, - ], - revLinks: [{ column: "account", table: "nextauth_users_accounts" }], - }, - { - name: "nextauth_verificationTokens", - columns: [ - { name: "identifier", type: "string" }, - { name: "token", type: "string" }, - { name: "expires", type: "datetime" }, - ], - }, - { - name: "nextauth_users_accounts", - columns: [ - { name: "user", type: "link", link: { table: "nextauth_users" } }, - { name: "account", type: "link", link: { table: "nextauth_accounts" } }, - ], - }, - { - name: "nextauth_users_sessions", - columns: [ - { name: "user", type: "link", link: { table: "nextauth_users" } }, - { name: "session", type: "link", link: { table: "nextauth_sessions" } }, - ], - }, - { - name: "nextauth_sessions", - columns: [ - { name: "sessionToken", type: "string" }, - { name: "expires", type: "datetime" }, - { name: "user", type: "link", link: { table: "nextauth_users" } }, - ], - revLinks: [{ column: "session", table: "nextauth_users_sessions" }], - }, - { - name: "bookmarks", - columns: [ - { name: "user", type: "link", link: { table: "nextauth_users" } }, - ], - }, -] as const; +const tables = [] as const; export type SchemaTables = typeof tables; export type InferredTypes = SchemaInference; -export type Reports = InferredTypes["reports"]; -export type ReportsRecord = Reports & XataRecord; - -export type NextauthUsers = InferredTypes["nextauth_users"]; -export type NextauthUsersRecord = NextauthUsers & XataRecord; - -export type NextauthAccounts = InferredTypes["nextauth_accounts"]; -export type NextauthAccountsRecord = NextauthAccounts & XataRecord; - -export type NextauthVerificationTokens = - InferredTypes["nextauth_verificationTokens"]; -export type NextauthVerificationTokensRecord = NextauthVerificationTokens & - XataRecord; - -export type NextauthUsersAccounts = InferredTypes["nextauth_users_accounts"]; -export type NextauthUsersAccountsRecord = NextauthUsersAccounts & XataRecord; - -export type NextauthUsersSessions = InferredTypes["nextauth_users_sessions"]; -export type NextauthUsersSessionsRecord = NextauthUsersSessions & XataRecord; - -export type NextauthSessions = InferredTypes["nextauth_sessions"]; -export type NextauthSessionsRecord = NextauthSessions & XataRecord; - -export type Bookmarks = InferredTypes["bookmarks"]; -export type BookmarksRecord = Bookmarks & XataRecord; - -export type DatabaseSchema = { - reports: ReportsRecord; - nextauth_users: NextauthUsersRecord; - nextauth_accounts: NextauthAccountsRecord; - nextauth_verificationTokens: NextauthVerificationTokensRecord; - nextauth_users_accounts: NextauthUsersAccountsRecord; - nextauth_users_sessions: NextauthUsersSessionsRecord; - nextauth_sessions: NextauthSessionsRecord; - bookmarks: BookmarksRecord; -}; +export type DatabaseSchema = {}; const DatabaseClient = buildClient(); const defaultOptions = { databaseURL: - "https://Usman-Sabuwala-s-workspace-u2kcvd.us-east-1.xata.sh/db/project-finder-hf", + 'https://Adnan-Arodiya-s-workspace-4n85nl.eu-central-1.xata.sh/db/hacktoberfest-projects' }; export class XataClient extends DatabaseClient { diff --git a/tailwind.config.ts b/tailwind.config.ts index 18bf245..2e78a65 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -36,17 +36,17 @@ const config = { }, colors: { hacktoberfest: { - black: '#1C1C1C', - green: '#50DA4C', + // black: '#1C1C1C', + // green: '#50DA4C', blue: '#1c1c3f', - pink: '#FF8BFF', + // pink: '#FF8BFF', light: '#d0cce3', beige: '#F3F0E0', - 'dark-green': '#183717', - 'light-green': '#D8FFD8', - 'light-blue': '#403f7d', - 'deep-pink': '#C401C4', - 'light-pink': '#FFDBFF' + // 'dark-green': '#183717', + // 'light-green': '#D8FFD8', + 'light-blue': '#403f7d' + // 'deep-pink': '#C401C4', + // 'light-pink': '#FFDBFF' } }, borderRadius: { From 098df79c512509018e23998a0019a89adbbd22bd Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Sun, 3 Aug 2025 15:46:19 +0530 Subject: [PATCH 12/24] Update global styles for improved shimmer effect and enhance Not Found and Loading pages with new styles. --- src/app/favicon.svg | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/app/favicon.svg diff --git a/src/app/favicon.svg b/src/app/favicon.svg new file mode 100644 index 0000000..9b88d7b --- /dev/null +++ b/src/app/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file From 134660e32ab152182a759e8711a9c33f2b299baa Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Sun, 3 Aug 2025 15:52:04 +0530 Subject: [PATCH 13/24] feat : font family uipdate and repos btn updated --- .../(public)/repos/[language]/_components/sorter.tsx | 10 ++-------- src/app/layout.tsx | 6 +++--- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/app/(public)/repos/[language]/_components/sorter.tsx b/src/app/(public)/repos/[language]/_components/sorter.tsx index 1b4e8bb..5afa2fe 100644 --- a/src/app/(public)/repos/[language]/_components/sorter.tsx +++ b/src/app/(public)/repos/[language]/_components/sorter.tsx @@ -118,10 +118,7 @@ export function Sorter() { return (
- @@ -145,10 +142,7 @@ export function Sorter() {
- diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 8c98857..13ccdb1 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,7 +1,7 @@ import '@/styles/globals.css'; import Script from 'next/script'; import type { Metadata, Viewport } from 'next'; -import { Space_Grotesk } from 'next/font/google'; +import { Atkinson_Hyperlegible_Mono } from 'next/font/google'; import { unstable_ViewTransition as ViewTransition } from 'react'; import { Toaster } from 'react-hot-toast'; import { SessionProvider } from 'next-auth/react'; @@ -9,7 +9,7 @@ import { Footer } from '@/components/footer'; import { ReportModal } from '@/components/report-modal'; import { env } from '@/env.mjs'; -const spaceGrotesk = Space_Grotesk({ +const atkinsonHyperlegibleMono = Atkinson_Hyperlegible_Mono({ subsets: ['latin'], weight: ['400', '500'], display: 'swap', @@ -18,7 +18,7 @@ const spaceGrotesk = Space_Grotesk({ export default function RootLayout({ children }: React.PropsWithChildren) { return ( - + {children} From 5960d975057b1857f4d3ec23bf0320bb86d2e19c Mon Sep 17 00:00:00 2001 From: adnanarodiya Date: Sun, 3 Aug 2025 15:53:30 +0530 Subject: [PATCH 14/24] feat: Add some click effect on the buttons --- src/app/(public)/_components/button.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(public)/_components/button.tsx b/src/app/(public)/_components/button.tsx index 464a185..93b78dd 100644 --- a/src/app/(public)/_components/button.tsx +++ b/src/app/(public)/_components/button.tsx @@ -14,7 +14,7 @@ export function Button({
); } diff --git a/src/app/(public)/repos/[language]/_components/stars-filter.tsx b/src/app/(public)/repos/[language]/_components/stars-filter.tsx index a429587..8810bc0 100644 --- a/src/app/(public)/repos/[language]/_components/stars-filter.tsx +++ b/src/app/(public)/repos/[language]/_components/stars-filter.tsx @@ -53,7 +53,7 @@ export function StarsFilter() { return (
@@ -62,7 +62,7 @@ export function StarsFilter() { render={({ field }) => ( field.onChange(e.target.valueAsNumber)} placeholder="Star's Starting Range" diff --git a/src/components/report-modal.tsx b/src/components/report-modal.tsx index 78145b9..a1675af 100644 --- a/src/components/report-modal.tsx +++ b/src/components/report-modal.tsx @@ -12,6 +12,7 @@ import { repoAtom } from '@/state/repoAtom'; import { SendReportSchema } from '@/app/validation'; import { sendReportAction } from '@/app/actions'; import { cn } from '@/lib/utils'; +import { Button } from '@/app/(public)/_components/button'; export function ReportModal() { const isReported = useGetRepo(); @@ -59,65 +60,85 @@ export function ReportModal() { return ( -
-

+
+

Report This Repository

{session.data ? ( !isReported ? (
-

+

Please provide as much detail as possible to explain why you are reporting this repository. - - + + Note that we may remove the repository

- +