Skip to content

Conversation

@gocanto
Copy link
Contributor

@gocanto gocanto commented Oct 6, 2025

Summary

  • update the WidgetSocialPartial header to read "Find Me Online"
  • refresh the social platform call-to-action copy to match the new messaging
  • adjust the WidgetSocialPartial unit test to expect the updated GitHub text

Testing

  • npm run test (fails: vitest command not available in container)

https://chatgpt.com/codex/tasks/task_e_68e356ca912883338da98b17349e0041

Summary by CodeRabbit

  • New Features

    • Added a Back to Top link on the Projects page and an anchor for in-page navigation.
    • Back to Top link is now configurable with a target and has sensible default label and icon.
  • Style

    • Updated social section heading to “Find Me Online.”
    • Refreshed platform link copy (X, YouTube, Instagram, LinkedIn, GitHub) for clearer CTAs.
  • Tests

    • Added a Back to Top stub in page tests and updated social link test expectations.

@coderabbitai
Copy link

coderabbitai bot commented Oct 6, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Adds a configurable BackToTopLink component and anchors (ProjectsPage and Resume-related partials), wires new backToTopTarget props through Experience/Recommendation partials, updates social copy text, and adjusts tests to stub/use the new partial and updated strings.

Changes

Cohort / File(s) Summary
Pages
src/pages/ProjectsPage.vue, src/pages/ResumePage.vue
Adds id="projects-top" to Projects title; imports and renders BackToTopLink targeting the anchor. ResumePage now passes back-to-top-target props to Experience/Recommendation partials and uses target on BackToTopLink.
Partials (Back-to-top)
src/partials/BackToTopLink.vue
Reworked to script-setup (TS); defines props target: string, label?: string ('Back to top'), icon?: string ('↑'); binds :href="target" and renders dynamic icon/label.
Partials (back-to-top integration)
src/partials/ExperiencePartial.vue, src/partials/RecommendationPartial.vue
Add backToTopTarget: string prop, import/use toRefs and pass :target="backToTopTarget" into BackToTopLink; minor refactor to use .value where applicable.
Partials (copy updates)
src/partials/WidgetSocialPartial.vue
UI text changes: header to "Find Me Online" and revised platform link labels (X, YouTube, Instagram, LinkedIn, GitHub). No logic changes.
Tests (pages)
tests/pages/ProjectsPage.test.ts
Add BackToTopLink to global stubs in ProjectsPage tests.
Tests (partials)
tests/partials/WidgetSocialPartial.test.ts, tests/partials/ExperiencePartial.test.ts, tests/partials/RecommendationPartial.test.ts
Update expected text for social link (GitHub) and pass backToTopTarget prop in Experience/Recommendation partial tests; adjust mounts to include new prop where needed.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant ProjectsPage
  participant BackToTopLink
  participant Browser

  Note over ProjectsPage: Render phase
  ProjectsPage->>BackToTopLink: mount with target="#projects-top"
  User->>BackToTopLink: click back-to-top
  BackToTopLink->>Browser: navigate to anchor (#projects-top)
  Browser-->>User: scrolls to anchored heading
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

codex

Poem

A hop to the top, an anchor in sight,
I nudge the link—up we take flight.
Labels refreshed, props passed with care,
Tests updated, the codebase fair.
Thump-thump! A rabbit's tidy little delight. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title “feat: Back up Button tweaks + uses” is too vague and does not clearly convey the primary changes introduced in the pull request, such as the addition of the BackToTopLink component to the ProjectsPage or the refresh of the social widget copy, making it difficult for a reviewer to understand the main impact at a glance. Consider renaming the title to succinctly capture the key changes, for example “feat: add BackToTopLink on ProjectsPage and refresh WidgetSocialPartial copy,” so that the main enhancements are immediately clear.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch gocanto/add-back-to-top-button-on-projects-page-2025-10-06

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello @gocanto, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on enhancing the user experience by updating the content of the social media widget and improving navigation on the projects page. It modernizes the messaging for social platforms and introduces a convenient 'Back to top' feature, making the site more user-friendly and current.

Highlights

  • Social Widget Content Update: The header text of the WidgetSocialPartial has been updated from 'Social' to 'Find Me Online', and the call-to-action messages for various social platforms (X, YouTube, Instagram, LinkedIn, GitHub) have been refreshed to be more descriptive and engaging.
  • Back to Top Functionality: A new 'Back to top' link has been introduced on the ProjectsPage.vue to improve navigation, allowing users to quickly return to the top of the projects list.
  • Dynamic BackToTopLink Component: The BackToTopLink component has been made more flexible by accepting a target prop, allowing it to link to different sections of a page, defaulting to #resume-top.
  • Unit Test Adjustments: Unit tests for WidgetSocialPartial were updated to reflect the new GitHub call-to-action text, and ProjectsPage tests were updated to stub the new BackToTopLink component.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request successfully updates the copy for the social widget and its tests. It also introduces a new reusable BackToTopLink component and adds it to the ProjectsPage. My review focuses on a small improvement in the implementation of this new component to make it more concise and maintainable by following Vue 3 best practices.

@gocanto gocanto marked this pull request as draft October 6, 2025 05:51
@gocanto gocanto changed the title Refresh WidgetSocialPartial copy feat: Back up Button tweaks + uses Oct 6, 2025
@gocanto gocanto added testing and removed codex labels Oct 6, 2025
@gocanto gocanto marked this pull request as ready for review October 6, 2025 06:05
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
src/partials/BackToTopLink.vue (1)

11-26: Simplify by removing unnecessary toRefs.

This issue has already been identified in a previous review comment.

🧹 Nitpick comments (2)
src/partials/ExperiencePartial.vue (1)

46-55: Simplify by removing unnecessary toRefs.

In Vue 3's <script setup>, props are automatically reactive and can be accessed directly in the template. The use of toRefs adds unnecessary complexity.

You can simplify to:

-import { toRefs } from 'vue';
 import BackToTopLink from '@partials/BackToTopLink.vue';
 import type { ExperienceResponse } from '@api/response/index.ts';

 const props = defineProps<{
 	experience: Array<ExperienceResponse>;
 	backToTopTarget: string;
 }>();
-
-const { backToTopTarget } = toRefs(props);

Then update the template to use props.backToTopTarget:

-<BackToTopLink :target="backToTopTarget" />
+<BackToTopLink :target="props.backToTopTarget" />
src/partials/RecommendationPartial.vue (1)

33-58: Simplify by removing unnecessary toRefs.

Props are automatically reactive in Vue 3's <script setup> and can be accessed directly. The toRefs usage adds unnecessary complexity.

You can simplify to:

-import { computed, toRefs } from 'vue';
+import { computed } from 'vue';
 import DOMPurify from 'dompurify';
 import BackToTopLink from '@partials/BackToTopLink.vue';
 import { image, date } from '@/public.ts';
 import type { RecommendationsResponse } from '@api/response/recommendations-response.ts';
 import { renderMarkdown } from '@/support/markdown.ts';

 const props = defineProps<{
 	recommendations: Array<RecommendationsResponse>;
 	backToTopTarget: string;
 }>();

-const { recommendations, backToTopTarget } = toRefs(props);
-
 const processedRecommendations = computed(() => {
-	return recommendations.value.map((item) => {
+	return props.recommendations.map((item) => {
 		const sanitisedHtml = DOMPurify.sanitize(renderMarkdown(item.text));

 		return {
 			...item,
 			html: sanitisedHtml,
 			formattedDate: date().format(new Date(item.created_at)),
 		};
 	});
 });

Then update the template to use props.backToTopTarget:

-<BackToTopLink :target="backToTopTarget" />
+<BackToTopLink :target="props.backToTopTarget" />
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 89ab259 and 9249b17.

📒 Files selected for processing (6)
  • src/pages/ResumePage.vue (1 hunks)
  • src/partials/BackToTopLink.vue (1 hunks)
  • src/partials/ExperiencePartial.vue (2 hunks)
  • src/partials/RecommendationPartial.vue (2 hunks)
  • tests/partials/ExperiencePartial.test.ts (1 hunks)
  • tests/partials/RecommendationPartial.test.ts (1 hunks)
🔇 Additional comments (7)
tests/partials/RecommendationPartial.test.ts (1)

32-34: LGTM!

The test correctly provides the new backToTopTarget prop that the component now requires.

src/pages/ResumePage.vue (3)

18-18: LGTM!

The anchor target is correctly added to the page title, enabling the back-to-top functionality.


38-40: LGTM!

The back-to-top-target prop is correctly passed to both partials with a consistent anchor reference.


44-44: LGTM!

The BackToTopLink is correctly configured with the matching anchor target.

tests/partials/ExperiencePartial.test.ts (1)

25-25: LGTM!

The test correctly provides the new backToTopTarget prop that the component now requires.

src/partials/ExperiencePartial.vue (1)

5-5: LGTM!

The backToTopTarget prop is correctly bound to the BackToTopLink component.

src/partials/RecommendationPartial.vue (1)

5-5: LGTM!

The backToTopTarget prop is correctly bound to the BackToTopLink component.

@gocanto gocanto merged commit 46169dc into main Oct 6, 2025
5 checks passed
@gocanto gocanto deleted the gocanto/add-back-to-top-button-on-projects-page-2025-10-06 branch October 6, 2025 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants