@@ -136,10 +136,49 @@ private async void CheckUpdate_Click(object? sender, RoutedEventArgs e)
136136
137137 private async void UpdateLink_Click ( object ? sender , PointerPressedEventArgs e )
138138 {
139- // Step 3: User clicks "Restart now" after download
139+ // Step 3: User clicks "Restart now" after download — confirm first
140140 if ( _updateDownloaded && _velopackMgr != null && _velopackUpdate != null )
141141 {
142- _velopackMgr . ApplyUpdatesAndRestart ( _velopackUpdate . TargetFullRelease ) ;
142+ var dialog = new Avalonia . Controls . Window
143+ {
144+ Title = "Update Ready" ,
145+ Width = 350 , Height = 150 ,
146+ WindowStartupLocation = Avalonia . Controls . WindowStartupLocation . CenterOwner ,
147+ CanResize = false
148+ } ;
149+
150+ var result = false ;
151+ var panel = new Avalonia . Controls . StackPanel
152+ {
153+ Margin = new Avalonia . Thickness ( 20 ) ,
154+ Spacing = 15
155+ } ;
156+ panel . Children . Add ( new Avalonia . Controls . TextBlock
157+ {
158+ Text = "The application will close and restart with the new version. Continue?" ,
159+ TextWrapping = Avalonia . Media . TextWrapping . Wrap
160+ } ) ;
161+ var buttonPanel = new Avalonia . Controls . StackPanel
162+ {
163+ Orientation = Avalonia . Layout . Orientation . Horizontal ,
164+ HorizontalAlignment = Avalonia . Layout . HorizontalAlignment . Right ,
165+ Spacing = 8
166+ } ;
167+ var okButton = new Avalonia . Controls . Button { Content = "Restart Now" } ;
168+ var cancelButton = new Avalonia . Controls . Button { Content = "Later" } ;
169+ okButton . Click += ( _ , _ ) => { result = true ; dialog . Close ( ) ; } ;
170+ cancelButton . Click += ( _ , _ ) => { dialog . Close ( ) ; } ;
171+ buttonPanel . Children . Add ( okButton ) ;
172+ buttonPanel . Children . Add ( cancelButton ) ;
173+ panel . Children . Add ( buttonPanel ) ;
174+ dialog . Content = panel ;
175+
176+ await dialog . ShowDialog ( this ) ;
177+
178+ if ( result )
179+ {
180+ _velopackMgr . ApplyUpdatesAndRestart ( _velopackUpdate . TargetFullRelease ) ;
181+ }
143182 return ;
144183 }
145184
0 commit comments