Skip to content

Reschedule sessions in the New session dialog - #526

Merged
jhodapp merged 29 commits into
mainfrom
feat/move-session-dialog
Nov 4, 2026
Merged

jhodapp merged 29 commits into
mainfrom
feat/move-session-dialog

Conversation

@jhodapp

@jhodapp jhodapp commented Nov 3, 2026

Copy link
Copy Markdown
Member

Description

Fifth of six PRs for the stepped "New session" dialog. Reschedule now opens the same dialog in move mode, on a dashboard row, a bucket row or the Upcoming card. The old "Update Coaching Session" dialog and form are deleted. Stacked on #525.

Changes

  • Move mode:
    • The title is "Reschedule session". The rail shows the person and "Currently Tue, Nov 3, 1:00 PM".
    • There's no Who step. The dialog starts on the session's date, time and length.
    • The session being moved doesn't count as busy against itself.
    • "Pick a new date or time." shows until something changes, then the confirm is "Reschedule session".
    • A clash adds Resolve overlap, as in schedule mode.
  • Saving: a single update of the same session, so its notes and topics stay. A series session moves on its own; "This and following" waits for the backend endpoint (PR 7). The toast reads "Rescheduled · Caleb to Thursday, November 5, 1:00 PM".
  • Store: openMoveSession(session), ready for the session page header and Progress rows later.
  • Shared code: both modes use one submit path. Only the first write, the error wording and the success message differ by mode.
  • Removed: CoachingSessionDialog, CoachingSessionForm, sessionUpdatedMessage and their tests. The error cases not covered elsewhere were ported to dialog tests.
  • Docs: the dialog test plan gains Part G (move mode); design-system plan Case E5 updated.

Screenshots / Videos Showing UI Changes (if applicable)

Useful: Reschedule from a row before and after picking a new day, and a move that clashes with another session.

Testing Strategy

  • Specs written first for move mode and the store. All 2705 tests pass; tsc and lint are clean.
  • Real browser against a local backend: Reschedule on the Upcoming card opened move mode with the right person, current time and length. Moving to another day sent one update of the same session, showed the toast, and moved the row without a reload.
  • Manual: docs/test-plans/new_session_dialog_manual_testing.md Part G.

Concerns

  • "Edit series" still uses the series update that re-creates future sessions. PR 7 replaces it once the backend endpoint lands.

@jhodapp jhodapp changed the title feat(scheduling): reschedule sessions in the New session dialog Reschedule sessions in the New session dialog Nov 3, 2026
@jhodapp jhodapp added enhancement Improves existing functionality or feature feature work Specifically implementing a new feature labels Nov 3, 2026
@jhodapp jhodapp added this to the 1.0.0-beta4 milestone Nov 3, 2026
@jhodapp
jhodapp force-pushed the feat/move-session-dialog branch from 7e235f6 to 1c3e844 Compare November 3, 2026 21:33
@jhodapp
jhodapp marked this pull request as ready for review November 3, 2026 21:50
@jhodapp
jhodapp force-pushed the feat/move-session-dialog branch from d81c5ac to a929d65 Compare November 3, 2026 22:41
@greptile-apps

greptile-apps Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge, with no actionable issues found.

Summary

Reschedule now opens the shared New session dialog in move mode.

  • Dashboard rescheduling now opens the shared stepped session dialog.
  • Step arrows stay visible and disable at the ends of the dialog.
  • Duration controls step out-of-range values to the nearest bound first.

No actionable issues were found. This assessment includes caller checks in PR #527. No runtime or browser verification was performed.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Dashboard or Upcoming Reschedule] --> B[openMoveSession]
  B --> C[Shared dialog starts on When]
  C --> D[Exclude current session from busy times]
  D --> E{Overlap?}
  E -->|Yes| F[Resolve overlap]
  E -->|No| G[Confirm move]
  F --> G
  G --> H[Update the same session]
  H --> I[Move other session if chosen]
  I --> J[Refresh session views and close]
Loading

Reviews (1) · Last reviewed commit: "fix(scheduling): step a length outside t..." · Reviewed by Greptile

greptile-apps[bot]
greptile-apps Bot previously approved these changes Nov 3, 2026
@jhodapp
jhodapp force-pushed the feat/move-session-dialog branch from a929d65 to 87f7492 Compare November 3, 2026 23:28
@jhodapp
jhodapp force-pushed the feat/schedule-session-dialog branch from 9db43e5 to 2ed2e05 Compare November 3, 2026 23:28
@greptile-apps
greptile-apps Bot dismissed their stale review November 3, 2026 23:28

Dismissed because a newer commit was pushed; Greptile will re-review the current head.

…est bound

One − on a 240-minute session gave 175, and one + on a 10-minute session gave 20.
…s and following

A series repeating every 3 weeks or 2 months is offered as its own Repeat choice
and its interval is sent. The confirm waits while the series loads, and a series
that fails to load falls back to this session only.
…akpoint

Swapping the desktop and mobile components remounted the body, so resizing or
rotating a tablet cleared a search or a half-typed value.
…verlap, or a loading series rule

- The confirm waits while your sessions load and says so if they can't.
- A time over several sessions can only keep them all; moving one wouldn't clear it.
- Repeat is locked until the series' rule arrives, so early edits can't drop it.
@jhodapp
jhodapp force-pushed the feat/schedule-session-dialog branch from 2ed2e05 to 473b052 Compare November 4, 2026 04:53
@jhodapp
jhodapp force-pushed the feat/move-session-dialog branch from 87f7492 to 1ea08c8 Compare November 4, 2026 04:53
Base automatically changed from feat/schedule-session-dialog to main November 4, 2026 14:15
@jhodapp
jhodapp merged commit 798f878 into main Nov 4, 2026
11 checks passed
@jhodapp
jhodapp deleted the feat/move-session-dialog branch November 4, 2026 16:42
@github-project-automation github-project-automation Bot moved this from Review to ✅ Done in Refactor Coaching Platform Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Improves existing functionality or feature feature work Specifically implementing a new feature

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

1 participant