Conversation
Add comprehensive unit tests and testing infrastructure for the project. Changes include: - Add many component and lib unit tests under __tests__/ for sections, UI Button, Navigation, Footer, Cloudinary and Cal.com utils, and generic utils. - Add jest.config.js and jest.setup.js with environment variable mocks, next-themes, next/image, matchMedia and IntersectionObserver mocks. - Add .github/copilot-instructions.md documentation for project conventions and testing workflow. - Update .gitignore to ignore /studio and update package.json/lockfile to include testing dependencies. Purpose: enable reliable component and utility testing, provide standardized Jest setup and mocks, and prepare the repo for CI test runs and coverage collection.
Add a complete Sanity Content Studio under studio/: includes package.json (and lockfile), tsconfig, .eslintrc, sanity config/CLI, schema types, sample data, import scripts, static assets, and README. Also update root .gitignore to stop excluding /studio so the new studio is tracked. This integrates the content editing environment into the repository for local development and content management.
Add Cloudinary → Sanity migration materials and core integration pieces: update .github/copilot-instructions.md with a detailed migration plan and AI prompts; add SANITY_MIGRATION_PROGRESS.md tracking progress; add lib/sanity.ts Sanity client and helpers; add landingPage schema at studio/src/schemaTypes/documents/landingPage.ts and export it from schema index; add comprehensive Jest tests for sanity utilities (__tests__/lib/sanity.test.ts) and update jest.setup.js environment mocks. Also update package.json/package-lock.json to include Sanity-related dependencies.
Replace Cloudinary with Sanity CMS across the project: update docs, utilities, components, and tests. Removed Cloudinary docs and helper (CLOUDINARY_INTEGRATION.md, CLOUDINARY_SETUP.md, QUICKSTART_CLOUDINARY.md, lib/cloudinary.ts and related tests). Added/updated Sanity integration (lib/sanity.ts and helpers), refactored components (HeroSection, DemoSection, Navigation, Footer, DemoSection tests), expanded test suite (many new __tests__ files), updated jest.setup.js, next.config.ts, package.json/lock, and SANITY_MIGRATION_PROGRESS.md to reflect completion. Also added prd.json and a logo video asset. Migration and test runs indicate Sanity integration is complete and Cloudinary references removed.
Add Sanity hero video asset and expand test coverage across the app.\n\n- HeroSection: set DEFAULT_HERO_VIDEO_ASSET to the uploaded Sanity file ref and handle video error state.\n- app/status: export StatusBadge for unit testing.\n- Tests: update HeroSection tests to assert video rendering, error handling, reduced-motion behavior; add StatusBadge tests; add Navigation tests for hash/non-hash and missing-element edge cases; add cal-config fallback-env tests.\n- .github/copilot-instructions.md & prd.json: update test/coverage metrics, add deployment and phase notes including Sanity asset and studio URLs.\n- studio/sanity.config.ts: set preview URL default and update studio title.\n- studio schemas & structure: remove emoji characters from titles/previews (contactPage, heroCarousel, siteSettings, structure) and adjust minor preview text.\n\nThese changes enable the real hero video from Sanity, improve branch coverage for several components, standardize studio text (no emojis), and record deployment/test results in project docs.
Introduce MobileAppShowcase and IoTDeviceSection components (framer-motion interactions, CSS 3D device model) and integrate them into the home page. Add UI primitives: parallax-section, scroll-reveal, status-badge, and a SmoothScrollProvider which is now wrapped around children in RootLayout. Add comprehensive tests for the new components and provider, plus mocks (styleMock) and small updates to existing layout/page/status tests. Extract StatusBadge to components/ui/status-badge and update the status page to consume it. Include CSS utilities for perspective and GPU-accelerated transforms, add Chamber.glb asset, and update project configuration (jest setup/config and package.json metadata and instructions).
Introduce a Three.js-based ChamberModel3D component and wire it into the IoT device section with lazy loading and a CSS fallback. Add unit tests and Jest mocks for @react-three/fiber and @react-three/drei, and update test config to transform three packages. Fix dev/build settings (add turbopack: {} to next.config.ts and use "next build --webpack" in package.json). Add iotDeviceModel file field to Sanity landingPage schema and update PRD metadata/tasks to reflect the 3D integration and test/build status.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Fetch and pass a Sanity-hosted 3D model URL to the IoT section and improve parallax/scrolling. Made Home an async server component to getLandingPageData and extract a file URL (graceful failure falls back to local model). Added getSanity3DModelUrl and iotDeviceModel projections/types in lib/sanity. ChamberModel3D now accepts a modelUrl prop (defaults to local /assets/Chamber.glb) and preloads the default; IoTDeviceSection accepts modelUrl and applies smoother parallax transforms (deviceScale, specsX). MobileAppShowcase parallax was refined (phoneScale, featuresX). Tests updated/mocked for Sanity and expanded to cover model URL edge cases, and prd.json updated with Phase 9 details.
Initialize prefersReducedMotion to false on both server and client to avoid a hydration mismatch, remove the typeof window SSR guard from the useState initializer, and set the real media query value inside useEffect after hydration. Also update prd.json: add a new phase (phase-10) with tasks T091–T094 documenting the HeroSection fix, model verification, test/build results, and remove the HeroSection SSR guard entry from remainingBranchGaps.
Add a client-side FAQ component (app/faq/faq-client.tsx) with built-in defaults, search and accordion behavior; convert app/faq/page.tsx to a server page that fetches Sanity data and renders the client component. Propagate LandingPageData through the app by fetching landingData in app/page.tsx and passing it (and modelUrl) into Navigation, HeroSection, FeaturesSection, MobileAppShowcase, IoTDeviceSection, DemoSection, DocumentationSection, BookingSection, SupportSection, DownloadSection and Footer. Update multiple components to accept optional data props and use CMS values with local fallbacks (Demo, Documentation, Download, Booking, Features, etc.). Update tests to use the new FAQ client, add cases for Sanity/null data, and enhance @sanity/image-url mocking (createImageUrlBuilder). These changes make the UI data-driven while preserving non-breaking defaults when CMS fetches fail.
Replace gradient backgrounds with solid colors across the site and harden component behavior, while expanding unit test coverage for Sanity-driven data. - UI: simplified CSS vars (globals.css) to single color tokens and switched .bg-hero/.bg-scope/.bg-download to background-color; updated component classes (tutorials, download, license, status, IoTDeviceSection) to use solid backgrounds instead of gradients; added crossOrigin="anonymous" to HeroSection video. - Components: removed gradient card on IoT device mock, updated Download CTA styling to a solid dark button with hover opacity, and adjusted status page warning fallback class. - Tests: significantly expanded tests to cover Sanity-provided data and edge cases (many component tests now import LandingPageData, include Sanity data scenarios, default-param rendering, and server/client FAQ tests with mocked getLandingPageData), plus mocks for sanity image helper. - Misc: updated .github/copilot-instructions.md test/coverage/build metadata. Files touched include globals.css, multiple app pages (download, documentation/tutorials, license, status), HeroSection/IoTDeviceSection, and many __tests__ files.
Introduce a client FloatingNav component and wire it into the RootLayout: fetch landing page data via getLandingPageDataCached (with graceful fallback) and render FloatingNav at the top of the page. Add unit tests for the layout, FloatingNav, and a mocked sanity image helper; update tests to handle async Server Component rendering and mock external dependencies. Extend lib/sanity LandingPageData types with floatingNav and brandPalette fields. Update Sanity landingPage schema (studio) to include floatingNav and brandPalette plus a number of field reorganizations and refinements. Add a design policy comment to globals.css and update prd.json with Phase 12 entries and updated next-steps prompt.
Revamps FloatingNav into a full-featured client component (framer-motion animations, scroll progress, theme toggle, accessible skip link, mobile drawer with focus/escape handling, smooth hash scrolling, default links/CTAs and active-link detection). Simplifies app/page by removing server-side Sanity fetches and Navigation rendering — page now renders sections with defaults and an accessible main id. Updates tests to reflect the new FloatingNav behavior and to remove server-side fetch mocks; adds comprehensive unit tests for FloatingNav. Adds showScrollProgress and showThemeToggle to Sanity types and studio schema.
Large refactor and feature update for the landing site: adds multiple AI agent / onboarding docs (AI_NEXT_STEPS_PROMPT*, NEXT_STEPS_AI_AGENT_GUIDE* and docs/FLOATING_NAV_STANDARD.md), implements UI changes across many components, and updates tests and build metadata. Highlights: - Refactored/updated core landing components (HeroSection, FeaturesSection, BookingSection, DownloadSection, SupportSection, FloatingNav, Footer, MobileAppShowcase, PageLayout, Status page and others) to align with the redesign and design-system rules. - Introduced new UI primitives and helpers: components/ui/skeleton.tsx and components/MiniCTA.tsx; updated components/ui/button.tsx and added ScrollReveal usage in sections. - Added a custom 404 at app/not-found.tsx and test coverage for it; removed the old Navigation component and its tests where applicable. - Extensive test updates: added and modified many tests under __tests__/ (component and app-level), plus updates to jest.setup.js. Tests adjusted to reflect new component APIs and behavior. - Styling and assets: updated app/globals.css (design tokens), and other cosmetic updates to enforce solid-color-only design rules. Package files updated (package.json, package-lock.json) and a new prd.v4.json added. This commit groups numerous functional and test-related changes to move the project toward the PRD redesign goals and to keep test/build green. Run full test/build cycles to validate integration.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.