Skip to content

Conversation

shubhamupadhyaydeveloper
Copy link

@shubhamupadhyaydeveloper shubhamupadhyaydeveloper commented Jun 26, 2025

Closes #72

📝 Description

The current website includes a Contact page route, but it is currently blank and non-functional. To enhance user engagement and provide a way to reach out or connect with the team/community, we need to implement a meaningful Contact page. This page should serve as a central hub for social connections and direct communication.

🔧 Changes Made

-> Introduce a new landing layout for the Contact page that includes:
-> GitHub link (for viewing/contributing to the codebase)
-> Discord link (to join the community)
-> Embed a form allowing users to send messages directly:
-> The submitted message will be relayed to a Discord channel via webhook or bot integration.
-> Include basic fields: Name, Email (optional), Message.
-> Validation and error handling should be implemented for form submission.

📷 Screenshots or Visual Changes (if applicable)

Screen.Recording.2025-06-26.at.00.06.47.mov

🤝 Collaboration

N/A

✅ Checklist

  • [✅ ] I have read the contributing guidelines.
  • [✅ ] I have added tests that prove my fix is effective or that my feature works.
  • [✅ ] I have added necessary documentation (if applicable).
  • [✅ ] Any dependent changes have been merged and published in downstream modules.

Summary by CodeRabbit

  • New Features

    • Introduced a dedicated Contact page with animated sections, social/community links, and a user feedback form.
    • Added a new feedback form allowing users to submit comments, suggestions, or issues directly from the app.
    • Implemented a new animated footer with navigation links and a fade-in effect.
    • Added a new top navigation bar featuring branding, navigation, and user controls.
    • Integrated toast notifications for user feedback using enhanced color options.
  • Refactor

    • Updated the HomePage to use the new top navigation and footer components for a more consistent layout.

Copy link
Contributor

coderabbitai bot commented Jun 26, 2025

Walkthrough

A new Contact page is introduced to the frontend, featuring social links and a feedback form. Supporting components for navigation, footer, and notifications are added, and routing is updated to include the Contact page. The HomePage is refactored to use the new navigation and footer components.

Changes

File(s) Change Summary
Frontend/package.json Added sonner dependency for toast notifications.
Frontend/src/components/FeedbackForm.tsx Introduced new FeedbackForm component for user feedback submissions.
Frontend/src/components/Footer.tsx Introduced new Footer component with animated visibility and navigation links.
Frontend/src/components/TopNav.tsx Introduced new TopNav component for the top navigation bar.
Frontend/src/pages/Contact.tsx Introduced ContactPage with social links, animated sections, and integrated FeedbackForm and navigation.
Frontend/src/App.tsx Added /contact route rendering the new ContactPage.
Frontend/src/main.tsx Integrated Toaster from sonner for toast notifications at the app root.
Frontend/src/pages/HomePage.tsx Refactored to use new TopNav and Footer components, removed inline header/footer implementations.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant TopNav
    participant App
    participant ContactPage
    participant FeedbackForm
    participant Toaster

    User->>TopNav: Navigates to /contact via navigation
    TopNav->>App: Route change to /contact
    App->>ContactPage: Render ContactPage
    ContactPage->>FeedbackForm: Render FeedbackForm
    User->>FeedbackForm: Submits feedback form
    FeedbackForm->>Toaster: Show success/error notification
Loading

Assessment against linked issues

Objective (Issue #) Addressed Explanation
Add a Contact Page with social links and a feedback form (#74)
Add corresponding route in App.tsx for Contact page (#74)

Assessment against linked issues: Out-of-scope changes

No out-of-scope changes found.

Possibly related issues

Poem

A contact page blooms, so bright and new,
With links to connect and a feedback form too!
The TopNav and Footer now dance in their place,
While Toaster pops up with a smile on its face.
🐇✨
Hooray for new ways to say "hello"—
The frontend garden continues to grow!

✨ Finishing Touches
  • 📝 Generate Docstrings

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@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

🧹 Nitpick comments (5)
Frontend/src/components/TopNav.tsx (1)

5-5: Remove unused import.

The Users icon is imported but not used in this component.

-    Users,
Frontend/src/pages/HomePage.tsx (1)

13-15: Remove unused imports after refactoring.

These imports are no longer needed since they're now handled by the TopNav component:

-import { MainNav } from "../components/main-nav";
-import { ModeToggle } from "../components/mode-toggle";
-import { UserNav } from "../components/user-nav";
Frontend/src/components/FeedbackForm.tsx (2)

32-35: Fix typo in role option and improve consistency.

There's a typo in the role option - "creater" should be "creator". Also, consider adding icons to role options for visual consistency with feedback types.

const rolesTypes = [
-    { value: "creater", label: "Content Creator" },
+    { value: "creator", label: "Content Creator" },
    { value: "brand/agency", label: "Brand/Agency" },
]

148-148: Incorrect placeholder text in role selection.

The placeholder text for the role selection says "Select message type" but should say "Select your role" or similar to match the field purpose.

<SelectTrigger>
-    <SelectValue placeholder="Select message type" />
+    <SelectValue placeholder="Select your role" />
</SelectTrigger>
Frontend/src/pages/Contact.tsx (1)

59-59: Consider extracting magic number for better maintainability.

The mt-30 class uses a large spacing value that might be better defined as a CSS custom property or design token for consistency across the application.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d8b9ae5 and 1107121.

⛔ Files ignored due to path filters (1)
  • Frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (8)
  • Frontend/package.json (1 hunks)
  • Frontend/src/App.tsx (2 hunks)
  • Frontend/src/components/FeedbackForm.tsx (1 hunks)
  • Frontend/src/components/Footer.tsx (1 hunks)
  • Frontend/src/components/TopNav.tsx (1 hunks)
  • Frontend/src/main.tsx (1 hunks)
  • Frontend/src/pages/Contact.tsx (1 hunks)
  • Frontend/src/pages/HomePage.tsx (4 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
Frontend/src/components/FeedbackForm.tsx (6)
Frontend/src/components/ui/card.tsx (5)
  • Card (80-80)
  • CardHeader (81-81)
  • CardTitle (83-83)
  • CardDescription (84-84)
  • CardContent (85-85)
Frontend/src/components/ui/label.tsx (1)
  • Label (25-25)
Frontend/src/components/ui/input.tsx (1)
  • Input (21-21)
Frontend/src/components/ui/select.tsx (5)
  • Select (150-150)
  • SelectTrigger (153-153)
  • SelectValue (152-152)
  • SelectContent (154-154)
  • SelectItem (156-156)
Frontend/src/components/ui/textarea.tsx (1)
  • Textarea (18-18)
Frontend/src/components/ui/button.tsx (1)
  • Button (54-54)
🔇 Additional comments (14)
Frontend/package.json (1)

41-41: Verify the sonner package version and security.

The addition of the sonner package for toast notifications looks good and aligns with the PR objectives. However, please verify that version ^2.0.5 is the latest stable version and check for any known security vulnerabilities.

What is the latest version of the sonner npm package and are there any known security vulnerabilities in version 2.0.5?
Frontend/src/components/TopNav.tsx (1)

13-41: Well-structured navigation component.

The TopNav component implementation is clean and follows React best practices. The fixed positioning with backdrop blur creates a modern navigation experience, and the responsive design with conditional button visibility is well-implemented.

Frontend/src/components/Footer.tsx (1)

5-55: Excellent implementation with proper cleanup.

The Footer component is well-architected with:

  • Proper use of IntersectionObserver for scroll-based animations
  • Correct cleanup logic to prevent memory leaks
  • Smooth transition animations
  • Responsive design

The implementation follows React best practices and handles edge cases appropriately.

Frontend/src/pages/HomePage.tsx (2)

17-18: Great refactoring to use reusable components.

The integration of TopNav and Footer components significantly improves code maintainability and consistency across the application.


83-83: Clean component integration.

The replacement of inline header and footer markup with reusable components makes the HomePage cleaner and more maintainable.

Also applies to: 164-164

Frontend/src/App.tsx (1)

18-18: Proper route integration for the new Contact page.

The ContactPage import and route addition are correctly implemented and placed in the appropriate public routes section.

Also applies to: 34-34

Frontend/src/main.tsx (1)

7-7: Clean integration of toast notifications.

The Toaster component is properly imported and positioned in the component tree, enabling toast notifications for the new feedback form functionality.

Also applies to: 12-12

Frontend/src/components/FeedbackForm.tsx (3)

38-67: Well-implemented form submission with proper error handling.

The form submission logic is well-structured with proper async/await handling, loading states, success/error feedback via toasts, and form reset on success. The validation approach using required attributes is appropriate for this use case.


100-181: Excellent form accessibility and user experience.

The form implementation follows accessibility best practices with proper labels, controlled components, and clear validation. The UI is well-structured with responsive design and appropriate visual feedback during submission.


43-43: The previous rg invocation failed due to an unrecognized file type flag. Let’s search for both variants of the env var name across all files instead:

#!/bin/bash
# Search across the entire repo for both the potentially misspelled and correct env var names
rg "VITE_FROMSPEE_ID|VITE_FORMSPREE_ID"
Frontend/src/pages/Contact.tsx (4)

17-50: Well-implemented scroll-based animation component.

The AnimatedSection component properly uses framer-motion hooks with appropriate performance optimizations like once: true and margin-based triggering. The animation variants are smooth and well-configured.


106-116: Excellent implementation of social media links with proper security attributes.

The social media links are well-implemented with proper security attributes (target="_blank", rel="noopener noreferrer"), smooth animations, and good visual design with hover effects and external link indicators.

Also applies to: 122-132, 138-148, 154-164


53-182: Well-structured contact page with excellent user experience.

The contact page implementation demonstrates excellent structure with proper component composition, responsive design, accessibility features, and smooth animations. The integration of TopNav, Footer, and FeedbackForm components creates a cohesive user experience.


103-103: Verify social media links are accessible.

Please verify that these social media links are valid and accessible. Some appear to be placeholder URLs that should be updated with actual company/project links.

#!/bin/bash
# Test accessibility of social media links
echo "Testing social media link accessibility..."

# Test GitHub link
curl -I -s "https://github.com/AOSSIE-Org/InPactAI" | head -1

# Test Discord link (may require authentication)
curl -I -s "https://discord.com/channels/1022871757289422898/1345044736515379210" | head -1

# Test Twitter link
curl -I -s "https://twitter.com/inpact_ai" | head -1

# Test LinkedIn link
curl -I -s "https://linkedin.com/company/inpact-ai" | head -1

Also applies to: 119-119, 135-135, 151-151

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.

Add Contact Page with Social Links and Message Form
1 participant