Skip to content

Deep fixes#36

Open
SammyG82 wants to merge 19 commits into
mainfrom
deep-fixes
Open

Deep fixes#36
SammyG82 wants to merge 19 commits into
mainfrom
deep-fixes

Conversation

@SammyG82

@SammyG82 SammyG82 commented May 8, 2026

Copy link
Copy Markdown
Contributor

No description provided.

SammyG82 added 19 commits May 8, 2026 04:01
- Remove unnecessary "use client" from Hero, DigitGroup, BenefitsCard, PricingCard
- Replace JS hover shadow manipulation with CSS custom properties and Tailwind hover classes
- Extract wave SVG into shared WaveDivider component, replacing 4 duplicate instances
- Extract TARGET_DATE into shared constants file, removing duplication across countdown components
- Fix w-screen → w-full in BenefitsSection to prevent horizontal overflow on pages with scrollbars
- Replace hardcoded fill="#0D1626" in SVGs with fill="var(--color-sen-blue)" design token
- Remove undefined font-editorial class from PricingSection
- Fix partners page to only render <a> when a website URL is present
- Replace array index keys with stable keys in FAQSection, DigitGroup, and PricingSection
- Update tsconfig target from ES2017 to ES2020
- Fix BenefitsSection heading layout — remove self-center, add w-full so md:text-left works correctly
- Fix PricingSection mobile padding — px-10 → px-4 sm:px-6 lg:px-10
- Fix useCountdown hydration flash — initialise state with real value instead of null
- Fix remaining array index keys — schedule carousel, PricingCard features, SpeakerCard accomplishments
- Add security headers to next.config.ts — X-Content-Type-Options, X-Frame-Options, Referrer-Policy, HSTS
- Fix eslint script — add app path argument so it actually lints the codebase
- Move vercel CLI from dependencies to devDependencies
- Add not-found.tsx — branded 404 page with Header, Footer, and link home
- Add error.tsx — branded error boundary with try-again and go-home actions
- Add sitemap.ts — generates /sitemap.xml for public routes (/, /speakers, /schedule, /partners, /tickets/select)
- Add robots.ts — generates /robots.txt, disallows ticket flow and API routes, links to sitemap
- Deleted about_conference_speaker.png and sen-picture-4.jpg
- Neither file was referenced anywhere in the codebase
- Escaped apostrophes and quotes in JSX text across AboutConferenceSection, BenefitsSection, Hero, FAQSection, and not-found
- Resolves all 12 react/no-unescaped-entities errors; lint now passes with 0 errors
- Add rel="noopener noreferrer" to external footer links (Instagram, LinkedIn, website)
- Add suppressHydrationWarning to countdown spans to fix intermittent hydration errors
- Add aria-expanded, aria-hidden to FAQItem button and arrow for screen readers
- Add aria-hidden to PricingCard bullet points (redundant with ul semantics)
- Add aria-label="5 out of 5 stars" to SocialProof star rating containers
- Add pricing-general and pricing-vip color tokens to globals.css; replace raw hex in PricingSection
- Simplify error.tsx type signature to match what the component actually uses
- Trim sitemap to only ready routes; use static lastModified date
- Refactor SocialProof carousel map to remove unnecessary IIFE
- Inline Landing.tsx contents directly into app/page.tsx
- Remove Landing.tsx wrapper — page.tsx is the single source for the landing route
- bg-[#D0D0D0] and bg-[#8FA4C5] restored for General and VIP cards
- Tailwind cannot statically scan class names passed dynamically as props,
  so token-based utilities were silently dropped from the generated CSS
- Removed unused pricing color tokens from globals.css
- Bare aria-hidden is equivalent but explicit string value is correct HTML form
- Replace <img> with next/image across Header, Footer, Hero, BenefitsCard, and maintenance page; use display-size dimensions for correct srcset hints
- Add --color-sen-muted token to globals.css; replace raw hex values in SocialProof and maintenance page with design tokens
- Convert nav dropdown <div> to <nav> and page root <div> to <main> for semantic HTML
- Add focus rings to all interactive elements (error page, not-found, maintenance, social icons, schedule arrows)
- Fix copy: "entrepreneur who want" → "who wants" in AboutConferenceSection
- Replace schedule page placeholder text with formatted TARGET_DATE
- Remove lastModified: new Date() from sitemap; add dev warning for missing NEXT_PUBLIC_BASE_URL
- Add error prop to Next.js error boundary signature in error.tsx
- Add metadata export to not-found page
- Add type="button" to FAQItem toggle and error page reset button
- Wrap decorative arrow in aria-hidden span in RegisterButton
- Fix SpeakerCard accomplishment list keys; add aria-hidden to decorative SVGs in social links
- Fix duplicate title-based keys in schedule page carousel and dot indicators
- Mark decorative arrow characters as aria-hidden in AboutConferenceSection
- Add aria-controls/id pair to FAQ accordion for proper screen reader association
- Use speaker name in social link aria-labels on SpeakerCard
- Set alt="" on decorative hero background image
- Add priority to above-fold header logo image
- Render reviewer name on social proof testimonial cards
- Header: close nav dropdown on outside click via mousedown listener
- SocialProof: pause marquee animation on hover
- layout: add OpenGraph, Twitter card, and metadataBase metadata
- BottomCountdownSection: remove redundant null-coalescing on countdown values
- schedule: fix next-button disabled state when schedule is empty
- Add aria-hidden to decorative WaveDivider SVG
- Add role="img" to star rating group in SocialProof
- Add focus-visible styles to Header title link, FAQItem accordion button, and AboutConferenceSection CTA links
- Add focus:ring-offset-sen-blue to RegisterButton for correct focus ring contrast on dark backgrounds
- Add loading="lazy" and decoding="async" to below-fold building image
- Add metadata export to speakers page
- Remove unused error prop type from error boundary
- Add focus-visible indicators to all interactive elements (Footer nav links, Header dropdown links, RegisterButton, error/not-found page buttons) that were missing them
- Switch all focus:ring-* to focus-visible:ring-* so rings only appear on keyboard focus, not mouse click
- Add focus:outline-none to Header hamburger button for consistency
- Use inset outline-offset on Header dropdown links to avoid clipping by overflow-hidden
- Add aria-hidden="true" to all decorative SVGs in Footer and ScheduleCard location pin
- Add min-w-0 to Header title wrapper so truncate works correctly in flexbox on narrow screens
- Add aria-live="polite" region to schedule page to announce active slide changes to screen readers
- Change aria-current to aria-pressed on schedule carousel dot buttons (correct ARIA semantics for toggle state)
- Add overflow-y-auto to ScheduleCard back face to handle long descriptions
- Upgrade Twitter card to summary_large_image with explicit image URL
- Simplify SocialProof carousel key from quote-slice+index to index
- Fix googleapis indentation in package.json
- Fix SocialProof carousel fade overlays (bg-gradient-to-* → bg-linear-to-* for Tailwind v4)
- Add Content-Security-Policy header covering Stripe, self-hosted fonts, and API routes
- Correct OG image dimensions from 448×127 to 914×258 (actual file size)
- Fix sitemap and robots to fall back to VERCEL_URL when NEXT_PUBLIC_BASE_URL is unset
- Fix schedule carousel prev button not disabled when schedule is empty
- Use event.startTime as carousel key to avoid duplicate placeholder titles
- Add hex fallback to WaveDivider SVG CSS custom property
- Check NEXT_PUBLIC_BASE_URL first before falling back to VERCEL_URL
- Consistent with how sitemap.ts resolves the base URL
- Prevents OG image URLs pointing to .vercel.app subdomain on custom domain deployments
- Fix focus:ring → focus-visible:ring on maintenance page link
- Fix robots.ts disallow /tickets/corporate/ → /tickets/corporate (trailing slash excluded the page itself)
- Fix schedule carousel key to use composite startTime+index (guards against parallel sessions)
- Optimise Header useEffect to only register document listeners while menu is open
- Add error logging to error boundary (console.error on mount)
- Add whitespace-nowrap to footer nav links to prevent wrapping at md breakpoint
- Extract ROUTES constant (constants/navigation.ts) as single source of truth for all nav hrefs; update Header, Footer, and AboutConferenceSection to use it
- Extract getBaseUrl utility (lib/utils.ts) and use in layout, robots, and sitemap instead of repeating the env-var fallback chain
- Extract useFlipCardHover hook (hooks/useFlipCardHover.ts) shared by SpeakerCard and ScheduleCard; adds WebkitTransformStyle for Safari
- Add PageLayout component to remove repeated Header/Footer/main boilerplate from not-found, partners, speakers, and schedule pages
- Extract ScheduleCarousel into its own client component so schedule/page.tsx can be a server component; adds isAnimating guard to prevent overlapping transitions
- Add title template to root layout so pages only need a short title; update all page metadata to match
- Add canonical URL to home page, noindex metadata to maintenance page
- Wrap FlipDigit in memo and fix dependency array ([value] only) to avoid redundant re-renders every second
- Add sizes prop to BenefitsCard Image fill
- Add role="timer" to top countdown span, motion-reduce pause to social proof marquee
- Use semantic address element for venue address in AboutConferenceSection
- Standardise focus rings to ring/ring-offset pattern across Header, Footer, partners, and schedule components
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.

1 participant