diff --git a/RevenueCatUI/CustomerCenter/Data/CustomerCenterAction.swift b/RevenueCatUI/CustomerCenter/Data/CustomerCenterAction.swift index 03df8ba062..a212180b5d 100644 --- a/RevenueCatUI/CustomerCenter/Data/CustomerCenterAction.swift +++ b/RevenueCatUI/CustomerCenter/Data/CustomerCenterAction.swift @@ -23,7 +23,10 @@ public enum CustomerCenterAction { /// - Parameter refundRequestStatus: The status of the refund request case refundRequestCompleted(_ refundRequestStatus: RefundRequestStatus) /// An option of the feedback survey has been selected - /// - Parameter feedbackSurveyOptionId: The id of the feedback survey option selected + /// - Parameter feedbackSurveyOptionId: The id of the selected feedback survey option case feedbackSurveyCompleted(_ feedbackSurveyOptionId: String) + /// An option of the feedback survey has been selected + /// - Parameter option: The ``CustomerCenterConfigData.HelpPath.FeedbackSurvey.Option`` that was selected + case feedbackSurveyCompletedWithOption(_ option: CustomerCenterConfigData.HelpPath.FeedbackSurvey.Option) } diff --git a/RevenueCatUI/CustomerCenter/Data/CustomerCenterConfigTestData.swift b/RevenueCatUI/CustomerCenter/Data/CustomerCenterConfigTestData.swift index 029b436178..b33ea3300a 100644 --- a/RevenueCatUI/CustomerCenter/Data/CustomerCenterConfigTestData.swift +++ b/RevenueCatUI/CustomerCenter/Data/CustomerCenterConfigTestData.swift @@ -73,16 +73,19 @@ enum CustomerCenterConfigTestData { .init( id: "1", title: "Too expensive", + titleInDefaultLocale: "Too expensive", promotionalOffer: nil ), .init( id: "2", title: "Don't use the app", + titleInDefaultLocale: "Don't use the app", promotionalOffer: nil ), .init( id: "3", title: "Bought by mistake", + titleInDefaultLocale: "Bought by mistake", promotionalOffer: nil ) ] diff --git a/RevenueCatUI/CustomerCenter/ViewModels/FeedbackSurveyViewModel.swift b/RevenueCatUI/CustomerCenter/ViewModels/FeedbackSurveyViewModel.swift index a49feeb1f8..fcadd028db 100644 --- a/RevenueCatUI/CustomerCenter/ViewModels/FeedbackSurveyViewModel.swift +++ b/RevenueCatUI/CustomerCenter/ViewModels/FeedbackSurveyViewModel.swift @@ -64,6 +64,7 @@ class FeedbackSurveyViewModel: ObservableObject { if let customerCenterActionHandler = self.customerCenterActionHandler { trackSurveyAnswerSubmitted(option: option, darkMode: darkMode, displayMode: displayMode) customerCenterActionHandler(.feedbackSurveyCompleted(option.id)) + customerCenterActionHandler(.feedbackSurveyCompletedWithOption(option)) } if let promotionalOffer = option.promotionalOffer, diff --git a/Sources/CustomerCenter/CustomerCenterConfigData.swift b/Sources/CustomerCenter/CustomerCenterConfigData.swift index a2cc6a69ad..2a9a3d6507 100644 --- a/Sources/CustomerCenter/CustomerCenterConfigData.swift +++ b/Sources/CustomerCenter/CustomerCenterConfigData.swift @@ -309,11 +309,16 @@ public struct CustomerCenterConfigData { public let id: String public let title: String + public let titleInDefaultLocale: String public let promotionalOffer: PromotionalOffer? - public init(id: String, title: String, promotionalOffer: PromotionalOffer?) { + public init(id: String, + title: String, + titleInDefaultLocale: String, + promotionalOffer: PromotionalOffer?) { self.id = id self.title = title + self.titleInDefaultLocale = titleInDefaultLocale self.promotionalOffer = promotionalOffer } @@ -541,12 +546,12 @@ extension CustomerCenterConfigData.HelpPath.FeedbackSurvey.Option { init(from response: CustomerCenterConfigResponse.HelpPath.FeedbackSurvey.Option) { self.id = response.id self.title = response.title + self.titleInDefaultLocale = response.titleInDefaultLocale if let promotionalOffer = response.promotionalOffer { self.promotionalOffer = CustomerCenterConfigData.HelpPath.PromotionalOffer(from: promotionalOffer) } else { self.promotionalOffer = nil } - } } diff --git a/Sources/Networking/Responses/CustomerCenterConfigResponse.swift b/Sources/Networking/Responses/CustomerCenterConfigResponse.swift index 6984bae308..35629e477f 100644 --- a/Sources/Networking/Responses/CustomerCenterConfigResponse.swift +++ b/Sources/Networking/Responses/CustomerCenterConfigResponse.swift @@ -87,6 +87,7 @@ struct CustomerCenterConfigResponse { let id: String let title: String + let titleInDefaultLocale: String let promotionalOffer: PromotionalOffer? } diff --git a/Tests/TestingApps/PaywallsTester/PaywallsTester/UI/Views/SamplePaywallsList.swift b/Tests/TestingApps/PaywallsTester/PaywallsTester/UI/Views/SamplePaywallsList.swift index 6a4371fb04..dabcfd0c68 100644 --- a/Tests/TestingApps/PaywallsTester/PaywallsTester/UI/Views/SamplePaywallsList.swift +++ b/Tests/TestingApps/PaywallsTester/PaywallsTester/UI/Views/SamplePaywallsList.swift @@ -256,6 +256,8 @@ extension SamplePaywallsList { print("CustomerCenter: refundRequestCompleted. Result: \(status)") case .feedbackSurveyCompleted(let surveyOptionID): print("CustomerCenter: feedbackSurveyCompleted. Result: \(surveyOptionID)") + case .feedbackSurveyCompletedWithOption(let option): + print("CustomerCenter: feedbackSurveyCompleted. Result: \(option)") } } }