From 72979bd1ce7f9fe4be364cf88fd75f697f9b84b0 Mon Sep 17 00:00:00 2001 From: Lawand Othman Date: Mon, 7 Oct 2024 16:34:02 +0100 Subject: [PATCH 1/6] wip --- .eslintrc.json | 16 +- .github/dependabot.yml | 7 - .gitignore | 12 +- .prettierrc | 17 -- .vscode/settings.json | 3 - README.md | 39 ++- bun.lockb | Bin 0 -> 154596 bytes components/ColorModeButton/index.tsx | 23 -- components/Footer/index.tsx | 17 -- components/Icons/index.tsx | 356 -------------------------- components/Navbar/Navbar.test.tsx | 18 -- components/Navbar/index.tsx | 53 ---- components/NextChakraLink/index.tsx | 35 --- components/NowPlaying/index.tsx | 40 --- components/Page/index.tsx | 26 -- components/Project/index.tsx | 45 ---- components/Shell/Shell.test.tsx | 27 -- components/Shell/index.tsx | 29 --- components/StackItem/index.tsx | 33 --- components/ViewSourceButton/index.tsx | 39 --- components/index.ts | 11 - data/contact.tsx | 36 --- data/projects.ts | 51 ---- data/stack.tsx | 44 ---- lib/fetcher.ts | 3 - lib/spotify.ts | 33 --- next-seo.config.ts | 30 --- next.config.js | 11 - next.config.mjs | 4 + package.json | 60 ++--- pages/404.tsx | 29 --- pages/_app.tsx | 19 -- pages/_document.tsx | 34 --- pages/api/now-playing.ts | 38 --- pages/index.tsx | 39 --- pages/projects.tsx | 26 -- pages/stack.tsx | 28 -- postcss.config.mjs | 8 + public/favicon.ico | Bin 15406 -> 0 bytes public/file-text.svg | 3 + public/globe.svg | 10 + public/logo.png | Bin 4573 -> 0 bytes public/next.svg | 1 + public/vercel.svg | 10 + public/window.svg | 3 + src/app/favicon.ico | Bin 0 -> 25931 bytes src/app/fonts/GeistMonoVF.woff | Bin 0 -> 67864 bytes src/app/fonts/GeistVF.woff | Bin 0 -> 66268 bytes src/app/globals.css | 21 ++ src/app/layout.tsx | 31 +++ src/app/page.tsx | 100 ++++++++ styles/theme.ts | 49 ---- tailwind.config.ts | 23 ++ tsconfig.json | 44 +--- types.ts | 14 - 55 files changed, 292 insertions(+), 1356 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .prettierrc delete mode 100644 .vscode/settings.json create mode 100755 bun.lockb delete mode 100644 components/ColorModeButton/index.tsx delete mode 100644 components/Footer/index.tsx delete mode 100644 components/Icons/index.tsx delete mode 100644 components/Navbar/Navbar.test.tsx delete mode 100644 components/Navbar/index.tsx delete mode 100644 components/NextChakraLink/index.tsx delete mode 100644 components/NowPlaying/index.tsx delete mode 100644 components/Page/index.tsx delete mode 100644 components/Project/index.tsx delete mode 100644 components/Shell/Shell.test.tsx delete mode 100644 components/Shell/index.tsx delete mode 100644 components/StackItem/index.tsx delete mode 100644 components/ViewSourceButton/index.tsx delete mode 100644 components/index.ts delete mode 100644 data/contact.tsx delete mode 100644 data/projects.ts delete mode 100644 data/stack.tsx delete mode 100644 lib/fetcher.ts delete mode 100644 lib/spotify.ts delete mode 100644 next-seo.config.ts delete mode 100644 next.config.js create mode 100644 next.config.mjs delete mode 100644 pages/404.tsx delete mode 100644 pages/_app.tsx delete mode 100644 pages/_document.tsx delete mode 100644 pages/api/now-playing.ts delete mode 100644 pages/index.tsx delete mode 100644 pages/projects.tsx delete mode 100644 pages/stack.tsx create mode 100644 postcss.config.mjs delete mode 100644 public/favicon.ico create mode 100644 public/file-text.svg create mode 100644 public/globe.svg delete mode 100644 public/logo.png create mode 100644 public/next.svg create mode 100644 public/vercel.svg create mode 100644 public/window.svg create mode 100644 src/app/favicon.ico create mode 100644 src/app/fonts/GeistMonoVF.woff create mode 100644 src/app/fonts/GeistVF.woff create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/page.tsx delete mode 100644 styles/theme.ts create mode 100644 tailwind.config.ts delete mode 100644 types.ts diff --git a/.eslintrc.json b/.eslintrc.json index ca31ff3b..bffb357a 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,15 +1,3 @@ { - "extends": [ - "next", - "prettier" - ], - "parserOptions": { - "project": "./tsconfig.json" - }, - "plugins": [ - "prettier" - ], - "rules": { - "prettier/prettier": "error" - } -} \ No newline at end of file + "extends": "next/core-web-vitals" +} diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 3075bf15..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: 2 -updates: -- package-ecosystem: npm - directory: "/" - schedule: - interval: monthly - open-pull-requests-limit: 10 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1437c53f..f886745c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /node_modules /.pnp .pnp.js +.yarn/install-state.gz # testing /coverage @@ -24,11 +25,12 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -# local env files -.env.local -.env.development.local -.env.test.local -.env.production.local +# env files (can opt-in for commiting if needed) +.env* # vercel .vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 81bea745..00000000 --- a/.prettierrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "singleQuote": true, - "jsxSingleQuote": true, - "semi": false, - "trailingComma": "es5", - "useTabs": true, - "tabWidth": 2, - "importOrder": [ - "^components/?(.*)$", - "^data/?(.*)$", - "^lib/?(.*)$", - "^styles/?(.*)$", - "^[./]" - ], - "importOrderSeparation": true, - "importOrderSortSpecifiers": true -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index af6434b6..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "typescript.tsdk": "node_modules/typescript/lib" -} \ No newline at end of file diff --git a/README.md b/README.md index c8fb4f88..a98bfa81 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,36 @@ -![alt text](public/logo.png) -# lwnd.me +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/create-next-app). -My personal website +## Getting Started -### Built Using -* [Next.js](https://nextjs.org/) -* [Vercel](https://vercel.com/) -* [Chakra UI](https://chakra-ui.com/) +First, run the development server: +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Flawandothman%2Flwnd.me) \ No newline at end of file +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..adb746dd3bd2669344a4a58bb6f71de2c3fe9a51 GIT binary patch literal 154596 zcmeEvcU+F`8}}_YA`NMYqJg3*qbLojv}g~C_8wYFMukL4W<#VXr9>1mlUW&wrm{yR zBzu(iIJ&R%`CZTR{&3%q_rLddd|Z9+b9}$Yan9?!t~r;opfqGwP@fJ>NSgvu~327|G>AT=t})U7rt^Xc}X&#pX68S}|t?3YIy z6YgZEe9OB()p{Y;VlZL`^aF#N1%F`-m1eA2{ zU^>tv5|fPAAS?#ydcaYDrvb$Q_fh#tfTEBNq4FI7vEE!jAwXq75x`Jymylr4bAiw> z-xN?7a2DVQKpSw%4;U8e@8b&fWFQ~??ij*gi~}4BY4jTkX=%U@fT&{!I0o*+Xqa1QC?iaeRqhLj<$*4NK|b!# zHmHyF_yAGgH9XWcD2l=OHjppR!1!;DJX17f`4z{7Fy@(*&w`VugRSUG}H^y zI4^`KoB@M@j9#_ za41Lo9gozPgTX`pg!c_54f>xqj-@l3!e!n*Zr;!?pHPoT55QW;$N2Y2vEmGN3G-I; z^N8|?e!zHb05Pun(yaM>5fDO-F_2;97egB7ONd8kkbi^+BSV%ok5T}!eQ|&om$yr3 z(6T@V7OD9pqzuGEdG!8iqb5$|b-b!evB58sjPhMEyuP zmfiu1H%^|FAB=+wHXPD84>F+~`!kuUx0d4XpTyF04RLXUX~GyinZ~b0_Bg=_X5QF0UjY<9#a^MU@AXYku@HkE}>ydfgj=#9*QBVDzVzv z1BmlrwlZrxmQeNG{UgvF!-rD~1O%>}Ij*n^G8zw+vY6fIa~}VGL7ER{2xV z!S=L48s|%hPe6!^Cxb!O_f{=dc~GDmE(gZ45SQR!m^nUy-X0-7VWB>Op8h^w-eK#Z z9?lM`(DM55(&cx-{G)B#Pmr!}9A98XV#Q9x9<8 z&gVwR$M(6n1%+ToABTMGr#@X)eh#FCAnhLH78c?Y=;7|+8jd3w0CN-#M%LdC&|wa% z|6qM7LM&b`zO4BY9^#|u3w49T1Ebu6+&vUvgG4<+K-j8c5|27Jrl(s~xeBMxA6p?C)a8M?D`%BkEIFX3o-?G@o^U+y`l#*Iq%v?$|#fkS_%3 zGf*G*^CJsb={!iomKI}1tT1MkD?>S^hrrrLo(CYd=N6Urg~f$&UI)ZDDk+414D|@>-|qulf*A}O$jA20 z2E=|)1jPO&>r@o{VEcN(FOJW1K&*EY5cB7#vHafmW3@-opOs$&X^ihIAhyTdV`;bx zl(|HDD8d%uahS@_1;qGLskCDti>C~_*lv>`7XL0F_8XpC0(?Tld_#i*r@^|o2Km^p zT2#GBfav$1`^&p2tnuQ7ayXL2@PR%Y5n`T&u=uK>tp2KpH1=DVOR$TpzXziQc)0Eh zq0hzw1_5Hb*8|D|o)2g7$v%Vouq*7hq5dwR-Vh($%ldDuZz5RnF9+lS-hAMX1Iz(^ z?9YvWs7v;7a_)k%{&;}X-%dDJghd5=Ff70ajuT|}>xnLBl`~wQN#q}WTpukq>#NUt zYtNJyP4`EoT-t8=B+qZV>tWm2s`t&>md?AIzkRwg?A4QXUYo-2ByI7IF>Nl0GPLB9 zOzFY-n9w@=gmGD7yUBp;RWHowN2hnefH(>ofH(DYmn7;Fh}(C=P{$d zBtBE)Z;)d0?|ooh^7xH?+YUbCGSMa0mSSDjr_Ez;aZR*Z!?m*hsCUY_T^+N(ChE$p zx|1G${6fyr>4ML4qq|(Yhp#EfF$&zT-{;3{d!3Nb%5Atb?rKh7?ZW5J_RnXImI&af zbeVJfTifk3S)rAm6+R!n_9~~~^pehfah?&v^PbuAZk2uF{bfZAQ@hMCvu)gZi=%^z zP7TW5÷GDK*xP;`gh;g5kkpWbIKUet= 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�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 { - const { colorMode, toggleColorMode } = useColorMode() - - return ( - - ) : ( - - ) - } - variant='ghost' - mr={4} - /> - ) -} diff --git a/components/Footer/index.tsx b/components/Footer/index.tsx deleted file mode 100644 index d1aabc8f..00000000 --- a/components/Footer/index.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { Box, Divider, Text } from '@chakra-ui/react' - -import { NowPlaying } from 'components' - -export const Footer = () => { - return ( - - - - - - Built with Next.js and Vercel - - - - ) -} diff --git a/components/Icons/index.tsx b/components/Icons/index.tsx deleted file mode 100644 index 569aff25..00000000 --- a/components/Icons/index.tsx +++ /dev/null @@ -1,356 +0,0 @@ -import { Icon, IconProps } from '@chakra-ui/react' - -export const GitHub = (props: IconProps) => ( - - - -) - -export const Email = (props: IconProps) => ( - - - - -) - -export const LinkedIn = (props: IconProps) => ( - - - - -) - -export const X = (props: IconProps) => ( - - - -) - -export const KoFi = (props: IconProps) => ( - - - - - - - - - - -) - -export const Spotify = (props: IconProps) => ( - - - -) - -export const Typescript = (props: IconProps) => { - return ( - - - - - ) -} - -export const Rust = (props: IconProps, fill: string) => { - return ( - - - - ) -} - -export const GraphQL = (props: IconProps) => { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) -} - -export const Neovim = (props: IconProps) => ( - - - - - - - - - - - - - - - - - - - - - - -) - -export const Kitty = (props: IconProps) => ( - - - - - - - - - - - - - - - - - - - -) - -export const Raycast = (props: IconProps) => ( - - - - - - -) diff --git a/components/Navbar/Navbar.test.tsx b/components/Navbar/Navbar.test.tsx deleted file mode 100644 index 1c3e430e..00000000 --- a/components/Navbar/Navbar.test.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import '@testing-library/jest-dom' -import { render, screen } from '@testing-library/react' - -import { Navbar } from 'components' - -describe('Navbar', () => { - it('renders', () => { - render() - const nav = screen.getByRole('navigation') - expect(nav).toBeInTheDocument() - }) - - it('renders a list of navbar items', () => { - render() - const navItems = screen.getAllByRole('link') - expect(navItems).toHaveLength(4) - }) -}) diff --git a/components/Navbar/index.tsx b/components/Navbar/index.tsx deleted file mode 100644 index 92d7dd64..00000000 --- a/components/Navbar/index.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { Flex } from '@chakra-ui/react' - -import { ColorModeButton, NextChakraLink } from 'components' - -const navbarItems = [ - { - title: 'Home', - href: '/', - }, - { - title: 'Projects', - href: '/projects', - }, - { - title: 'Stack', - href: '/stack', - }, -] - -export const Navbar = () => { - return ( - - - - - {navbarItems.map((item) => ( - - {item.title} - - ))} - - - - ) -} diff --git a/components/NextChakraLink/index.tsx b/components/NextChakraLink/index.tsx deleted file mode 100644 index 70301eaf..00000000 --- a/components/NextChakraLink/index.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { - Link as ChakraLink, - LinkProps as ChakraLinkProps, -} from '@chakra-ui/react' -import { LinkProps as NextLinkProps } from 'next/dist/client/link' -import NextLink from 'next/link' -import { PropsWithChildren } from 'react' - -type NextChakraLinkProps = PropsWithChildren< - NextLinkProps & Omit -> - -export const NextChakraLink = ({ - href, - as, - replace, - scroll, - shallow, - prefetch, - children, - ...chakraProps -}: NextChakraLinkProps) => ( - - {children} - -) diff --git a/components/NowPlaying/index.tsx b/components/NowPlaying/index.tsx deleted file mode 100644 index 2c486c54..00000000 --- a/components/NowPlaying/index.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Box, Text } from '@chakra-ui/react' -import useSWR from 'swr' - -import { NextChakraLink, Spotify } from 'components' - -import fetcher from 'lib/fetcher' - -export const NowPlaying: React.FC = () => { - const { data } = useSWR('/api/now-playing', fetcher) - - return ( - - - - {data?.songUrl ? ( - - - {data.title} - {data.artist} - - - ) : ( - Not Playing - )} - - - ) -} diff --git a/components/Page/index.tsx b/components/Page/index.tsx deleted file mode 100644 index d260fd06..00000000 --- a/components/Page/index.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { NextSeo } from 'next-seo' -import React from 'react' - -interface PageProps { - name: string - path: string - children: React.ReactNode -} -export const Page: React.FC = ({ name, path, children }) => { - const title = `lwnd – ${name}` - const url = `https://lwnd.me${path}` - - return ( - <> - - {children} - - ) -} diff --git a/components/Project/index.tsx b/components/Project/index.tsx deleted file mode 100644 index f0ef0c15..00000000 --- a/components/Project/index.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Box, HStack, Tag, Text } from '@chakra-ui/react' -import React from 'react' -import { IProject } from 'types' - -import { NextChakraLink, ViewSourceButton } from 'components' - -interface ProjectProps { - project: IProject -} - -export const Project: React.FC = ({ project }) => { - return ( - - - {project.url ? ( - - {project.title} - - ) : ( - {project.title} - )} - {project.source && ( - - View source - - )} - {project.status && ( - - {project.status} - - )} - - - - {project.description} - - - ) -} diff --git a/components/Shell/Shell.test.tsx b/components/Shell/Shell.test.tsx deleted file mode 100644 index 2203033b..00000000 --- a/components/Shell/Shell.test.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import '@testing-library/jest-dom' -import { render, screen } from '@testing-library/react' - -import { Shell } from 'components' - -describe('Shell', () => { - it('renders a navbar', () => { - render() - - const navigation = screen.getByRole('navigation') - expect(navigation).toBeInTheDocument() - }) - - it('renders a child element', () => { - render(Hello World) - - const child = screen.getByText('Hello World') - expect(child).toBeInTheDocument() - }) - - it('renders a footer', () => { - render() - - const footer = screen.getByRole('contentinfo') - expect(footer).toBeInTheDocument() - }) -}) diff --git a/components/Shell/index.tsx b/components/Shell/index.tsx deleted file mode 100644 index e1aa07bf..00000000 --- a/components/Shell/index.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { Box, Flex } from '@chakra-ui/react' - -import { Footer, Navbar } from 'components' - -interface ShellProps { - children?: React.ReactNode -} - -export const Shell: React.FC = ({ children }) => { - return ( - - - - - {children} - - -