-
Notifications
You must be signed in to change notification settings - Fork 14
Fixed Founder's Club references #130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,34 +1,34 @@ | ||||||
| import { formatInTimeZone } from 'date-fns-tz'; | ||||||
| import { CalendarDays, Clock, Info, MapPin, Tag, User } from 'lucide-react'; | ||||||
| import type { Metadata, ResolvingMetadata } from 'next'; | ||||||
| import Image from 'next/image'; | ||||||
| import Link from 'next/link'; | ||||||
| import { Badge } from '@/components/ui/badge'; | ||||||
| import { Button } from '@/components/ui/button'; | ||||||
| import { formatInTimeZone } from "date-fns-tz"; | ||||||
| import { CalendarDays, Clock, Info, MapPin, Tag, User } from "lucide-react"; | ||||||
| import type { Metadata, ResolvingMetadata } from "next"; | ||||||
| import Image from "next/image"; | ||||||
| import Link from "next/link"; | ||||||
| import { Badge } from "@/components/ui/badge"; | ||||||
| import { Button } from "@/components/ui/button"; | ||||||
| import { | ||||||
| Card, | ||||||
| CardContent, | ||||||
| CardFooter, | ||||||
| CardHeader, | ||||||
| CardTitle, | ||||||
| } from '@/components/ui/card'; | ||||||
| import { CustomMDX } from '@/mdx-components'; | ||||||
| import { createClient } from '@/utils/supabase/server'; | ||||||
| import type { eventsInsertType } from '../../../../../../schema.zod'; | ||||||
| } from "@/components/ui/card"; | ||||||
| import { CustomMDX } from "@/mdx-components"; | ||||||
| import { createClient } from "@/utils/supabase/server"; | ||||||
| import type { eventsInsertType } from "../../../../../../schema.zod"; | ||||||
|
|
||||||
| // import { enGB } from 'date-fns/locale/'; | ||||||
|
|
||||||
| async function getEventsBySlug({ slug }: { slug: string }) { | ||||||
| const supabase = await createClient(); | ||||||
|
|
||||||
| const { data: events, error } = await supabase | ||||||
| .from('events') | ||||||
| .select('*') | ||||||
| .eq('slug', slug) | ||||||
| .from("events") | ||||||
| .select("*") | ||||||
| .eq("slug", slug) | ||||||
| .single(); | ||||||
|
|
||||||
| if (error || !events) { | ||||||
| console.error('Error fetching events:', error); | ||||||
| console.error("Error fetching events:", error); | ||||||
| return null; | ||||||
| } | ||||||
|
|
||||||
|
|
@@ -38,23 +38,23 @@ type Params = Promise<{ slug: string }>; | |||||
|
|
||||||
| export async function generateMetadata( | ||||||
| { params }: { params: Params }, | ||||||
| parent: ResolvingMetadata | ||||||
| parent: ResolvingMetadata, | ||||||
| ): Promise<Metadata> { | ||||||
| const event = await getEventsBySlug({ slug: (await params).slug }); | ||||||
|
|
||||||
| const previousImages = (await parent).openGraph?.images || []; | ||||||
|
|
||||||
| if (!event) { | ||||||
| return { | ||||||
| title: 'Event Not Found - Upcoming Events | Founders', | ||||||
| description: 'Check out our latest events and workshops', | ||||||
| title: "Event Not Found - Upcoming Events | Founders", | ||||||
| description: "Check out our latest events and workshops", | ||||||
| }; | ||||||
| } | ||||||
|
|
||||||
| const eventDate = new Date(event.start_date).toLocaleDateString('en-US', { | ||||||
| month: 'long', | ||||||
| day: 'numeric', | ||||||
| year: 'numeric', | ||||||
| const eventDate = new Date(event.start_date).toLocaleDateString("en-US", { | ||||||
| month: "long", | ||||||
| day: "numeric", | ||||||
| year: "numeric", | ||||||
| }); | ||||||
|
|
||||||
| return { | ||||||
|
|
@@ -63,18 +63,18 @@ export async function generateMetadata( | |||||
| openGraph: { | ||||||
| title: event.title, | ||||||
| description: event.description, | ||||||
| type: 'website', | ||||||
| type: "website", | ||||||
| images: [event.banner_image, ...previousImages], | ||||||
| }, | ||||||
| twitter: { | ||||||
| card: 'summary_large_image', | ||||||
| card: "summary_large_image", | ||||||
| title: event.title, | ||||||
| description: event.description, | ||||||
| images: [event.banner_image], | ||||||
| }, | ||||||
| other: { | ||||||
| 'event:type': event.event_type || 'Online', | ||||||
| 'event:date': eventDate, | ||||||
| "event:type": event.event_type || "Online", | ||||||
| "event:date": eventDate, | ||||||
| }, | ||||||
| }; | ||||||
| } | ||||||
|
|
@@ -134,7 +134,7 @@ export default async function EventRegistrationSection({ | |||||
| variant="outline" | ||||||
| className="w-full sm:w-auto" | ||||||
| > | ||||||
| <Link href={event.more_info || '#'}> | ||||||
| <Link href={event.more_info || "#"}> | ||||||
| {event.more_info_text} | ||||||
| </Link> | ||||||
| </Button> | ||||||
|
|
@@ -143,7 +143,7 @@ export default async function EventRegistrationSection({ | |||||
| </div> | ||||||
| <div className="mx-auto max-w-screen-xl rounded-lg bg-muted"> | ||||||
| <Image | ||||||
| src={event.banner_image || '/placeholder.svg'} | ||||||
| src={event.banner_image || "/placeholder.svg"} | ||||||
| alt={event.title} | ||||||
| width={1200} | ||||||
| height={600} | ||||||
|
|
@@ -164,12 +164,12 @@ export default async function EventRegistrationSection({ | |||||
| <div className="flex items-center gap-4"> | ||||||
| <Image | ||||||
| src="/FC-logo1.png" | ||||||
| alt="Founder's Club" | ||||||
| alt="Founders Club" | ||||||
| width={48} | ||||||
| height={48} | ||||||
| className="rounded-full" | ||||||
| /> | ||||||
| <span>Founder's Club</span> | ||||||
| <span>Founders Club</span> | ||||||
| </div> | ||||||
| } | ||||||
| /> | ||||||
|
|
@@ -178,16 +178,16 @@ export default async function EventRegistrationSection({ | |||||
| title="Starting on" | ||||||
| content={formatInTimeZone( | ||||||
| new Date(event.start_date), | ||||||
| 'Asia/Kolkata', | ||||||
| 'dd MMMM yyyy, hh:mm a zzz' | ||||||
| "Asia/Kolkata", | ||||||
| "dd MMMM yyyy, hh:mm a zzz", | ||||||
| )} | ||||||
| /> | ||||||
| <EventDetailCard | ||||||
| icon={<Tag className="h-5 w-5" />} | ||||||
| title="Tags" | ||||||
| content={ | ||||||
| <div className="flex flex-wrap gap-2"> | ||||||
| {event.tags.map(tag => ( | ||||||
| {event.tags.map((tag) => ( | ||||||
|
||||||
| {event.tags.map((tag) => ( | |
| {event.tags.map(tag => ( |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,18 +1,18 @@ | ||||||
| import { formatInTimeZone } from 'date-fns-tz'; | ||||||
| import { ArrowUpRight, CalendarX2 } from 'lucide-react'; | ||||||
| import Image from 'next/image'; | ||||||
| import Link from 'next/link'; | ||||||
| import { Badge } from '@/components/ui/badge'; | ||||||
| import { Button } from '@/components/ui/button'; | ||||||
| import { formatInTimeZone } from "date-fns-tz"; | ||||||
| import { ArrowUpRight, CalendarX2 } from "lucide-react"; | ||||||
| import Image from "next/image"; | ||||||
| import Link from "next/link"; | ||||||
| import { Badge } from "@/components/ui/badge"; | ||||||
| import { Button } from "@/components/ui/button"; | ||||||
|
Comment on lines
+1
to
+6
|
||||||
| import { | ||||||
| Card, | ||||||
| CardContent, | ||||||
| CardDescription, | ||||||
| CardHeader, | ||||||
| CardTitle, | ||||||
| } from '@/components/ui/card'; | ||||||
| import type { eventsInsertType } from '../../schema.zod'; | ||||||
| import { GetBlurImage } from './blur-image'; | ||||||
| } from "@/components/ui/card"; | ||||||
| import type { eventsInsertType } from "../../schema.zod"; | ||||||
| import { GetBlurImage } from "./blur-image"; | ||||||
|
|
||||||
| export function FeaturedPost({ event }: { event: eventsInsertType }) { | ||||||
| // If there's no event OR the event has ended, show a friendly empty state | ||||||
|
|
@@ -47,7 +47,7 @@ export function FeaturedPost({ event }: { event: eventsInsertType }) { | |||||
| </div> | ||||||
| ); | ||||||
| } | ||||||
| const tags = event.tags.map(tag => ( | ||||||
| const tags = event.tags.map((tag) => ( | ||||||
|
||||||
| const tags = event.tags.map((tag) => ( | |
| const tags = event.tags.map(tag => ( |
Copilot
AI
Feb 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section still renders the label as "Founder’s Club" while other updated strings in this component use "Founders Club". Update this remaining UI string so the branding is consistent across breakpoints.
| <span className="text-xs font-medium">Founder's Club</span> | |
| <span className="text-xs font-medium">Founders Club</span> |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -30,7 +30,7 @@ Deno.serve(async req => { | |||||
|
|
||||||
| // Send email using Resend | ||||||
| const senderEmailData = { | ||||||
| from: "The Founder's Club <no-reply@thefoundersclub.tech>", | ||||||
| from: "The Founders Club <no-reply@thefoundersclub.tech>", | ||||||
| to: [record.email], | ||||||
| subject: 'Your Contact Request has been Submitted', | ||||||
| html: generateHTML(record), | ||||||
|
Comment on lines
32
to
36
|
||||||
|
|
@@ -44,10 +44,10 @@ Deno.serve(async req => { | |||||
| ); | ||||||
|
|
||||||
| const supportEmailData = { | ||||||
| from: "The Founder's Club <no-reply@thefoundersclub.tech>", | ||||||
| from: "The Founders Club <no-reply@thefoundersclub.tech>", | ||||||
| to: ['support@thefoundersclub.in'], | ||||||
|
Comment on lines
46
to
48
|
||||||
| subject: 'New Contact Request has been Submitted', | ||||||
| html: `Name: ${record.name}<br/>Email: ${record.email}<br/>Phone: ${record.phone}<br/>Subject: <strong>${record.subject}</strong><br/>Description: ${record.description}<br/><br/>The Founder's Club<br/>Directorate of Entrepeunership and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203 | ||||||
| html: `Name: ${record.name}<br/>Email: ${record.email}<br/>Phone: ${record.phone}<br/>Subject: <strong>${record.subject}</strong><br/>Description: ${record.description}<br/><br/>The Founders Club<br/>Directorate of Entrepeunership and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203 | ||||||
|
||||||
| html: `Name: ${record.name}<br/>Email: ${record.email}<br/>Phone: ${record.phone}<br/>Subject: <strong>${record.subject}</strong><br/>Description: ${record.description}<br/><br/>The Founders Club<br/>Directorate of Entrepeunership and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203 | |
| html: `Name: ${record.name}<br/>Email: ${record.email}<br/>Phone: ${record.phone}<br/>Subject: <strong>${record.subject}</strong><br/>Description: ${record.description}<br/><br/>The Founders Club<br/>Directorate of Entrepreneurship and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203 |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -211,7 +211,7 @@ export const generateHTML = (record: SupabaseRecord) => { | |||||
| <tr> | ||||||
| <td class="pad" style="padding-left:38px;padding-right:38px;padding-top:10px;"> | ||||||
| <div style="color:#000000;font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;line-height:150%;;mso-line-height-alt:24px;"> | ||||||
| <p style="margin: 0;"><span style="word-break: break-word; color: #4b4949;">Hello ${record.name},</span><br><br><span style="word-break: break-word; color: #4b4949;">Thank you for reaching out to the Founder's Club! We have successfully received your contact request and will be shortly reaching out to you.<br/><br/>The Founder's Club<br/>Directorate of Entrepeunership and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203</span></p> | ||||||
| <p style="margin: 0;"><span style="word-break: break-word; color: #4b4949;">Hello ${record.name},</span><br><br><span style="word-break: break-word; color: #4b4949;">Thank you for reaching out to the Founders Club! We have successfully received your contact request and will be shortly reaching out to you.<br/><br/>The Founders Club<br/>Directorate of Entrepeunership and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203</span></p> | ||||||
|
||||||
| <p style="margin: 0;"><span style="word-break: break-word; color: #4b4949;">Hello ${record.name},</span><br><br><span style="word-break: break-word; color: #4b4949;">Thank you for reaching out to the Founders Club! We have successfully received your contact request and will be shortly reaching out to you.<br/><br/>The Founders Club<br/>Directorate of Entrepeunership and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203</span></p> | |
| <p style="margin: 0;"><span style="word-break: break-word; color: #4b4949;">Hello ${record.name},</span><br><br><span style="word-break: break-word; color: #4b4949;">Thank you for reaching out to the Founders Club! We have successfully received your contact request and will be shortly reaching out to you.<br/><br/>The Founders Club<br/>Directorate of Entrepreneurship and Innovation<br/>SRM Institute of Science and Technology<br/>Kattankulathur<br/>Tamil Nadu - 603203</span></p> |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -62,7 +62,7 @@ Deno.serve(async req => { | |||||
| } | ||||||
| // Send confirmation email to registrant | ||||||
| const registrantEmailData = { | ||||||
| from: "The Founder's Club <no-reply@thefoundersclub.tech>", | ||||||
| from: "The Founders Club <no-reply@thefoundersclub.tech>", | ||||||
|
||||||
| from: "The Founders Club <no-reply@thefoundersclub.tech>", | |
| from: 'The Founders Club <no-reply@thefoundersclub.tech>', |
Copilot
AI
Feb 26, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function only sends when is_approved === 'REJECTED', but the inline comment and email subject still say “confirmation”. That’s likely to confuse recipients and doesn’t match the rejection template content; update the subject (and comment) to indicate rejection.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file switches many literals/imports to double quotes, but the repo’s Biome config enforces single quotes (
javascript.formatter.quoteStyle: single). Please run the formatter or revert to single quotes to keep consistent styling and avoid churn.