diff --git a/components/GridItems/Certificate.tsx b/components/GridItems/Certificate.tsx index 5678b3a..b8e23e1 100644 --- a/components/GridItems/Certificate.tsx +++ b/components/GridItems/Certificate.tsx @@ -1,7 +1,7 @@ -import { CombinedInterfaces, LanguageItem } from "@/components/Types"; +import { CombinedInterfaces } from "@/components/Types"; import { motion } from "framer-motion"; -const Certificates = ({ item }: { item: CombinedInterfaces }) => { +const Certificates = ({ item, handleClick }: { item: CombinedInterfaces, handleClick?: () => {} }) => { return ( { className="relative inline-block" whileHover={{ scale: 1.1 }} > -
+ {/* TODO: handleclick to redirection */} +
{language.title} { const [image, setImage] = useState(item.image); const [gradient, setGradient] = useState(true); - + const setTheImage = (imageItem: LanguageItem | string) => { if (typeof imageItem === "object") { const title = imageItem.title; const languageImage = imageItem.languageImage; - + if (Object.values(LanguageTitle).includes(title as LanguageTitle)) { setImage(languageImage); } else { @@ -27,20 +27,14 @@ const Languages = ({ item }: { item: CombinedInterfaces }) => { const setCode = (language: LanguageItem) => { let codeText = ""; switch (language.title) { - case LanguageTitle.Typescript: - codeText = LanguageCode.JavascriptHelloWorld; - break; - case LanguageTitle.Django: - codeText = LanguageCode.DjangoHelloWorld; + case LanguageTitle.TyAndPy: + codeText = LanguageCode.TyPy; break; - case LanguageTitle.Nodejs: - codeText = LanguageCode.NodejsHelloWorld; + case LanguageTitle.Coffee: + codeText = LanguageCode.Cofee; break; - case LanguageTitle.Python: - codeText = LanguageCode.PythonHelloWorld; - break; - case LanguageTitle.YAML: - codeText = LanguageCode.YAMLHelloWorld; + case LanguageTitle.Github: + codeText = LanguageCode.Github; break; case LanguageTitle.JACKIE: codeText = LanguageCode.JackieHelloWorld; @@ -72,33 +66,20 @@ const Languages = ({ item }: { item: CombinedInterfaces }) => { >
{displayText.length > 0 && ( -
+
- - {displayText} - + {displayText}
)}
{/* Overlay */} -
+
{/* Image */} { {/* Content */}
-
{item.title}
+
+ {item.title} +
{item.languages?.map((language, index) => { return ( diff --git a/components/GridItems/Timeline.tsx b/components/GridItems/Timeline.tsx new file mode 100644 index 0000000..042f153 --- /dev/null +++ b/components/GridItems/Timeline.tsx @@ -0,0 +1,60 @@ +import React from 'react'; +import { motion } from 'framer-motion'; + +interface ExperienceItem { + title: string; + details: string[]; + type: 'lor' | 'hackathon' | 'certificate' | string; +} + +interface TimelineItemProps { + item: ExperienceItem; + index: number; +} + +const TimelineItem: React.FC = ({ item, index }) => { + const isEven = index % 2 === 0; + return ( + +
+ +

{item.title}

+
    + {item.details.map((detail, idx) => ( +
  • + {detail} +
  • + ))} +
+
+
+
+ ); +}; + +interface ImprovedTimelineProps { + experienceItems: ExperienceItem[]; +} + +const ImprovedTimeline: React.FC = ({ experienceItems }) => { + return ( +
+
+
+ {experienceItems.map((item, index) => ( + + ))} +
+
+ ); +}; + +export default ImprovedTimeline; \ No newline at end of file diff --git a/components/LeftPanel/index.tsx b/components/LeftPanel/index.tsx index c8feb84..0174509 100644 --- a/components/LeftPanel/index.tsx +++ b/components/LeftPanel/index.tsx @@ -22,7 +22,7 @@ const LeftPanel = ({ clickedCategory, handleInteraction }: LeftPanelProps) => { { { { {
-
+
+ + Hidden element... SSSHHHHH...🤫 +
diff --git a/components/RightPanel/index.tsx b/components/RightPanel/index.tsx index b8d393f..9913261 100644 --- a/components/RightPanel/index.tsx +++ b/components/RightPanel/index.tsx @@ -70,39 +70,112 @@ const RightPanel = ({ section }: { section: string }) => { )} {section === LeftPanelOptions.EXPERIENCE && ( <> -
-
- -
- {returnCategory(IconTypes.ALBUM)} - {LeftPanelOptions.EXPERIENCE} +
+ {/* Mobile Screens */} +
+
+
+ +
+ {returnCategory(IconTypes.ALBUM)} + {LeftPanelOptions.EXPERIENCE} +
+
- +
+ {siteConfig.experienceItems.map((item, index) => ( +
+ + {item.type === "certificate" ? ( + + ) : ( +
Need to create new component type.
+ )} +
+
+ ))} +
+
-
- {siteConfig.experienceItems.map((item, index) => { - return ( -
- +
+
+
+ +
+ {returnCategory(IconTypes.ALBUM)} + {LeftPanelOptions.EXPERIENCE} +
+
+
+ {siteConfig.experienceItems.map((item, index) => ( +
+ {/* Circle Indicator */} +
+ {/* Content Block */} +
- {item.type === "lor" ? ( - - ) : item.type === "hackathon" ? ( - - ) : item.type === "certificate" ? ( - - ) : ( -
Need to create new component type.
- )} - + +
+ {item.type === "certificate" ? ( + + ) : ( +
Need to create new component type.
+ )} +
+
+
+ {/* For info */} + {/*
+ +
+ {item.type === "certificate" ? ( + + ) : ( +
Need to create new component type.
+ )} +
+
+
*/}
- ); - })} + ))} +
@@ -129,11 +202,7 @@ const RightPanel = ({ section }: { section: string }) => { key={item.title + item.type + index} size={item.layout} > - {item.type === "lor" ? ( - - ) : item.type === "hackathon" ? ( - - ) : item.type === "certificate" ? ( + {item.type === "certificate" ? ( ) : (
Need to create new component type.
@@ -168,11 +237,7 @@ const RightPanel = ({ section }: { section: string }) => { key={item.title + item.type + index} size={item.layout} > - {item.type === "lor" ? ( - - ) : item.type === "hackathon" ? ( - - ) : item.type === "certificate" ? ( + {item.type === "certificate" ? ( ) : (
Need to create new component type.
@@ -193,7 +258,7 @@ const RightPanel = ({ section }: { section: string }) => { className="w-full grid-cols-4 xl:gap-10 gap-6 xl:py-10 py-6 xl:px-2 xl:overflow-y-auto auto-rows-[75px]" >
- +
{returnCategory(IconTypes.SEARCH)} {LeftPanelOptions.EASTEREGG} @@ -204,7 +269,6 @@ const RightPanel = ({ section }: { section: string }) => {
)} - ); }; diff --git a/components/Types/enum.tsx b/components/Types/enum.tsx index 6e0698b..8388017 100644 --- a/components/Types/enum.tsx +++ b/components/Types/enum.tsx @@ -11,7 +11,7 @@ export enum LeftPanelOptions { EXPERIENCE = "Experience", ACHIEVEMENTS = "Achievements", PROJECTS = "Projects", - EASTEREGG = "EasterEgg" + EASTEREGG = "No dude, it is supposed to be hidden!! Means, a place that nobody finds out my favourite song??... Oh Jeez, now don't turn that volume up.. You dare", } export enum LanguageTitle { @@ -22,9 +22,18 @@ export enum LanguageTitle { Django = "Django", YAML = "YAML", JACKIE = "Jackie Chan Movies", + TyAndPy = "Ty & Py", + Coffee = "Coffee", + Github = "Github", } export enum LanguageCode { + TyPy = `Typescript and Python... +Lovely combo pack of katana swords ⚔️`, + Cofee = `Mornings are not fulfilled without... +Wait, Mornings... Afternoon... Evenings... Nights... Um.. Whatever ☕`, + Github = `A multiverse where every text change is sacred, and greeted +warmly with forks, and sometimes mercilessly squashed ⭐`, JavascriptHelloWorld = `const greetWithDelay = ms:number => new Promise(resolve => setTimeout( () => resolve("Hello, World!"), ms)); @@ -41,6 +50,6 @@ export enum LanguageCode { def hello_world(request): return HttpResponse("Hello, World!")`, YAMLHelloWorld = `message: "Hello, World!"`, - JackieHelloWorld = `Born in Hong Kong, Already a Dragon :) - He is/was/will always the legend... <3`, + JackieHelloWorld = `Hong Kong Dude, Love the humour :) +He is YU and I am ME, But YU is blind 🤸`, } diff --git a/config/site-config.ts b/config/site-config.ts index 2963ec0..c272c72 100644 --- a/config/site-config.ts +++ b/config/site-config.ts @@ -32,27 +32,27 @@ const ProjItems: ProjectItemInterface[] = [ { layout: "2x4", type: "certificate", - title: "Portfolio you are looking at :P", + title: "Decentralized Drive", image: "/background.jpg", languages: [ { - title: "Bento style", + title: "Solidity", link: "#", languageImage: "/name.jpg" }, { - title: "Easter Egg", + title: "Next.js", link: "#", languageImage: "/name.jpg" }, { - title: "Responsive screen grid architecture", + title: "Tailwind + TSX", link: "#", languageImage: "/name.jpg" }, { - title: "Vite + Tailwind + Firebase + TSX", - link: "#", + title: "Hardhat", + link: "/google.com", languageImage: "/name.jpg" } ], @@ -358,24 +358,24 @@ const GridItems: GridItemInterface[] = [ image: "/background.jpg", languages: [ { - title: "Typescript", + title: "Ty & Py", link: "#", - languageImage: "/typescript.jpg" + languageImage: "/pyty.jpg" }, { - title: "Python", + title: "Coffee", link: "#", - languageImage: "/python.jpg" + languageImage: "/coffee.jpg" }, { - title: "Node.js", + title: "Jackie Chan Movies", link: "#", - languageImage: "/nodejs.jpg" + languageImage: "/jackie.jpg" }, { - title: "Jackie Chan Movies", + title: "Github", link: "#", - languageImage: "/jackie.jpg" + languageImage: "/gh.jpg" }, ], }, diff --git a/package.json b/package.json index b5dbc63..e570c98 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "btkcodedev-portfolio", - "version": "0.2.0", + "version": "0.3.0", "private": true, "scripts": { "dev": "next dev", diff --git a/public/coffee.jpg b/public/coffee.jpg new file mode 100644 index 0000000..e1e297f Binary files /dev/null and b/public/coffee.jpg differ diff --git a/public/gh.jpg b/public/gh.jpg new file mode 100644 index 0000000..9e90aa0 Binary files /dev/null and b/public/gh.jpg differ diff --git a/public/pyty.jpg b/public/pyty.jpg new file mode 100644 index 0000000..87e8082 Binary files /dev/null and b/public/pyty.jpg differ