From f2b7e58083d1fac8cde74d3e87a453fe8ea75815 Mon Sep 17 00:00:00 2001 From: vaporvee Date: Wed, 30 Oct 2024 02:54:37 +0100 Subject: [PATCH] a lot of stuff --- bun.lockb | Bin 455731 -> 456812 bytes package.json | 2 - public/apple-touch-icon.png | Bin 0 -> 3684 bytes public/favicon-192.png | Bin 0 -> 4176 bytes public/favicon-512.png | Bin 0 -> 13957 bytes public/favicon.ico | Bin 25931 -> 4158 bytes public/favicon.svg | 24 ++++++ public/manifest.webmanifest | 14 ++++ src/app/{ => blog}/[slug]/page.tsx | 6 +- src/app/blog/page.tsx | 32 ++++++++ src/app/layout.tsx | 9 ++- src/app/page.tsx | 35 ++++----- src/components/ui/sonner.tsx | 31 -------- src/lib/utils.ts | 6 -- src/sanity/sanity.types.ts | 121 ++++++++++++++++++++++++++++- 15 files changed, 215 insertions(+), 65 deletions(-) create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-192.png create mode 100644 public/favicon-512.png create mode 100644 public/favicon.svg create mode 100644 public/manifest.webmanifest rename src/app/{ => blog}/[slug]/page.tsx (95%) create mode 100644 src/app/blog/page.tsx delete mode 100644 src/components/ui/sonner.tsx delete mode 100644 src/lib/utils.ts diff --git a/bun.lockb b/bun.lockb index 7cb7ea1ee085926182eac1fccfb718e7151a7d25..bb2d7d8ce0c14b919eb169901d43415763eee267 100644 GIT binary patch delta 25371 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 delta 24896 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 diff --git a/package.json b/package.json index 21a8349..2076fb7 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,6 @@ "next": "15.0.1", "next-sanity": "^9.8.7", "next-themes": "^0.3.0", - "react": "19.0.0-rc-69d4b800-20241021", - "react-dom": "19.0.0-rc-69d4b800-20241021", "react-error-boundary": "^4.1.2", "sanity": "^3.62.2", "sass": "^1.80.4", diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a5d6a59fe9c3efd6edd87a863f6fd66e0fea1964 GIT binary patch literal 3684 zcmZ`+c{CJk7e~Vw$=I?Eg~l?XvJ7JzX2`xT3E7io7;Ca8S+X^Sk?gW2yGTfu*9@|i zqU=M1LS|$cgwOkZe}CuPdwBw3j0pJNkZV_;x7XK0{nb&7BPRaTZ$ zt2xY~a0(!QgPTDN3}<=%RYr!KJOKs<4n9L&9h=a+jeKmilkItudAF1}jQ-Lt&7PO* zn%33WB9OQilYoq^B_q;+E9^UU6}vn44Zuu0V|#g|T3OE5wClAu6RW#LI^SmgdoTHy zS+K`8q8Pa?Z!SRiTK2tVcgy9G{C7bk-`Db*q6dsv4L4^aYEIT8yb9l+$R_jZS^ht1 z^lETv!u$5zo#?gA@_!HYx$Dj0vx~65fUO5rG)Mw(1h#8_gu4}see(iM3+0@Vy##EK z%&mW_JoPsF9AkoLYr=BZE+2dsidiE&ozF-fSQZ0zSnc&RSJk}%Og{qKpo6rJG^6Xi zDxC9Qg(M^!_IduvJOi%S<5YSAxKNa^9CI-GkQTa=84DMMR~Fe=!1WQX!@G3UW8UzX z(|GCz92)6t4tnGACLA_nOvy!`>~vnUZa>m)L%n9LTtJNJb1>?SdA}~Q1sv#Hyj5%q zu%SX$B@$!Az2Df5!I+LNj>X8np{?4g!XUXNkb19(4w*P%6xaeCa4Ji8b5(>rK81cEu^{F&QD$r}ln16D z21BDV>e|6+h zV$DRa%quf(!?a}56{50<4Nn6R?$Bd=Fz5H1e~o6dMjP0EJGzjp3#=`DLZiR`a*s?K zNKU*0Rd794eD+hTp47xG*qW|J?ENl?_4s6QCd5W_i1T-U;25#j`fs^HL$&OyF6Bjs z+g0a!M5+e_!D`=hp!iA2oG54jJNcg28#h)z$fEJZ-|XV6p=GsEN;H^sQdcvm;_S@3 z;O)W5a~j?&WRGGNO~G8N`8G=y;_PC<9gV;8rEn7-Ed^>bN7gFm7sqa4sLbPy+YkuomAV5Cf>$!6B=#6PcHgjG_&a^7G^{^qJH z#=(Iz4T|)C7Gso?%uHUS4?H^P#^N-h5k@)t5)$o>;1B0C5o_f6T3e(B4Fo$mGyi7U z30S8>mW-YiEqh3#yD{?o@P5}aEk`hfS$@HdHi`-{{mMHQQ+ z#aU7Hi2rQzj$CeOCAPh{D)b-l7rrt-9!fV}J=k(Ij8=a!P?|>ih&ET{0Q28gAalEE zMBlpZOH(gXzgITd%v~${bx#p+0;9+nPshc_hlx}@R$F$hJpL+;rNfiNIuy5mAn5BM z%OGiiT1$0>V38$isLBT%I2|xv9c4w768df6Th|B}x*+&{mh<@fKa0AdPGg?-c;s{1 zK*IPVNpX@uPaUAHFw>(alJ49;oR!FTsC*bVqCaQf;YN{7B>^8zjxL$)zD>F0%6c^z zrDpi>BWgw5&%Wn;@fuu^)3EypLwOC&8~mlZwxCn|=NUiDg9-;-8KCo0Qa3^6%!Rfb z`PpV&!^J_*_}R&6C``+xbe4I^Yk=JN^>B!=+J(;naisWKYl!G?;Wm(kLw!=S+@Z5q z^w7X2Z$SUhBvQnX82XJ<%`hV%dezCGPicWk3@=m?X``H;imeI1Z;(N{1I4ztUJ*id zb~)nl$*q;2;`a2yx;P_U`kRyzM&gyK6T?^Af&po3FFU$IDkgf7dOj1@J5R^D!O6fzr%So0uW(lA6boCo%?_NZI<>64v+7R67MwRiH5@vEtcxnf<;v6 z@S%5a>!J)Zr$b!0(+xr&;4-oq&g$zs`)K|}1dA;82OVm4zVOvde@YW`PsPs z_`ds4GkPnKINRm9I+bApILNZmK9h6K?u5crUmsp{QjfV8gKJ8>aUJwr5z$%^X2S{jisx>$ z@LYkwn9b>AYCb z;RMr^@O12Dj(Gp86ymz2Sp(ok+(;qil(qBH_`y_x2duH6-JdCe3EAaarP0zSeVj9w zbia^iuLS)%#;`u%QsZ~`Pdj)RXeXG*PXSC;=U?;`%l7y1_g{^C+{5{$hhOqZ#J7pd z+)pygx3YRYl!LYY5hF4{#Cd4g#jYf&x~lI1!1>^30^pSRnc7gNMnAw|K|OO# zDi|rxmJe>AW`X^VSP>m>;M{EO9PuOg;ZI99Exx5$X&0-_VQUV^&#nTL34V_FKj;++ z{>K4yF`uNikSmq1I&Af;G}N-)+do$pLO?o3)?v9)D;6?TMIUO>55)x6_>_YfG zw(q%}8Pxh5E8w@}0lbEaGUUbc&HAfnnQhd4c z&}FU~qA<#BCYA6}%v=`cPFz7TTQc%?;luPX1;ym)VW5Ve4^*=ecy0ZwdT>TD@{x85`5v z1o*g2RsD9XRwsn|D%e^b@OP;WQRJXv4+o3zvL-D*B&^~+1}oIAIaNIf6uAvqAuBbv4E>N@$8=v2@sXnpO!Mh3xE2y zaJ#$F-t!hw6IY%2j30(NWtBBT?vtN?F&-%$g2HH%%2=sN)*#*b$$=;h+`5p&--}O+ zCM$AJyL}#M&ns$y6iVk&>0ZB|8j0)S^ce|BZOsTON&hJJ9hcU<;d2$SDsZa=o_OM$ zu;i3s)XEGQ;45cu>Sk!=%Nc|V>ja6 z{Z=szys*bsiNTC|!bvW*^be6pquSg6G4-QA@+1b?W%IV^q;<#vQffff>wN4L zPl6xRcWUD%vBZ4AeAi3=Yj4{TTW9QfqyzhbqUIbnhx!nQ%(yRcx%(CxKi%7^mdKY1 zfSBmFiJmoeRo-a+)#Ui4KCw2hYd6@a(pLkI-%@^sL;4N)?%aUxcYGYB;2?L*!)&oE zD;4L+1Xw|A&uA-gY4eaDklMI*cdyV^{d4$Vtd;xR4r6Rh!mkUPyXs+=HOi0s*zZ%> z3d7wA{?sarhEKMaZS)kU{H9lY-wFN#*edGm_b?@g?g`gh50K<7tr^2f^JdLT-lpNc zl{AuLLDa|iJ;HY-;{KFl+mRyfj+f?KPR`T9!|s>2YkuXnr^OGusx2#xwgkk03atM= zR^l;chMrJO??gwyXE9!pN7n0(&t7ET*M$4zj)*=ajRe^jy=@_Mx)|TN{9}c6y4NA< z+DmrkLM)%h>~xYTj-6wo5q72*xR6F7F+ZlC*kK}PI7i0QVP}LU`|EXAMX!=`s35sl zp9>jF6KlwN>b^doj-`xhowh5^fmbkwgaUz{h6U7yBAxkJmi5mh8r}X0;OOzc$D)Mi zN2~`jauuI5lyGlLCB0*Z9n8w4CYIVDHDlQ3JR@`VugFYc9TkkeH-aDyzMgETrX&MR z1oue=0IxNl@_fj*BXV>s%qkEdd^&RwtPX%7Op?`!n;agPl1zyH&JjD=ss)nWar|Wv s?wa{P1@Bh1=9>Ic`u~Yhru+$G-=!r1hFJRg>DtI(sAr~Ii*k+q4=i}(@Bjb+ literal 0 HcmV?d00001 diff --git a/public/favicon-192.png b/public/favicon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8539a34f0a6b8a747941df873f26ba36e8495c GIT binary patch literal 4176 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 literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico index 718d6fea4835ec2d246af9800eddb7ffb276240c..12cea148161f0d9b1118602b98526e300b506d71 100644 GIT binary patch literal 4158 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 LrJugUA?W`A8`#=m diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..c13db24 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest new file mode 100644 index 0000000..edcd510 --- /dev/null +++ b/public/manifest.webmanifest @@ -0,0 +1,14 @@ +{ + "icons": [ + { + "src": "/favicon-192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "/favicon-512.png", + "type": "image/png", + "sizes": "512x512" + } + ] +} \ No newline at end of file diff --git a/src/app/[slug]/page.tsx b/src/app/blog/[slug]/page.tsx similarity index 95% rename from src/app/[slug]/page.tsx rename to src/app/blog/[slug]/page.tsx index 35340ba..ea6212c 100644 --- a/src/app/[slug]/page.tsx +++ b/src/app/blog/[slug]/page.tsx @@ -1,7 +1,7 @@ import { defineQuery, PortableText } from "next-sanity"; import imageUrlBuilder from "@sanity/image-url"; import type { SanityImageSource } from "@sanity/image-url/lib/types/types"; -import { client, sanityFetch } from "../../sanity/client"; +import { client, sanityFetch } from "../../../sanity/client"; import Link from "next/link"; import Image from "next/image"; import { Post, SanityImageAsset } from "@/sanity/sanity.types"; @@ -66,8 +66,8 @@ export default async function PostPage(props: { params: PageParams }) { return (

