From a4ea3b288968e1a782e90bb2d91939a4520a4c85 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 15 Aug 2022 21:35:21 +0100 Subject: [PATCH] Use MakeReportDrawer functor in SingleChatController --- .../Controllers/SingleChatController.swift | 64 ++++--------------- 1 file changed, 11 insertions(+), 53 deletions(-) diff --git a/Sources/ChatFeature/Controllers/SingleChatController.swift b/Sources/ChatFeature/Controllers/SingleChatController.swift index 3b8c60b9..203b4a91 100644 --- a/Sources/ChatFeature/Controllers/SingleChatController.swift +++ b/Sources/ChatFeature/Controllers/SingleChatController.swift @@ -29,6 +29,7 @@ public final class SingleChatController: UIViewController { @Dependency private var logger: XXLogger @Dependency private var voxophone: Voxophone @Dependency private var coordinator: ChatCoordinating + @Dependency private var makeReportDrawer: MakeReportDrawer @Dependency private var makeAppScreenshot: MakeAppScreenshot @Dependency private var statusBarController: StatusBarStyleControlling @@ -395,59 +396,16 @@ public final class SingleChatController: UIViewController { } private func presentReportDrawer() { - let cancelButton = CapsuleButton() - cancelButton.setStyle(.seeThrough) - cancelButton.setTitle(Localized.Chat.Report.cancel, for: .normal) - - let reportButton = CapsuleButton() - reportButton.setStyle(.red) - reportButton.setTitle(Localized.Chat.Report.action, for: .normal) - - let drawer = DrawerController(with: [ - DrawerImage( - image: Asset.drawerNegative.image - ), - DrawerText( - font: Fonts.Mulish.semiBold.font(size: 18.0), - text: Localized.Chat.Report.title, - color: Asset.neutralActive.color - ), - DrawerText( - font: Fonts.Mulish.semiBold.font(size: 14.0), - text: Localized.Chat.Report.subtitle, - color: Asset.neutralWeak.color, - lineHeightMultiple: 1.35, - spacingAfter: 25 - ), - DrawerStack( - axis: .vertical, - spacing: 20.0, - views: [reportButton, cancelButton] - ) - ]) - - reportButton.publisher(for: .touchUpInside) - .receive(on: DispatchQueue.main) - .sink { - drawer.dismiss(animated: true) { [weak self] in - guard let self = self else { return } - self.drawerCancellables.removeAll() - let screenshot = try! self.makeAppScreenshot() - self.viewModel.report(screenshot: screenshot) { success in - guard success else { return } - self.navigationController?.popViewController(animated: true) - } - } - }.store(in: &drawerCancellables) - - cancelButton.publisher(for: .touchUpInside) - .receive(on: DispatchQueue.main) - .sink { - drawer.dismiss(animated: true) { [weak self] in - self?.drawerCancellables.removeAll() - } - }.store(in: &drawerCancellables) - + var config = MakeReportDrawer.Config() + config.onReport = { [weak self] in + guard let self = self else { return } + let screenshot = try! self.makeAppScreenshot() + self.viewModel.report(screenshot: screenshot) { success in + guard success else { return } + self.navigationController?.popViewController(animated: true) + } + } + let drawer = makeReportDrawer(config) coordinator.toDrawer(drawer, from: self) } -- GitLab