From 8761430df304ca5371472944db2a5c4401c20574 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:51:00 +0900 Subject: [PATCH 01/11] =?UTF-8?q?feat:=20=E3=83=95=E3=82=A9=E3=83=BC?= =?UTF-8?q?=E3=83=A0=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/page.tsx | 67 +++++++-------- app/profile-form.tsx | 64 ++++++++++++++ bun.lockb | Bin 238642 -> 240040 bytes components/ui/form.tsx | 179 ++++++++++++++++++++++++++++++++++++++++ components/ui/input.tsx | 22 +++++ components/ui/label.tsx | 26 ++++++ package.json | 6 +- 7 files changed, 326 insertions(+), 38 deletions(-) create mode 100644 app/profile-form.tsx create mode 100644 components/ui/form.tsx create mode 100644 components/ui/input.tsx create mode 100644 components/ui/label.tsx diff --git a/app/page.tsx b/app/page.tsx index 40b1583..535436e 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,65 +1,58 @@ import { Button } from "@/components/ui/button"; -import { auth } from "@/lib/auth"; +import { signIn } from "@/lib/auth"; import GitHubWhite from "@/public/github-mark-white.png"; import GitHubBlack from "@/public/github-mark.png"; import Image from "next/image"; import Link from "next/link"; +import { ProfileForm } from "./profile-form"; export const runtime = "edge"; export default async function Home() { - const session = await auth(); - if (!session?.user) return null; - return (
-
-

- Dev Recap 2024 -

- -
- {session.user.image && ( - {session.user.login} - )} -

@{session.user.login}

-

今年もおつかれさまでした。

-

- あなたの1年間を振り返りましょう🥳 -

+
+
+

+ Dev Recap 2024 +

+
+

今年もおつかれさまでした。

+

+ あなたの1年間を振り返りましょう🥳 +

+
- + GitHubでログイン + +
diff --git a/app/profile-form.tsx b/app/profile-form.tsx new file mode 100644 index 0000000..a39ca94 --- /dev/null +++ b/app/profile-form.tsx @@ -0,0 +1,64 @@ +"use client"; + +import { Button } from "@/components/ui/button"; +import { + Form, + FormControl, + FormField, + FormItem, + FormMessage, +} from "@/components/ui/form"; +import { Input } from "@/components/ui/input"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { useRouter } from "next/navigation"; +import type { FC } from "react"; +import { useForm } from "react-hook-form"; +import { z } from "zod"; + +const formSchema = z.object({ + username: z.string().min(1, "ユーザー名は必須です。"), +}); + +export const ProfileForm: FC = () => { + const { push } = useRouter(); + + const form = useForm>({ + resolver: zodResolver(formSchema), + defaultValues: { + username: "", + }, + mode: "onBlur", + }); + + function onSubmit(values: z.infer) { + push(`/recap/${values.username}`); + } + + return ( +
+ + ( + + + + + + + )} + /> + + + + ); +}; diff --git a/bun.lockb b/bun.lockb index 2cdcaf2495a26097f9d75ec518034317b91d599a..106f5d0b0a9878bd60805352bf637c33857718d1 100755 GIT binary patch delta 45016 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 = FieldPath, +> = { + name: TName; +}; + +const FormFieldContext = React.createContext( + {} as FormFieldContextValue, +); + +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => { + return ( + + + + ); +}; + +const useFormField = () => { + const fieldContext = React.useContext(FormFieldContext); + const itemContext = React.useContext(FormItemContext); + const { getFieldState, formState } = useFormContext(); + + const fieldState = getFieldState(fieldContext.name, formState); + + if (!fieldContext) { + throw new Error("useFormField should be used within "); + } + + const { id } = itemContext; + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + }; +}; + +type FormItemContextValue = { + id: string; +}; + +const FormItemContext = React.createContext( + {} as FormItemContextValue, +); + +const FormItem = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => { + const id = React.useId(); + + return ( + +
+ + ); +}); +FormItem.displayName = "FormItem"; + +const FormLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + const { error, formItemId } = useFormField(); + + return ( +
diff --git a/app/recap/components/user-button.tsx b/app/recap/components/user-button.tsx new file mode 100644 index 0000000..993eb72 --- /dev/null +++ b/app/recap/components/user-button.tsx @@ -0,0 +1,54 @@ +import { Avatar, AvatarImage } from "@/components/ui/avatar"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { useSession } from "next-auth/react"; +import type { FC } from "react"; +import { SignIn, SignOut } from "./auth-components"; + +export const UserButton: FC = () => { + const { data: session } = useSession(); + if (!session?.user) return null; + + return ( +
+ + + + + + +
+

+ {session.user.login} +

+

+ {session.user.email} +

+
+
+ + + +
+
+
+ ); +}; From 1f9def69c2d4c56d8fd936aad55fc85cc4827be1 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:55:46 +0900 Subject: [PATCH 05/11] =?UTF-8?q?fix:=20=E3=82=A2=E3=83=97=E3=83=AA?= =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E6=8A=BC=E4=B8=8B=E6=99=82?= =?UTF-8?q?=E3=81=AE=E5=87=A6=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/recap/components/header/breadcrumbs.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/recap/components/header/breadcrumbs.tsx b/app/recap/components/header/breadcrumbs.tsx index 0554919..5c6e127 100644 --- a/app/recap/components/header/breadcrumbs.tsx +++ b/app/recap/components/header/breadcrumbs.tsx @@ -7,9 +7,11 @@ import { BreadcrumbPage, BreadcrumbSeparator, } from "@/components/ui/breadcrumb"; +import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; import { Slash } from "lucide-react"; import { useSession } from "next-auth/react"; +import { signOut } from "next-auth/react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import type { FC } from "react"; @@ -27,7 +29,21 @@ export const Breadcrumbs: FC = () => { asChild className="text-lg font-extrabold text-accent-foreground" > - Dev Recap 2024 + {session?.user ? ( + + ) : ( + Dev Recap 2024 + )} {isOnRecap && session?.user && ( From 8418faaff27e5b37f7faf8716d6313b6edc32080 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:57:04 +0900 Subject: [PATCH 06/11] =?UTF-8?q?feat:=20API=E3=81=8B=E3=82=89=E3=82=A2?= =?UTF-8?q?=E3=83=90=E3=82=BF=E3=83=BCURL=E3=82=92=E5=8F=96=E5=BE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/recap/fetchGitHubStats.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/recap/fetchGitHubStats.ts b/app/recap/fetchGitHubStats.ts index 9494319..0ae80d1 100644 --- a/app/recap/fetchGitHubStats.ts +++ b/app/recap/fetchGitHubStats.ts @@ -50,6 +50,7 @@ type GitHubStatsQueryResponse = { user: { createdAt: string; bio: string | null; + avatarUrl: string; followers: { totalCount: number; }; @@ -102,6 +103,7 @@ export type Stats = { userProfile: { joinedDate: string; // 登録日時 bio: string | null; // bio + avatarUrl: string; // アバター画像URL followingCount: number; // フォロー数 followersCount: number; // フォロワー数 }; @@ -184,6 +186,7 @@ export const fetchGitHubStats = async ({ user(login: $login) { createdAt bio + avatarUrl followers { totalCount } @@ -427,6 +430,7 @@ export const fetchGitHubStats = async ({ userProfile: { joinedDate: user.createdAt, bio: user.bio, + avatarUrl: user.avatarUrl, followingCount: user.following.totalCount, followersCount: user.followers.totalCount, }, From 3f047f8be57fb7b28ee319a8a51fbf6b18468635 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:57:30 +0900 Subject: [PATCH 07/11] =?UTF-8?q?feat:=20`/recap`=E3=81=AB=E3=82=A2?= =?UTF-8?q?=E3=82=AF=E3=82=BB=E3=82=B9=E3=81=95=E3=82=8C=E3=81=9F=E9=9A=9B?= =?UTF-8?q?=E3=81=AE404=E3=83=9A=E3=83=BC=E3=82=B8=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/not-found.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/not-found.tsx b/app/not-found.tsx index 3559b51..0eabf8a 100644 --- a/app/not-found.tsx +++ b/app/not-found.tsx @@ -1,10 +1,12 @@ import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import Link from "next/link"; + export const runtime = "edge"; + export default function NotFound() { return ( -
+

404 From af31e40f9cd707f5a9974177bd7a1bc3a34929f4 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 21:57:47 +0900 Subject: [PATCH 08/11] =?UTF-8?q?style:=20=E3=83=95=E3=82=A9=E3=83=BC?= =?UTF-8?q?=E3=83=9E=E3=83=83=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/recap/components/graph/languages.tsx | 14 +++++----- app/recap/components/grass.tsx | 4 ++- app/recap/components/overview.tsx | 34 +++++++++++------------- 3 files changed, 25 insertions(+), 27 deletions(-) diff --git a/app/recap/components/graph/languages.tsx b/app/recap/components/graph/languages.tsx index cbbff50..6782a5b 100644 --- a/app/recap/components/graph/languages.tsx +++ b/app/recap/components/graph/languages.tsx @@ -96,13 +96,13 @@ export const LanguagesUsageGraph: FC = ({ data }) => { 言語の使用率 - {limitedData.length === 0 ? ( - "データがありません。" - ) : ( - <> - あなたが最も使用した言語は {limitedData[0].language} です。 - - )} + {limitedData.length === 0 ? ( + "データがありません。" + ) : ( + <> + あなたが最も使用した言語は {limitedData[0].language} です。 + + )} diff --git a/app/recap/components/grass.tsx b/app/recap/components/grass.tsx index b760806..4206ebe 100644 --- a/app/recap/components/grass.tsx +++ b/app/recap/components/grass.tsx @@ -146,7 +146,9 @@ export const ContributionGrass: FC = ({
-

{totalContributions} contributions

+

+ {totalContributions} contributions +

+
+
+ ); +} From 5ca26db1ca13538db4e82393af3b6241b76df4c4 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 22:05:26 +0900 Subject: [PATCH 10/11] =?UTF-8?q?fix:=20=E4=B8=8D=E8=A6=81=E3=81=AAimport?= =?UTF-8?q?=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/recap/components/user-button.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/recap/components/user-button.tsx b/app/recap/components/user-button.tsx index 993eb72..e611ad7 100644 --- a/app/recap/components/user-button.tsx +++ b/app/recap/components/user-button.tsx @@ -9,7 +9,7 @@ import { } from "@/components/ui/dropdown-menu"; import { useSession } from "next-auth/react"; import type { FC } from "react"; -import { SignIn, SignOut } from "./auth-components"; +import { SignOut } from "./auth-components"; export const UserButton: FC = () => { const { data: session } = useSession(); From 2011677f64a5cf414d2beb77f3eb2e59575873c4 Mon Sep 17 00:00:00 2001 From: namidapoo <83203852+ve1997@users.noreply.github.com> Date: Tue, 31 Dec 2024 22:11:04 +0900 Subject: [PATCH 11/11] =?UTF-8?q?style:=20=E3=83=88=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=83=9A=E3=83=BC=E3=82=B8=E3=81=AE=E3=83=86=E3=82=AD=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=82=B5=E3=82=A4=E3=82=BA=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/page.tsx | 12 ++++++------ app/profile-form.tsx | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 535436e..0eb338c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -32,21 +32,21 @@ export default async function Home() { }} className="w-full max-w-xs mx-auto space-y-2" > -

or

-