Skip to content

feat: merge gh branch into main#6

Closed
edotau wants to merge 1 commit intomainfrom
gh-pages
Closed

feat: merge gh branch into main#6
edotau wants to merge 1 commit intomainfrom
gh-pages

Conversation

@edotau
Copy link
Copy Markdown
Owner

@edotau edotau commented Feb 2, 2024

No description provided.

@edotau edotau temporarily deployed to github-pages March 1, 2024 04:40 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages April 25, 2024 05:52 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages April 25, 2024 06:40 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages April 25, 2024 07:17 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages April 25, 2024 15:53 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 06:10 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 06:48 — with GitHub Pages Inactive
@github-pages github-pages Bot temporarily deployed to github-pages May 1, 2024 06:50 Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 06:53 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 07:04 — with GitHub Pages Inactive
@github-pages github-pages Bot temporarily deployed to github-pages May 1, 2024 07:06 Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 07:08 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 07:26 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 07:31 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 07:33 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 21:45 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 21:53 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 21:56 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 21:59 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 22:01 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 1, 2024 22:04 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 2, 2024 05:33 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 2, 2024 05:46 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 7, 2024 22:43 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 7, 2024 22:50 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 7, 2024 22:52 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 8, 2024 02:36 — with GitHub Pages Inactive
@github-pages github-pages Bot temporarily deployed to github-pages May 8, 2024 02:46 Inactive
@edotau edotau temporarily deployed to github-pages May 8, 2024 03:21 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 8, 2024 03:26 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 8, 2024 03:35 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 8, 2024 08:16 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 8, 2024 10:38 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 14, 2024 09:55 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 14, 2024 10:09 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 14, 2024 10:28 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages May 14, 2024 13:22 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages June 21, 2024 18:08 — with GitHub Pages Inactive
@edotau edotau temporarily deployed to github-pages June 21, 2024 18:11 — with GitHub Pages Inactive
Copilot AI review requested due to automatic review settings April 2, 2026 03:16
@edotau edotau review requested due to automatic review settings April 2, 2026 03:16
@edotau edotau deleted the branch main April 3, 2026 21:16
@edotau edotau closed this Apr 3, 2026
Copilot AI review requested due to automatic review settings April 3, 2026 21:16
@edotau edotau temporarily deployed to github-pages April 3, 2026 21:16 — with GitHub Pages Inactive
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR merges the gh branch into main and substantially restructures the portfolio SPA: it replaces the prior React Router + MUI dashboard-based layout with a Tailwind-driven CV-centric layout, adds several interactive “demo” dialogs, and introduces a GitHub Pages deployment workflow.

Changes:

  • Switch app structure from router-driven MUI dashboard pages to a single-page CV layout backed by static data (src/data/cv-data.ts).
  • Add Tailwind CSS 4 integration via @tailwindcss/vite, update global styles + fonts, and adjust build/tooling configuration.
  • Add new pages/components/demos (CV page shell, skills/publications/experience cards, hobby masonry wall, interactive demo dialogs).

Reviewed changes

Copilot reviewed 39 out of 40 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
vite.config.ts Adds Tailwind Vite plugin and React/ReactDOM dedupe.
tsconfig.app.json Updates TS compiler options and path alias mapping.
src/widgets/layout/NavigationDrawer.tsx Removes old MUI navigation drawer.
src/widgets/layout/Footer.tsx Removes old MUI footer component.
src/widgets/layout/AppBarNav.tsx Removes old MUI app bar/navigation component.
src/widgets/cards/ProfileInfoCard.tsx Removes old MUI profile info card widget.
src/theme.ts Removes MUI theme definition.
src/routes.tsx Removes React Router route configuration.
src/pages/Projects.tsx Removes old Projects page (MUI-based).
src/pages/HobbiesPage.tsx Adds Tailwind-based masonry hobbies page with lightbox + infinite scroll.
src/pages/Experience.tsx Removes old resume PDF viewer page (react-pdf).
src/pages/CVPage.tsx Adds new CV page shell with sticky section nav, dialogs, and section layout.
src/pages/Blog.tsx Removes old Blog placeholder page (MUI-based).
src/pages/AboutMePage.tsx Adds Tailwind “About Me” page variant with link highlight card(s).
src/pages/AboutMe.tsx Removes old MUI About Me page.
src/main.tsx Simplifies app bootstrap (removes router/theme/context wrappers).
src/layouts/Dashboard.tsx Removes router-based dashboard layout.
src/global.css Adds Tailwind import + theme font variables; keeps base box-sizing/height rules.
src/demos/TerminalDemo.tsx Adds interactive terminal-style skills explorer demo.
src/demos/SpreadsheetDemo.tsx Adds spreadsheet + canvas latency chart demo.
src/demos/SkillDemoDispatcher.tsx Adds dispatcher mapping skill categories to demo dialogs.
src/demos/RequestFlowDemo.tsx Adds request flow visualization demo.
src/demos/PipelineDemo.tsx Adds CI/CD pipeline simulation demo.
src/demos/InfraTopologyDemo.tsx Adds draggable infrastructure topology demo.
src/demos/DialogShell.tsx Adds reusable modal/dialog shell for demos.
src/demos/ComponentTreeDemo.tsx Adds component tree visualization demo.
src/demos/AlignmentDemo.tsx Adds alignment visualization demo.
src/data/cv-data.ts Introduces centralized CV content + theme tokens + section config.
src/context/index.tsx Removes old app context (drawer state).
src/components/SkillsSection.tsx Adds skills section cards that open demos.
src/components/shared.tsx Adds shared useInView, Tag, and SectionLabel utilities.
src/components/PublicationCard.tsx Adds publication card + publication dialog.
src/components/ExperienceCard.tsx Adds experience timeline card.
src/components/EducationCard.tsx Adds education card section.
src/App.tsx Replaces router-based app with single-page CV layout + minimal header/footer.
package.json Updates dependencies/devDependencies for Tailwind Vite plugin and other package changes.
package-lock.json Locks updated dependency graph (Tailwind/MUI/etc).
index.html Updates Google Fonts import to Playfair Display / DM Sans / Fira Code.
CLAUDE.md Adds repository guidance document for Claude Code.
.github/workflows/deploy.yml Adds GitHub Pages deployment workflow (build + deploy dist/).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tsconfig.app.json
Comment on lines 19 to 22
/* Path aliases */
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
"@/*": ["./src/*"]
},
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

