mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-31 18:15:09 +00:00 
			
		
		
		
	
		
			
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
|   | import 'package:flutter/material.dart'; | ||
|  | import 'package:flutter/services.dart'; | ||
|  | 
 | ||
|  | enum HapticFeedbackType { | ||
|  |   light, | ||
|  |   medium, | ||
|  |   heavy, | ||
|  |   selection, | ||
|  |   vibrate; | ||
|  | 
 | ||
|  |   void call() { | ||
|  |     switch (this) { | ||
|  |       case HapticFeedbackType.light: | ||
|  |         HapticFeedback.lightImpact(); | ||
|  |         break; | ||
|  |       case HapticFeedbackType.medium: | ||
|  |         HapticFeedback.mediumImpact(); | ||
|  |         break; | ||
|  |       case HapticFeedbackType.heavy: | ||
|  |         HapticFeedback.heavyImpact(); | ||
|  |         break; | ||
|  |       case HapticFeedbackType.selection: | ||
|  |         HapticFeedback.selectionClick(); | ||
|  |         break; | ||
|  |       case HapticFeedbackType.vibrate: | ||
|  |         HapticFeedback.vibrate(); | ||
|  |         break; | ||
|  |     } | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | class FeedbackGestureDetector extends GestureDetector { | ||
|  |   FeedbackGestureDetector({ | ||
|  |     super.key, | ||
|  |     HitTestBehavior behavior = HitTestBehavior.opaque, | ||
|  |     HapticFeedbackType feedbackType = HapticFeedbackType.light, | ||
|  |     required Widget child, | ||
|  |     required VoidCallback onTap, | ||
|  |   }) : super( | ||
|  |           behavior: behavior, | ||
|  |           onTap: () { | ||
|  |             feedbackType.call(); | ||
|  |             onTap(); | ||
|  |           }, | ||
|  |           child: child, | ||
|  |         ); | ||
|  | } |