- - ← Back to posts + + ← Blog {postImageUrl && ( (POSTS_QUERY, {}, options); + + return ( +
+ Home +

Blog

+
    + {posts.map((post) => ( +
  • + +

    {post.title}

    +

    {new Date(post.publishedAt).toLocaleDateString()}

    + +
  • + ))} +
+
+ ); +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 33bdcb9..d481ad2 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -5,7 +5,6 @@ import { draftMode } from "next/headers"; import { VisualEditing } from 'next-sanity' import { SanityLive } from '@/sanity/client' import { LiveErrorBoundary } from "./live-error-boundary"; -import { Toaster } from "@/components/ui/sonner"; const geistSans = localFont({ src: "../fonts/GeistVF.woff", @@ -27,6 +26,13 @@ export default async function RootLayout({ return ( + + + + + + vaporvee's Website + @@ -35,7 +41,6 @@ export default async function RootLayout({ {isEnabled && } - ); diff --git a/src/app/page.tsx b/src/app/page.tsx index 8a86888..f642d0b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,31 +1,26 @@ +import type { Home } from "@/sanity/sanity.types"; + +import { sanityFetch } from "@/sanity/client"; import Link from "next/link"; -import { type SanityDocument } from "next-sanity"; -import { client } from "@/sanity/client"; +const HOME_QUERY = `*[_type == "home"]`; -const POSTS_QUERY = `*[ - _type == "post" - && defined(slug.current) -]|order(publishedAt desc)[0...12]{_id, title, slug, publishedAt}`; - -const options = { next: { revalidate: 30 } }; export default async function IndexPage() { - const posts = await client.fetch(POSTS_QUERY, {}, options); + const result = await sanityFetch({ query: HOME_QUERY, stega: false }); + const home: Home | null = result.data.length > 0 ? result.data[0] : null; return (
-

Posts

-
    - {posts.map((post) => ( -
  • - -

    {post.title}

    -

    {new Date(post.publishedAt).toLocaleDateString()}

    - -
  • - ))} -
+ Blog

+ {home ? ( + <> +

{home.title}

+

{home.subtitle}

+ + ) : ( +

+ )}
); } \ No newline at end of file diff --git a/src/components/ui/sonner.tsx b/src/components/ui/sonner.tsx deleted file mode 100644 index 9c8e3a5..0000000 --- a/src/components/ui/sonner.tsx +++ /dev/null @@ -1,31 +0,0 @@ -"use client" - -import { useTheme } from "next-themes" -import { Toaster as Sonner } from "sonner" - -type ToasterProps = React.ComponentProps - -const Toaster = ({ ...props }: ToasterProps) => { - const { theme = "system" } = useTheme() - - return ( - - ) -} - -export { Toaster } diff --git a/src/lib/utils.ts b/src/lib/utils.ts deleted file mode 100644 index bd0c391..0000000 --- a/src/lib/utils.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { clsx, type ClassValue } from "clsx" -import { twMerge } from "tailwind-merge" - -export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)) -} diff --git a/src/sanity/sanity.types.ts b/src/sanity/sanity.types.ts index 83091d9..59970ec 100644 --- a/src/sanity/sanity.types.ts +++ b/src/sanity/sanity.types.ts @@ -68,6 +68,96 @@ export type Geopoint = { alt?: number } +export type Project = { + _id: string + _type: 'project' + _createdAt: string + _updatedAt: string + _rev: string + title?: string + url?: string + tools?: Array<{ + _ref: string + _type: 'reference' + _weak?: boolean + _key: string + [internalGroqTypeReferenceTo]?: 'tool' + }> + description?: Array< + | { + children?: Array<{ + marks?: Array + text?: string + _type: 'span' + _key: string + }> + style?: 'normal' | 'h1' | 'h2' | 'h3' | 'h4' | 'blockquote' + listItem?: 'bullet' + markDefs?: Array<{ + href?: string + _type: 'link' + _key: string + }> + level?: number + _type: 'block' + _key: string + } + | { + asset?: { + _ref: string + _type: 'reference' + _weak?: boolean + [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' + } + hotspot?: SanityImageHotspot + crop?: SanityImageCrop + _type: 'image' + _key: string + } + > + images?: Array<{ + asset?: { + _ref: string + _type: 'reference' + _weak?: boolean + [internalGroqTypeReferenceTo]?: 'sanity.imageAsset' + } + hotspot?: SanityImageHotspot + crop?: SanityImageCrop + _type: 'image' + _key: string + }> +} + +export type Tool = { + _id: string + _type: 'tool' + _createdAt: string + _updatedAt: string + _rev: string + name?: string + icon?: Icon + url?: string + color?: SimplerColor + description?: string +} + +export type Home = { + _id: string + _type: 'home' + _createdAt: string + _updatedAt: string + _rev: string + title?: string + subtitle?: string + owner?: { + _ref: string + _type: 'reference' + _weak?: boolean + [internalGroqTypeReferenceTo]?: 'author' + } +} + export type BlockContent = Array< | { children?: Array<{ @@ -144,7 +234,6 @@ export type Post = { [internalGroqTypeReferenceTo]?: 'category' }> publishedAt?: string - myCodeField?: Code body?: BlockContent } @@ -258,12 +347,38 @@ export type Code = { highlightedLines?: Array } +export type Icon = { + _type: 'icon' + name?: string +} + +export type HighlightColor = { + _type: 'highlightColor' + label?: string + value?: string +} + +export type TextColor = { + _type: 'textColor' + label?: string + value?: string +} + +export type SimplerColor = { + _type: 'simplerColor' + label?: string + value?: string +} + export type AllSanitySchemaTypes = | SanityImagePaletteSwatch | SanityImagePalette | SanityImageDimensions | SanityFileAsset | Geopoint + | Project + | Tool + | Home | BlockContent | Category | Post @@ -275,4 +390,8 @@ export type AllSanitySchemaTypes = | SanityImageMetadata | Slug | Code + | Icon + | HighlightColor + | TextColor + | SimplerColor export declare const internalGroqTypeReferenceTo: unique symbol