compilerOptions.paths is configured but baseUrl was removed. TypeScript requires baseUrl when using paths (otherwise compilation fails with an option error). Re-add "baseUrl": "." (or another appropriate base) or remove paths and rely solely on Vite aliases.

Copilot uses AI. Check for mistakes.
Comment thread src/pages/HobbiesPage.tsx
Comment on lines +179 to +194
<button
onClick={onClick}
className={`group relative block w-full overflow-hidden rounded-2xl bg-gray-100 cursor-zoom-in
${ASPECT_RATIO[item.aspectHint]}
transition-transform duration-300 ease-out hover:scale-[1.025]
shadow-sm hover:shadow-xl hover:shadow-black/10`}
>
<img
src={item.src}
alt=""
loading="lazy"
decoding="async"
className="absolute inset-0 w-full h-full object-cover transition-transform duration-500 group-hover:scale-105"
/>
<div className="absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-300 rounded-2xl" />
</button>
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These media cards are interactive (<button> opens the lightbox) but the contained images use empty alt text and the button has no accessible name. This makes the grid difficult to use with screen readers. Consider providing an aria-label on the button and/or meaningful alt text (e.g., from caption/location/date when present).

Copilot uses AI. Check for mistakes.
Comment thread src/pages/HobbiesPage.tsx
Comment on lines +418 to +448
<button
onClick={(e) => { e.stopPropagation(); prev(); }}
className="fixed left-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full bg-white/10 hover:bg-white/20 backdrop-blur-sm text-white flex items-center justify-center transition-colors"
>
</button>
<button
onClick={(e) => { e.stopPropagation(); next(); }}
className="fixed right-4 top-1/2 -translate-y-1/2 w-10 h-10 rounded-full bg-white/10 hover:bg-white/20 backdrop-blur-sm text-white flex items-center justify-center transition-colors"
>
</button>
</>
)}

<button
onClick={handleClose}
className="fixed top-4 right-4 w-9 h-9 rounded-full bg-white/10 hover:bg-white/20 backdrop-blur-sm text-white flex items-center justify-center text-lg transition-colors"
>
×
</button>

<div className="fixed bottom-4 left-1/2 -translate-x-1/2 flex gap-1.5">
{items.map((_, i) => (
<button
key={i}
onClick={(e) => { e.stopPropagation(); setIdx(i); }}
className={`rounded-full transition-all duration-200 ${
i === idx ? "w-5 h-1.5 bg-white" : "w-1.5 h-1.5 bg-white/40"
}`}
/>
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lightbox controls (prev/next/close and the pagination dots) don’t have aria-labels, so assistive technologies will announce them poorly (or not at all). Add descriptive labels (e.g., "Previous", "Next", "Close", "Go to item N") and consider setting type="button" on these buttons as well.

Copilot uses AI. Check for mistakes.
if (!dragRef.current || !containerRef.current) return;
const rect = containerRef.current.getBoundingClientRect();
const x = Math.max(0, Math.min(rect.width - NODE_W, e.clientX - rect.left - dragRef.current.offsetX));
const y = Math.max(0, Math.min(360 - NODE_H, e.clientY - rect.top - dragRef.current.offsetY));
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drag bounds clamp y using a hard-coded 360 height (Math.min(360 - NODE_H, ...)). This will break if the container height changes (or if it’s ever made responsive). Use rect.height (similar to rect.width) to compute the vertical clamp instead of a magic number.

Suggested change
const y = Math.max(0, Math.min(360 - NODE_H, e.clientY - rect.top - dragRef.current.offsetY));
const y = Math.max(0, Math.min(rect.height - NODE_H, e.clientY - rect.top - dragRef.current.offsetY));

Copilot uses AI. Check for mistakes.
transform: visible ? "translateX(0)" : "translateX(-14px)",
transition: `opacity 0.6s cubic-bezier(0.16,1,0.3,1) ${index * 0.1}s,
transform 0.6s cubic-bezier(0.16,1,0.3,1) ${index * 0.1}s,
border-color 0.2s, translate 0.2s`,
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The inline transition string includes translate 0.2s, but this component animates via transform (including Tailwind’s hover:translate-x-1). translate is not the property being updated here and may be ignored, making the transition declaration misleading. Prefer transform 0.2s (or drop this part since transform is already included above).

Suggested change
border-color 0.2s, translate 0.2s`,
border-color 0.2s`,

Copilot uses AI. Check for mistakes.
Comment thread src/pages/AboutMePage.tsx
* AboutMePage.tsx
*
* Drop-in replacement for the AboutMe section in App.tsx.
* - Removed "Outside Work" bio section
Copy link

Copilot AI Apr 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file header comment says the "Outside Work" bio section was removed, but the component still renders an "Extracurriculars" section below. Please update the comment to reflect the current behavior so it doesn’t become misleading documentation.

Suggested change
* - Removed "Outside Work" bio section
* - Renamed the former "Outside Work" bio section to "Extracurriculars"

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants