Skip to content

V 20 08 2025#54

Merged
syed-reza98 merged 6 commits intomainfrom
v_20_08_2025
Aug 20, 2025
Merged

V 20 08 2025#54
syed-reza98 merged 6 commits intomainfrom
v_20_08_2025

Conversation

@syed-reza98
Copy link
Copy Markdown
Collaborator

No description provided.

Replaced Resend email service with Gmail using Nodemailer throughout the project. Updated environment variables, documentation, and workflow templates to use Gmail credentials and app password. Added Gmail configuration documentation and removed Resend dependencies from package files.
Introduces RSVP API endpoint and test, adds RSVP form logic and submission, and provides a script for sending test emails. Updates environment files for email testing, improves gallery and homepage UI, enforces light theme, and adds a route loader component. Also updates package dependencies and scripts for email and RSVP testing.
Updated color schemes to use theme variables, improved image overlays and gradients, added motion-reduce support for accessibility, and enhanced decorative elements with aria-hidden attributes. These changes improve visual consistency and accessibility in the 'Our Story' section.
Added new DevTools reports including Lighthouse JSON, browser console logs, and Puppeteer script for arvinwedsincia.com. Updated admin login and layout pages in the client app.
Initial commit of the Copilot chat log documenting UI/UX improvements, image adjustments, mobile responsiveness, and a Next.js Suspense boundary fix for useSearchParams. Includes summary, actions taken, validation, and next steps.
@syed-reza98 syed-reza98 marked this pull request as ready for review August 20, 2025 03:19
Copilot AI review requested due to automatic review settings August 20, 2025 03:19
@syed-reza98 syed-reza98 merged commit 2a510b3 into main Aug 20, 2025
3 checks passed
Copy link
Copy Markdown
Contributor

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 implements a comprehensive set of production deployment configurations and email system improvements for the Sharothee Wedding website. The changes focus on preparing the application for production deployment on Hostinger VPS with proper configuration management and switching from Resend to Gmail-based email service.

  • Production deployment configurations including Next.js config, PM2 ecosystem, and environment files
  • Migration from Resend email service to Gmail with Nodemailer for better reliability
  • UI/UX improvements including route loading indicators, form enhancements, and accessibility fixes

Reviewed Changes

Copilot reviewed 39 out of 45 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
production_configs/* Complete production deployment setup with Next.js config, PM2 ecosystem, and environment templates
client/src/lib/email.ts Migration from Resend to Gmail/Nodemailer email service with improved error handling
client/src/app/api/rsvp/form/route.ts New RSVP form API endpoint with email notifications
client/src/components/RouteLoader.tsx New route transition progress indicator component
client/src/app/layout.tsx Added Suspense wrapper for route loader to fix Next.js build errors
client/src/app/admin/login/page.tsx Wrapped useSearchParams usage in Suspense to resolve build issues
client/package.json Updated dependencies replacing Resend with Nodemailer
Comments suppressed due to low confidence (1)

production_configs/.env.production:1

  • Production environment file contains real credentials and should not be committed to version control. These sensitive values should be managed through secure environment variable injection or secrets management.
# Database


const nextConfig: NextConfig = {
basePath: process.env.NODE_ENV === 'production' ? '' : '',
assetPrefix: process.env.NODE_ENV === 'production' ? '' : '',
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

These conditional assignments are redundant since both production and development environments are set to empty strings. Consider removing the ternary operators and using empty strings directly, or remove these properties entirely if they're not needed.

Suggested change
assetPrefix: process.env.NODE_ENV === 'production' ? '' : '',
basePath: '',
assetPrefix: '',

Copilot uses AI. Check for mistakes.
ignoreDuringBuilds: true,
},
typescript: {
ignoreBuildErrors: true,
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

Ignoring ESLint and TypeScript errors during builds in production is risky as it can hide important issues. Consider enabling these checks to catch potential problems before deployment.

Suggested change
ignoreBuildErrors: true,
ignoreDuringBuilds: false,
},
typescript: {
ignoreBuildErrors: false,

Copilot uses AI. Check for mistakes.
}

return { success: true, data };
})) as SentMessageInfo
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

The type assertion as SentMessageInfo bypasses TypeScript's type checking. Consider using proper typing or handling the return type more safely to ensure type safety.

Copilot uses AI. Check for mistakes.
}

// Send notification to admin (ADMIN_EMAIL or fallback to GMAIL_USER)
const adminCandidates = [process.env.ADMIN_EMAIL, process.env.GMAIL_USER].filter(Boolean) as string[]
Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

The type assertion as string[] after filter(Boolean) assumes all values are strings, but TypeScript can't guarantee this. Consider using a more explicit type guard or validation.

Suggested change
const adminCandidates = [process.env.ADMIN_EMAIL, process.env.GMAIL_USER].filter(Boolean) as string[]
const adminCandidates = [process.env.ADMIN_EMAIL, process.env.GMAIL_USER].filter((v): v is string => typeof v === 'string' && v.length > 0)

Copilot uses AI. Check for mistakes.
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [pathname, searchParams?.toString()]);

Copy link

Copilot AI Aug 20, 2025

Choose a reason for hiding this comment

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

Disabling the exhaustive-deps rule can hide dependency issues. Consider adding the missing dependencies or restructuring the effect to avoid the need for this disable comment.

Suggested change
}, [pathname, searchParams]);

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