Skip to content

Toast#386

Merged
shp7724 merged 5 commits intomasterfrom
toast
Nov 7, 2025
Merged

Toast#386
shp7724 merged 5 commits intomasterfrom
toast

Conversation

@shp7724
Copy link
Contributor

@shp7724 shp7724 commented Nov 7, 2025

No description provided.

@shp7724 shp7724 requested a review from a team as a code owner November 7, 2025 13:51
Copilot AI review requested due to automatic review settings November 7, 2025 13:51
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 PR introduces a toast notification system to replace direct router-based navigation with a message-passing architecture using typed notification messages. The implementation adds SwiftUtility and DependenciesUtility modules to support scoped task subscriptions and type-safe NotificationCenter messaging.

Key changes:

  • Added toast UI component with automatic dismissal and optional action buttons
  • Replaced router dependencies with NotificationCenter-based message passing for navigation coordination
  • Implemented scoped task subscriptions that automatically cancel when owner is deallocated

Reviewed Changes

Copilot reviewed 31 out of 31 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
ContentViewModel.swift Replaced TimetableRouter and LectureSearchRouter dependencies with notificationCenter subscription to NavigateToVacancyMessage
ContentViewModel+URLScheme.swift Converted URL scheme handlers to post typed notification messages instead of directly manipulating router state
ContentView.swift Added .overlayToast() modifier to enable toast presentation throughout the app
Project.swift Added SwiftUtility and DependenciesUtility module dependencies to multiple targets
TaskSubscribeTests.swift Added comprehensive test coverage for scoped task lifecycle and cancellation behavior
ScopedTask.swift Implemented Task.scoped extension for automatic task cancellation when owner is deallocated
NotificationCenter+TypedMessage.swift Created type-safe wrapper for NotificationCenter with TypedMessage protocol
ToastView.swift Implemented toast item view with button support and preview examples
ToastModel.swift Defined Toast and ToastButton data models with Sendable conformance
ToastContainer.swift Created view model for managing toast presentation queue and auto-dismissal
Toast+Modifier.swift Added overlayToast() view modifier and environment key for toast presentation
AnimatableTabView.swift Updated to sync selectedTab binding with tab controller selection
NotificationMessage.swift (TimetableInterface) Defined navigation message types for timetable-related deeplinks
TimetableScene.swift Removed LectureSearchRouter dependency from initialization
LectureEditDetailScene.swift Added presentToast environment value for bookmark/vacancy notifications
LectureEditDetailScene+Toolbar.swift Implemented toast notifications when toggling bookmark/vacancy features
ExpandableLectureCell.swift Added toast notifications with navigation actions for bookmark/vacancy operations
TimetableViewModel.swift Replaced router dependency with notification subscriptions for lecture navigation
LectureSearchViewModel.swift Removed LectureSearchRouter dependency, replaced with NavigateToBookmarkMessage subscription
LectureEditDetailViewModel.swift Added SharedUIComponents import for Toast types
Localizable.strings (en/Base) Added localized strings for toast messages
ThemeViewModel.swift Migrated from NotificationCenter.default to typed message subscription
ThemeDetailViewModel.swift Converted theme update notification to typed message
NotificationMessage.swift (Themes) Defined CustomThemeDidUpdateMessage type
SettingsScene.swift Made NavigationStack path bindable for programmatic navigation
SettingsViewModel.swift Added subscription to NavigateToVacancyMessage for navigation to vacancy settings
FriendsScene.swift Removed manual notification task subscription (moved to view model)
NotificationMessage.swift (Friends) Defined typed messages for Kakao friend requests and menu opening
FriendsViewModel.swift Added notification subscriptions for OpenFriendsMenuMessage and KakaoFriendRequestMessage
FriendsViewModel+KakaoRequest.swift Removed notification stream helper and extension documentation

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copilot AI review requested due to automatic review settings November 7, 2025 14:24
@shp7724 shp7724 merged commit db71581 into master Nov 7, 2025
1 check passed
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