Skip to content

Conversation

@mirmirmirr
Copy link
Member

This pull request introduces several significant updates across the codebase, focusing on adding new features, improving user interface components, and cleaning up unused code. The most notable changes include the addition of new scheduling and event-related components, enhancements to animations and styles, and the removal of unused utilities.

New Features and Components:

  • Automated Code Formatting Workflow: Added a GitHub Actions workflow (.github/workflows/formatting.yml) to automatically format code using Prettier on pull requests. This ensures consistent code style across the repository.
  • Event Scheduling Pages: Implemented dynamic and interactive pages for scheduling availability (app/schedule/availability/page.tsx) and viewing results (app/schedule/results/page.tsx). These pages include features like timezone selection, attendee management, and event details. [1] [2]
  • Reusable UI Components:
    • CopyToast: A component for copying event links to the clipboard with a toast notification.
    • EventInfoDrawer: A component to display event details in a sliding drawer, supporting both desktop and mobile views.

UI and Styling Enhancements:

  • Animations and Transitions: Added new CSS animations (hide, slideIn, swipeOut) and updated existing ones for smoother transitions in app/globals.css.
  • Improved Layouts: Updated the layout for the schedule pages to use a more flexible and responsive design (app/schedule/layout.tsx).

Code Cleanup and Refactoring:

  • Removed Unused Hook: Deleted the useDarkMode hook from app/_utils/use-theme.tsx, as it was no longer in use.
  • Exported Utility Function: Made the formatLabel function reusable by exporting it from app/_utils/timezone-file-generator.tsx.
  • Refactored ScheduleGrid Component: Enhanced the ScheduleGrid component to support additional props like attendees, mode, and hoveredSlot, improving its versatility. [1] [2] [3]
Screenshot 2025-08-02 at 1 50 58 PM Screenshot 2025-08-02 at 1 52 56 PM Screenshot 2025-08-02 at 1 52 16 PM Screenshot 2025-08-02 at 1 53 15 PM

@mirmirmirr mirmirmirr self-assigned this Aug 2, 2025
Copy link
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 pull request introduces a comprehensive schedule preview feature, transforming the application from basic skeleton pages to fully functional scheduling interfaces. The changes focus on creating interactive event scheduling capabilities with support for multiple viewing modes, timezone management, and attendee collaboration.

  • Implements dynamic scheduling pages for both availability input and results viewing
  • Adds reusable UI components including toast notifications, event information drawers, and enhanced schedule grids
  • Introduces automated code formatting workflow and removes unused utilities

Reviewed Changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
package.json Adds Radix UI Toast dependency for notification functionality
app/ui/components/schedule/time-block.tsx Enhanced with multi-mode support (paint/view/preview) and hover interactions
app/ui/components/schedule/schedule-grid.tsx Refactored for attendee support, multiple modes, and improved layout
app/ui/components/event-info-drawer.tsx New component for displaying event details in mobile-responsive drawer
app/ui/components/copy-toast.tsx New component for copying event links with toast notifications
app/schedule/results/page.tsx Complete results page implementation with attendee management
app/schedule/layout.tsx Simplified layout for flexible content display
app/schedule/availability/page.tsx Complete availability input page with timezone selection
app/globals.css Added new CSS animations for toast and drawer interactions
app/_utils/use-theme.tsx Removed unused dark mode hook
app/_utils/timezone-file-generator.tsx Exported formatLabel function for reuse
.github/workflows/formatting.yml New GitHub Actions workflow for automated code formatting

Copy link
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

Copilot reviewed 49 out of 52 changed files in this pull request and generated 5 comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

</button>
</div>

<div className="grid w-full grid-cols-1 gap-y-2 md:grow md:grid-cols-[200px_repeat(10,minmax(0,1fr))] md:grid-rows-[auto_repeat(15,minmax(0,1fr))] md:gap-x-4 md:gap-y-1">
Copy link

Copilot AI Oct 8, 2025

Choose a reason for hiding this comment

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

[nitpick] The hardcoded grid template with 10 columns and 200px first column creates a magic number. Consider defining these values as constants for better maintainability.

Copilot uses AI. Check for mistakes.
@mirmirmirr
Copy link
Member Author

Availability Management

  • Added availabilityReducer, useAvailability hook, and supporting utilities for managing user display name, timezone, and selectable time slots, using AvailabilitySet type.

Event Scheduling System

  • Implemented EventInfoReducer, EventRangeReducer, and useEventInfo hook, providing structured state management for event details, including title, custom code, event type, timezone, duration, and date/weekday ranges.
  • Defined core scheduling types (EventInformation, EventRange, SpecificDateRange, WeekdayRange, WeekdayMap, and DaySlot) to serve as the single source of truth for event data and UI slot rendering.

Utility Functions for Time Slot Generation

  • Added expandEventRange and supporting functions to generate concrete lists of time slots for both specific date ranges and recurring weekday events, respecting user timezone and event parameters.
  • Introduced useGenerateTimeSlots hook to efficiently compute and group time slots for UI display, including error handling and support for overnight ranges.

@jzgom067
Copy link
Member

jzgom067 commented Oct 8, 2025

2025-10-08_17-21-00 There's a big white bar on the availability page (and results page) when using dark mode. I assuming you just forgot to add a dark mode color.

Copy link
Member

@jzgom067 jzgom067 left a comment

Choose a reason for hiding this comment

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

🫡

@jzgom067 jzgom067 merged commit 8dd5292 into main-preview Oct 8, 2025
1 check passed
@jzgom067 jzgom067 deleted the schedule-preview branch October 14, 2025 16:14
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.

4 participants