// // HapticFeedbackGenerator.swift // WOKA // // Created by MacBook Pro on 16/10/24. // import UIKit class HapticFeedbackGenerator{ // Singleton instance for reuse across the app static let shared = HapticFeedbackGenerator() // Private initializer to prevent instantiation from outside private init() {} /* // Trigger light impact feedback HapticFeedbackGenerator.shared.lightImpact() // Trigger success notification feedback HapticFeedbackGenerator.shared.successNotification() // Trigger selection feedback HapticFeedbackGenerator.shared.simpleSelection() */ // MARK: - Impact Feedback func impact(style: UIImpactFeedbackGenerator.FeedbackStyle) { let generator = UIImpactFeedbackGenerator(style: style) generator.prepare() // Prepares the feedback generator to reduce latency generator.impactOccurred() // Trigger the haptic feedback } // MARK: - Notification Feedback func notification(type: UINotificationFeedbackGenerator.FeedbackType) { let generator = UINotificationFeedbackGenerator() generator.prepare() generator.notificationOccurred(type) } // MARK: - Selection Feedback func selection() { let generator = UISelectionFeedbackGenerator() generator.prepare() generator.selectionChanged() } // MARK: - Common Presets // Light impact feedback func lightImpact() { impact(style: .light) } // Medium impact feedback func mediumImpact() { impact(style: .medium) } // Heavy impact feedback func heavyImpact() { impact(style: .heavy) } // Soft impact feedback (available iOS 13+) func softImpact() { if #available(iOS 13.0, *) { impact(style: .soft) } } // Rigid impact feedback (available iOS 13+) func rigidImpact() { if #available(iOS 13.0, *) { impact(style: .rigid) } } // Success notification feedback func successNotification() { notification(type: .success) } // Warning notification feedback func warningNotification() { notification(type: .warning) } // Error notification feedback func errorNotification() { notification(type: .error) } // Simple selection feedback func simpleSelection() { selection() } }