From 0641983a4f5ed35b21b8c062c059229a0a1b1274 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 29 Jun 2023 13:46:11 +0300 Subject: [PATCH] macOS widgets --- lib/data/models/widget_model.dart | 2 +- macos/CompanyIntent/IntentHandler.swift | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/data/models/widget_model.dart b/lib/data/models/widget_model.dart index 3b9bba17d..aaca59009 100644 --- a/lib/data/models/widget_model.dart +++ b/lib/data/models/widget_model.dart @@ -54,7 +54,7 @@ class WidgetData { 'company_id': companyId, 'url': url, 'date_ranges': dateRanges, - 'dashboard_Fields': dashboardFields, + 'dashboard_fields': dashboardFields, }; final String url; diff --git a/macos/CompanyIntent/IntentHandler.swift b/macos/CompanyIntent/IntentHandler.swift index 7d0ba5eb7..babebb573 100644 --- a/macos/CompanyIntent/IntentHandler.swift +++ b/macos/CompanyIntent/IntentHandler.swift @@ -12,6 +12,9 @@ class IntentHandler: INExtension, ConfigurationIntentHandling { if let sharedDefaults = sharedDefaults { do { if let shared = sharedDefaults.string(forKey: "widget_data") { + + //print("## Shared: \(shared)") + let decoder = JSONDecoder() widgetData = try decoder.decode(WidgetData.self, from: shared.data(using: .utf8)!) } @@ -35,6 +38,11 @@ class IntentHandler: INExtension, ConfigurationIntentHandling { func defaultCompany(for intent: ConfigurationIntent) -> Company? { let widgetData = loadWidgetData() + + if (widgetData.companyId.isEmpty) { + return nil + } + let company = widgetData.companies[widgetData.companyId]; return Company(identifier: company!.id, display: company!.name) } @@ -52,6 +60,11 @@ class IntentHandler: INExtension, ConfigurationIntentHandling { func defaultCurrency(for intent: ConfigurationIntent) -> Currency? { let widgetData = loadWidgetData() + + if (widgetData.companyId.isEmpty) { + return nil + } + let company = widgetData.companies[widgetData.companyId]; let currency = company?.currencies[company!.currencyId]; return Currency(identifier: currency!.id, display: currency!.name) @@ -70,6 +83,11 @@ class IntentHandler: INExtension, ConfigurationIntentHandling { func defaultDateRange(for intent: ConfigurationIntent) -> DateRange? { let widgetData = loadWidgetData() + + if (widgetData.dateRanges.isEmpty) { + return nil + } + let defaultDateRange = "last30_days"; let dateRamge = widgetData.dateRanges[defaultDateRange]!; return DateRange(identifier: defaultDateRange, display: dateRamge) @@ -88,6 +106,11 @@ class IntentHandler: INExtension, ConfigurationIntentHandling { func defaultDashboardField(for intent: ConfigurationIntent) -> DashboardField? { let widgetData = loadWidgetData() + + if (widgetData.dashboardFields.isEmpty) { + return nil + } + let defaultField = "total_active_invoices"; let field = widgetData.dashboardFields[defaultField]!; return DashboardField(identifier: defaultField, display: field)