From a66c296b9b2ea10ef5309a8b3d3ca2cfe3570bcf Mon Sep 17 00:00:00 2001 From: Naomi Carrigan Date: Sun, 5 Jan 2025 03:53:02 +0000 Subject: [PATCH] feat: I did some stuff but never pushed (#66) ### Explanation _No response_ ### Issue _No response_ ### Attestations - [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/) - [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/). - [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/). ### Dependencies - [ ] I have pinned the dependencies to a specific patch version. ### Style - [ ] I have run the linter and resolved any errors. - [ ] My pull request uses an appropriate title, matching the conventional commit standards. - [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request. ### Tests - [ ] My contribution adds new code, and I have added tests to cover it. - [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes. - [ ] All new and existing tests pass locally with my changes. - [ ] Code coverage remains at or above the configured threshold. ### Documentation _No response_ ### Versioning _No response_ Reviewed-on: https://codeberg.org/nhcarrigan/portfolio/pulls/66 Co-authored-by: Naomi Carrigan Co-committed-by: Naomi Carrigan --- .vscode/settings.json | 8 ++- src/app/about/page.tsx | 43 +++++++++++---- src/app/play/page.tsx | 37 ------------- src/app/tech/page.tsx | 100 ++++++++++++++++++++++++++++------ src/components/play.tsx | 115 --------------------------------------- src/config/Art.ts | 7 +++ src/config/Games.ts | 2 +- src/config/Play.ts | 102 ---------------------------------- src/config/Socials.ts | 2 +- src/config/Vroid.ts | 32 +++++++++++ test/config/Play.spec.ts | 19 ------- 11 files changed, 165 insertions(+), 302 deletions(-) delete mode 100644 src/app/play/page.tsx delete mode 100644 src/components/play.tsx delete mode 100644 src/config/Play.ts delete mode 100644 test/config/Play.spec.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index 2beb504..9e42a51 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,11 @@ "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, - "eslint.validate": ["typescript"] + "eslint.validate": [ + "typescript" + ], + "sonarlint.connectedMode.project": { + "connectionId": "nhcarrigan", + "projectKey": "nhcarrigan_portfolio" + } } diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index bed2512..274d755 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -25,40 +25,50 @@ const About = (): JSX.Element => {

{`My expertise spans:`}

    -
  • +
  • {`Inclusive Community Building:`} {` Cultivated welcoming communities of 20,000 to 300K+ members across Discord, Slack, and GitHub, with a focus on supporting underrepresented groups in tech.`}
  • -
  • +
  • {`Empowering Education:`} {` Contributed to and maintained open-source curricula used by millions of aspiring developers globally, focusing on accessibility and engaging learning experiences.`}
  • -
  • +
  • {`Software Engineering for Inclusivity:`} {` Developed sophisticated bots and tools that not only streamline moderation and boost engagement but also promote safe, inclusive spaces for all community members.`}
  • -
  • +
  • {`Developer Experience (DX):`} {` Led initiatives to improve documentation, SDK support, and overall developer satisfaction, with an emphasis on making resources accessible to newcomers in the field.`}
  • -
  • +
  • {`Mentorship and Advocacy:`} {` Implemented programs to support aspiring developers, particularly those from @@ -88,6 +98,19 @@ const About = (): JSX.Element => { industry. Let's connect to discuss how I can best support your organisation!`}

    + +

    + {`Want to get to know Naomi better? Check out her `} + + {`Life of a Naomi game`} + + {`!`} +

    ); diff --git a/src/app/play/page.tsx b/src/app/play/page.tsx deleted file mode 100644 index bd23ed3..0000000 --- a/src/app/play/page.tsx +++ /dev/null @@ -1,37 +0,0 @@ -/** - * @copyright nhcarrigan - * @license Naomi's Public License - * @author Naomi Carrigan - */ -import { PlayComponent } from "../../components/play"; -import { Rule } from "../../components/rule"; -import { Play } from "../../config/Play"; -import type { JSX } from "react"; - -/** - * Renders the /play page. - * @returns A React Component. - */ -const PlayPage = (): JSX.Element => { - return ( -
    -

    {`Play with Naomi`}

    -
    -

    - {`I play some silly li'l mobile games to keep myself from working non-stop. Here's what I'm currently playing - will you play with me?`} -

    - -
    - {Play.toSorted((a, b) => { - return a.name.localeCompare(b.name); - }).map((game) => { - return ; - })} -
    -
    -
    - ); -}; - -export default PlayPage; diff --git a/src/app/tech/page.tsx b/src/app/tech/page.tsx index f876768..4e3bfec 100644 --- a/src/app/tech/page.tsx +++ b/src/app/tech/page.tsx @@ -13,8 +13,10 @@ import type { JSX } from "react"; */ const PlayPage = (): JSX.Element => { return ( -
    +

    {`Technologies`}

    {`These are the technologies I use on a regular basis.`} @@ -23,32 +25,98 @@ const PlayPage = (): JSX.Element => {

    {`Environment`}

    - Arch Linux - VSCode - Prisma - Node.js + Arch Linux + VSCode + Prisma + Node.js

    {`Languages`}

    - JavaScript - TypeScript - Python - Dotnet - Kotlin - Rust - Ruby + JavaScript + TypeScript + Python + Dotnet + Kotlin + Rust + Ruby

    {`Coming Soon!`}

    - Go - Dart - Flutter + Haskell + Zig + Go + Dart + Flutter
    diff --git a/src/components/play.tsx b/src/components/play.tsx deleted file mode 100644 index 42cb93e..0000000 --- a/src/components/play.tsx +++ /dev/null @@ -1,115 +0,0 @@ -/** - * @copyright nhcarrigan - * @license Naomi's Public License - * @author Naomi Carrigan - */ -/* eslint-disable react/jsx-no-bind */ -"use client"; -import { faAndroid, faAppStore } from "@fortawesome/free-brands-svg-icons"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { useState, type JSX } from "react"; - -interface PlayProperties { - name: string; - userId: string; - android: string; - ios: string; - server?: string; - guild?: { - name: string; - id: string; - }; -} - -const copyToClipboard = (text: string): void => { - void navigator.clipboard.writeText(text); -}; - -/** - * Renders the view for a mobile game. - * @param properties - The game to render. - * @returns A JSX element. - */ -export const PlayComponent = (properties: PlayProperties): JSX.Element => { - const { name, android, ios, server, guild, userId } = properties; - - const [ isFriendCodeCopied, setIsFriendCodeCopied ] - = useState(false); - const [ isGuildIdCopied, setIsGuildIdCopied ] - = useState(false); - - const columns = guild - ? "grid-cols-[2fr,1fr,200px]" - : "grid-cols-[2fr,200px]"; - - return ( -
    - - {guild - ? - : null} - -
    - ); -}; diff --git a/src/config/Art.ts b/src/config/Art.ts index b4f76fe..ab5a7e1 100644 --- a/src/config/Art.ts +++ b/src/config/Art.ts @@ -112,4 +112,11 @@ export const Art: Array<{ name: "Librarian Bot", url: "https://picrew.me/en/image_maker/2435029", }, + { + alt: "An anime-style illustration of a character with shoulder-length wavy brown hair, blue eyes behind black-rimmed glasses, wearing a beige cardigan over a white top with a black choker. They are holding a blue book and pen, with a question mark speech bubble above their head. The background is pastel purple with decorative white sparkles and chain patterns.", + artist: "Picrew", + img: "tickets.png", + name: "Ticket System", + url: "https://picrew.me/en/image_maker/625876", + }, ]; diff --git a/src/config/Games.ts b/src/config/Games.ts index a84824e..366b47c 100644 --- a/src/config/Games.ts +++ b/src/config/Games.ts @@ -216,5 +216,5 @@ export const Games: Array<{ img: "enshrouded.jpg", name: "Enshrouded", url: "https://store.steampowered.com/app/1203620/Enshrouded/", - } + }, ]; diff --git a/src/config/Play.ts b/src/config/Play.ts deleted file mode 100644 index 4c621cf..0000000 --- a/src/config/Play.ts +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @copyright nhcarrigan - * @license Naomi's Public License - * @author Naomi Carrigan - */ - -export const Play: Array<{ - name: string; - userId: string; - android: string; - ios: string; - server?: string; - guild?: { - name: string; - id: string; - }; -}> = [ - { - android: "https://play.google.com/store/apps/details?id=jp.pokemon.pokemontcgp", - ios: "https://apps.apple.com/us/app/pok%C3%A9mon-tcg-pocket/id6479970832", - name: "Pokémon TCG Pocket", - userId: "3382202283069817", - }, - { - android: "https://play.google.com/store/apps/details?id=com.mujoysg.hxbb", - guild: { - id: "92 (Battle Zone 271)", - name: "NHCarrigan", - }, - ios: "https://apps.apple.com/us/app/idle-angels-goddess-warfare/id1478505280", - name: "Idle Angels", - userId: "6c2c7ce4a60544a3aee8670d8dddf1ed", - }, - { - android: "https://play.google.com/store/apps/details?id=com.proximabeta.nikke", - guild: { - id: "28325", - name: "NHC", - }, - ios: "https://apps.apple.com/us/app/goddess-of-victory-nikke/id1585915174", - name: "Goddess of Victory: Nikke", - userId: "05362866", - }, - { - android: "https://play.google.com/store/apps/details?id=com.yoozoo.jgame.us", - guild: { - id: "100030", - name: "NHC", - }, - ios: "https://apps.apple.com/us/app/echocalypse-scarlet-covenant/id6446244975", - name: "Echocalypse: Scarlet Covenant", - server: "Aurora (3054310105)", - userId: "17754", - }, - { - android: "https://play.google.com/store/apps/details?id=jp.pokemon.pokemonsleep", - ios: "https://apps.apple.com/us/app/pok%C3%A9mon-sleep/id1579464667", - name: "Pokémon Sleep", - userId: "9952-8565-4043", - }, - { - android: "https://play.google.com/store/apps/details?id=com.goddessidle.global.android", - guild: { - id: "NHCarrigan", - name: "NHCarrigan", - }, - ios: "https://apps.apple.com/us/app/goddess-era-2331-draws/id1626294447", - name: "Goddess Era", - server: "S971", - userId: "449", - }, - { - android: "https://play.google.com/store/apps/details?id=com.nintendo.zaba", - ios: "https://apps.apple.com/us/app/fire-emblem-heroes/id1181774280", - name: "Fire Emblem: Heroes", - userId: "1305386686", - }, - { - android: "https://play.google.com/store/apps/details?id=com.HoYoverse.hkrpgoversea", - ios: "https://apps.apple.com/us/app/honkai-star-rail/id1599719154", - name: "Honkai Star Rail", - server: "America", - userId: "620952550", - }, - { - android: "https://play.google.com/store/apps/details?id=com.nintendo.zaca", - ios: "https://apps.apple.com/us/app/animal-crossing-pocket-camp/id1179915619", - name: "Animal Crossing: Pocket Camp", - userId: "3848 6071 011", - }, - { - android: "https://play.google.com/store/apps/details?id=com.omnidream.ohs&hl=en-US", - guild: { - id: "NHCarrigan", - name: "NHCarrigan", - }, - ios: "https://apps.apple.com/us/app/omniheroes/id1620283683", - name: "Omniheroes", - server: "S651", - userId: "426716065110770702", - }, -]; diff --git a/src/config/Socials.ts b/src/config/Socials.ts index 4faa739..10b4e80 100644 --- a/src/config/Socials.ts +++ b/src/config/Socials.ts @@ -470,7 +470,7 @@ const Socials: Array<{ color: "#FFFFFF", icon: faBluesky, label: "BlueSky", - link: "https://bsky.app/profile/naomi-lgbt.bsky.social", + link: "https://bsky.app/profile/naomi.lgbt", }, { alt: "Telegram Logo", diff --git a/src/config/Vroid.ts b/src/config/Vroid.ts index e69fa08..1a9b4fb 100644 --- a/src/config/Vroid.ts +++ b/src/config/Vroid.ts @@ -28,6 +28,38 @@ const VRoid = [ file: "swim.vrm", name: "Swimsuit", }, + { + file: "goth.vrm", + name: "Goth Outfit", + }, + { + file: "kimono.vrm", + name: "Kimono", + }, + { + file: "knight.vrm", + name: "Valiant Knight", + }, + { + file: "miko.vrm", + name: "Divine Miko", + }, + { + file: "onmyoji.vrm", + name: "Onmyōji", + }, + { + file: "sailor.vrm", + name: "Sailor Fuku", + }, + { + file: "sweater.vrm", + name: "Sweater Dress", + }, + { + file: "witch", + name: "Arcane Witch", + }, ]; const MainVRoid = { diff --git a/test/config/Play.spec.ts b/test/config/Play.spec.ts deleted file mode 100644 index 0b96f0a..0000000 --- a/test/config/Play.spec.ts +++ /dev/null @@ -1,19 +0,0 @@ -/** - * @copyright nhcarrigan - * @license Naomi's Public License - * @author Naomi Carrigan - */ -import { describe, it, expect } from "vitest"; -import { Play } from "../../src/config/Play"; - -describe("play objects", () => { - it("should have unique names", () => { - expect.assertions(1); - const set = new Set( - Play.map((p) => { - return p.name; - }), - ); - expect(set, "are not unique").toHaveLength(Play.length); - }); -});