Skip to content

Commit

Permalink
Merge pull request #1718 from anyproto/ios-3062-enrich-existing-relat…
Browse files Browse the repository at this point in the history
…ion-events-with-source-object

iOS-3062 Enrich existing relation events with source object + format
  • Loading branch information
joe-pusya authored Jul 1, 2024
2 parents c0c2a39 + 38c51de commit 666478b
Show file tree
Hide file tree
Showing 25 changed files with 140 additions and 628 deletions.
36 changes: 4 additions & 32 deletions Anytype.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
0AD7695925D5908E00669F8C /* FileActionsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AD7695825D5908E00669F8C /* FileActionsService.swift */; };
1200BF9227F4CA62000A0366 /* DownloadableImageViewWrapperProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1200BF9127F4CA62000A0366 /* DownloadableImageViewWrapperProtocol.swift */; };
1206DB90267A303E000A48A7 /* MediaPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1206DB8F267A303E000A48A7 /* MediaPickerView.swift */; };
120AC25E2747B56000330D7B /* TextRelationDetailsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 120AC25D2747B56000330D7B /* TextRelationDetailsViewModel.swift */; };
120E8171269F31A8006FE84E /* ObjectSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 120E8170269F31A8006FE84E /* ObjectSettingsView.swift */; };
120E8175269F342D006FE84E /* ObjectSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 120E8174269F342D006FE84E /* ObjectSettingsViewModel.swift */; };
120E8177269F3474006FE84E /* ObjectSetting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 120E8176269F3474006FE84E /* ObjectSetting.swift */; };
Expand Down Expand Up @@ -83,7 +82,6 @@
1211D65A2667CED000541D9C /* ActivityIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1211D6592667CED000541D9C /* ActivityIndicatorView.swift */; };
12136D2C2796C5EC00262FE7 /* RelationOptionsPopupLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12136D2B2796C5EC00262FE7 /* RelationOptionsPopupLayout.swift */; };
12136D5627996F3400262FE7 /* TextRelationEditingService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12136D5527996F3400262FE7 /* TextRelationEditingService.swift */; };
12136D5A2799A2BC00262FE7 /* TextRelationDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12136D592799A2BC00262FE7 /* TextRelationDetailsViewController.swift */; };
1215E8B126A860D20089AF7E /* AppConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1215E8B026A860D20089AF7E /* AppConfigurator.swift */; };
1215E8B426A860ED0089AF7E /* AppConfiguratorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1215E8B326A860ED0089AF7E /* AppConfiguratorProtocol.swift */; };
1215E8B626A8610C0089AF7E /* KingfisherConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1215E8B526A8610C0089AF7E /* KingfisherConfigurator.swift */; };
Expand Down Expand Up @@ -260,8 +258,6 @@
12EEC36C26A0903F00C3C4B1 /* EmojiProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12EEC36826A0903F00C3C4B1 /* EmojiProvider.swift */; };
12EEC36D26A0903F00C3C4B1 /* EmojiGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12EEC36926A0903F00C3C4B1 /* EmojiGroup.swift */; };
12EEC36E26A0903F00C3C4B1 /* EmojiGridView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12EEC36A26A0903F00C3C4B1 /* EmojiGridView.swift */; };
12F14CD02758D09F00B976B5 /* RelationEditingViewModelBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12F14CCF2758D09F00B976B5 /* RelationEditingViewModelBuilder.swift */; };
12F14CD52758D0B200B976B5 /* RelationEditingViewModelBuilderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12F14CD42758D0B200B976B5 /* RelationEditingViewModelBuilderProtocol.swift */; };
12FD9D1D2767168800991886 /* RelationProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12FD9D1C2767168800991886 /* RelationProtocol.swift */; };
12FD9D1F2767172A00991886 /* RelationText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12FD9D1E2767172A00991886 /* RelationText.swift */; };
12FD9D212767174E00991886 /* RelationCheckbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12FD9D202767174E00991886 /* RelationCheckbox.swift */; };
Expand Down Expand Up @@ -998,7 +994,6 @@
2E7C44672892CFCA0062287C /* SetFiltersDateRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C44662892CFCA0062287C /* SetFiltersDateRowView.swift */; };
2E7C44692892D73C0062287C /* SetFiltersDateType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C44682892D73C0062287C /* SetFiltersDateType.swift */; };
2E7C446B2892E66D0062287C /* SetFiltersDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C446A2892E66D0062287C /* SetFiltersDate.swift */; };
2E7C446F289409610062287C /* TextRelationDetailsViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C446E289409610062287C /* TextRelationDetailsViewModelProtocol.swift */; };
2E7C4471289842E10062287C /* DataviewFilter+Update.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C4470289842E10062287C /* DataviewFilter+Update.swift */; };
2E7C4473289843220062287C /* DataviewFilter+Condition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C4472289843220062287C /* DataviewFilter+Condition.swift */; };
2E7C44752898434A0062287C /* DataviewFilter+QuickOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C44742898434A0062287C /* DataviewFilter+QuickOption.swift */; };
Expand Down Expand Up @@ -1836,7 +1831,6 @@
0AD7695825D5908E00669F8C /* FileActionsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileActionsService.swift; sourceTree = "<group>"; };
1200BF9127F4CA62000A0366 /* DownloadableImageViewWrapperProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadableImageViewWrapperProtocol.swift; sourceTree = "<group>"; };
1206DB8F267A303E000A48A7 /* MediaPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPickerView.swift; sourceTree = "<group>"; };
120AC25D2747B56000330D7B /* TextRelationDetailsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextRelationDetailsViewModel.swift; sourceTree = "<group>"; };
120E8170269F31A8006FE84E /* ObjectSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObjectSettingsView.swift; sourceTree = "<group>"; };
120E8174269F342D006FE84E /* ObjectSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObjectSettingsViewModel.swift; sourceTree = "<group>"; };
120E8176269F3474006FE84E /* ObjectSetting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ObjectSetting.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1864,7 +1858,6 @@
1211D6592667CED000541D9C /* ActivityIndicatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityIndicatorView.swift; sourceTree = "<group>"; };
12136D2B2796C5EC00262FE7 /* RelationOptionsPopupLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationOptionsPopupLayout.swift; sourceTree = "<group>"; };
12136D5527996F3400262FE7 /* TextRelationEditingService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextRelationEditingService.swift; sourceTree = "<group>"; };
12136D592799A2BC00262FE7 /* TextRelationDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextRelationDetailsViewController.swift; sourceTree = "<group>"; };
1215E8B026A860D20089AF7E /* AppConfigurator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConfigurator.swift; sourceTree = "<group>"; };
1215E8B326A860ED0089AF7E /* AppConfiguratorProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConfiguratorProtocol.swift; sourceTree = "<group>"; };
1215E8B526A8610C0089AF7E /* KingfisherConfigurator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KingfisherConfigurator.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2037,8 +2030,6 @@
12EEC36826A0903F00C3C4B1 /* EmojiProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiProvider.swift; sourceTree = "<group>"; };
12EEC36926A0903F00C3C4B1 /* EmojiGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiGroup.swift; sourceTree = "<group>"; };
12EEC36A26A0903F00C3C4B1 /* EmojiGridView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiGridView.swift; sourceTree = "<group>"; };
12F14CCF2758D09F00B976B5 /* RelationEditingViewModelBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationEditingViewModelBuilder.swift; sourceTree = "<group>"; };
12F14CD42758D0B200B976B5 /* RelationEditingViewModelBuilderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationEditingViewModelBuilderProtocol.swift; sourceTree = "<group>"; };
12FD9D1C2767168800991886 /* RelationProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationProtocol.swift; sourceTree = "<group>"; };
12FD9D1E2767172A00991886 /* RelationText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationText.swift; sourceTree = "<group>"; };
12FD9D202767174E00991886 /* RelationCheckbox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelationCheckbox.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -2799,7 +2790,6 @@
2E7C44662892CFCA0062287C /* SetFiltersDateRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetFiltersDateRowView.swift; sourceTree = "<group>"; };
2E7C44682892D73C0062287C /* SetFiltersDateType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetFiltersDateType.swift; sourceTree = "<group>"; };
2E7C446A2892E66D0062287C /* SetFiltersDate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SetFiltersDate.swift; sourceTree = "<group>"; };
2E7C446E289409610062287C /* TextRelationDetailsViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextRelationDetailsViewModelProtocol.swift; sourceTree = "<group>"; };
2E7C4470289842E10062287C /* DataviewFilter+Update.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DataviewFilter+Update.swift"; sourceTree = "<group>"; };
2E7C4472289843220062287C /* DataviewFilter+Condition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DataviewFilter+Condition.swift"; sourceTree = "<group>"; };
2E7C44742898434A0062287C /* DataviewFilter+QuickOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DataviewFilter+QuickOption.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -4836,25 +4826,10 @@
2E6B077F2B5AAC35004CACE5 /* Container */,
2EE33DC12B55829400D0CDDB /* Date */,
1244793A27DC61FA00581174 /* SearchViewModels */,
12887F3D274BC25100228330 /* LegacyText */,
);
path = RelationDetailsViews;
sourceTree = "<group>";
};
12887F3D274BC25100228330 /* LegacyText */ = {
isa = PBXGroup;
children = (
2A03039628ABAA32002EFC46 /* Actions */,
12136D592799A2BC00262FE7 /* TextRelationDetailsViewController.swift */,
120AC25D2747B56000330D7B /* TextRelationDetailsViewModel.swift */,
12195394278DA46D00D53653 /* TextRelationViewType.swift */,
12B0FF5F274FC5E200CA35FE /* TextRelationActionButtonViewModelDelegate.swift */,
123949EB279EEF830080E1CF /* TextRelationDetailsService */,
2E7C446E289409610062287C /* TextRelationDetailsViewModelProtocol.swift */,
);
path = LegacyText;
sourceTree = "<group>";
};
1289C50E2810278F005085E2 /* FileDownloading flow */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -5531,8 +5506,6 @@
2A2C330628928B24008BC326 /* RelationEditingViewModelBuilder */ = {
isa = PBXGroup;
children = (
12F14CCF2758D09F00B976B5 /* RelationEditingViewModelBuilder.swift */,
12F14CD42758D0B200B976B5 /* RelationEditingViewModelBuilderProtocol.swift */,
);
path = RelationEditingViewModelBuilder;
sourceTree = "<group>";
Expand Down Expand Up @@ -7333,6 +7306,10 @@
2E101CB52B98EF1600D03821 /* Text */ = {
isa = PBXGroup;
children = (
2A03039628ABAA32002EFC46 /* Actions */,
123949EB279EEF830080E1CF /* TextRelationDetailsService */,
12195394278DA46D00D53653 /* TextRelationViewType.swift */,
12B0FF5F274FC5E200CA35FE /* TextRelationActionButtonViewModelDelegate.swift */,
2E101CB62B98EF3900D03821 /* TextRelationEditingView.swift */,
2E101CB82B98EFB500D03821 /* TextRelationEditingViewModel.swift */,
3DA7DC0E2BDFBCD200F8F4B5 /* TextRelationActionViewModelBuilder.swift */,
Expand Down Expand Up @@ -11096,7 +11073,6 @@
2E9863512937B55800304645 /* GroupsSubscriptionsHandlerProtocol.swift in Sources */,
C91989ED2811673600CC6BEB /* UndoRedoView.swift in Sources */,
C9121A5C273B8E2F00FFDA07 /* RoundedShadowView.swift in Sources */,
2E7C446F289409610062287C /* TextRelationDetailsViewModelProtocol.swift in Sources */,
03E2AD5523A93D3800C701CE /* UserIconView.swift in Sources */,
3D86244C2B738D6400A5FCF4 /* TypesServiceProtocol.swift in Sources */,
2A81D2802B723F3800A2959E /* ShareEnvironment.swift in Sources */,
Expand Down Expand Up @@ -11600,7 +11576,6 @@
2A845D752B0D027300AFD252 /* WidgetSwipeActionView.swift in Sources */,
2E1AA7FD2BCEBF180089B136 /* SetLayoutSettingsData.swift in Sources */,
2E999487294240C300FFBED9 /* SetDocumentProtocol.swift in Sources */,
120AC25E2747B56000330D7B /* TextRelationDetailsViewModel.swift in Sources */,
2AD37D5829911FA50012409E /* WidgetObjectListSetsViewModel.swift in Sources */,
53CC99B3280DB6CC00C39CCF /* EventConfigurtion.swift in Sources */,
2A80F76C2BB5AA63000B55C6 /* DynamicForeground.swift in Sources */,
Expand Down Expand Up @@ -12080,10 +12055,8 @@
2A6F5048288A9AB600ED6E2E /* Image+Create.swift in Sources */,
2AA8E8242AD852E600950427 /* SubscriptionStorageState.swift in Sources */,
2E0A6CD92A3773F200A28AF2 /* LoginFlowOutput.swift in Sources */,
12F14CD52758D0B200B976B5 /* RelationEditingViewModelBuilderProtocol.swift in Sources */,
2E37F01428C768B900337BD4 /* SetViewRow.swift in Sources */,
C9A04F8D287C317D00276804 /* SelectionDecorationView.swift in Sources */,
12136D5A2799A2BC00262FE7 /* TextRelationDetailsViewController.swift in Sources */,
2AD48D542B7F57CE0077C53B /* SpaceJoinViewModel.swift in Sources */,
2E0A57BA2A3C7C6800359110 /* UsecaseService.swift in Sources */,
2E1AA8042BD7FDEB0089B136 /* SetSettingsData.swift in Sources */,
Expand Down Expand Up @@ -12183,7 +12156,6 @@
53F8215B2655C871003FEB0B /* BottomSheetsFactory.swift in Sources */,
120EB4E126E8EE2E003A0C2B /* ObjectHeaderCoverView.swift in Sources */,
12A52E0126CA7BF6000F0333 /* UIViewControllerExtensions.swift in Sources */,
12F14CD02758D09F00B976B5 /* RelationEditingViewModelBuilder.swift in Sources */,
2AB522082A14D0E7007DEE53 /* FileErrorEventHandler.swift in Sources */,
2A360FA12BCE8A33002ADD3B /* Text+Style.swift in Sources */,
3D932D5826317EFC00C7D1EA /* BaseFilePickerViewModel.swift in Sources */,
Expand Down
16 changes: 16 additions & 0 deletions Anytype/Sources/Analytics/AnalyticsConstants.swift
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ enum AnalyticsEventsPropertiesKey {
static let middleTime = "middleTime"
static let permissions = "permissions"
static let spaceType = "spaceType"

static let relationKey = "relationKey"
}

enum AnalyticsEventsTypeValues {
Expand Down Expand Up @@ -136,6 +138,20 @@ enum AnalyticsObjectType {
}
}

enum AnalyticsRelationKey {
case system(key: String)
case custom

var value: String {
switch self {
case .system(let key):
return key
case .custom:
return "custom"
}
}
}

enum AnalyticsWidgetRoute: String {
case addWidget = "AddWidget"
case inner = "Inner"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,23 +253,35 @@ extension AnytypeAnalytics {
format: RelationFormat,
isNew: Bool,
type: AnalyticsEventsRelationType,
key: AnalyticsRelationKey,
spaceId: String
) {
logEvent(
isNew ? "CreateRelation" : "AddExistingRelation",
spaceId: spaceId,
withEventProperties: [
AnalyticsEventsPropertiesKey.format: format.analyticsName,
AnalyticsEventsPropertiesKey.type: type.rawValue
AnalyticsEventsPropertiesKey.type: type.rawValue,
AnalyticsEventsPropertiesKey.relationKey: key.value
]
)
}

func logChangeOrDeleteRelationValue(isEmpty: Bool, type: AnalyticsEventsRelationType, spaceId: String) {
func logChangeOrDeleteRelationValue(
isEmpty: Bool,
format: RelationFormat,
type: AnalyticsEventsRelationType,
key: AnalyticsRelationKey,
spaceId: String
) {
logEvent(
isEmpty ? "DeleteRelationValue" : "ChangeRelationValue",
spaceId: spaceId,
withEventProperties: [AnalyticsEventsPropertiesKey.type: type.rawValue]
withEventProperties: [
AnalyticsEventsPropertiesKey.type: type.rawValue,
AnalyticsEventsPropertiesKey.format: format.analyticsName,
AnalyticsEventsPropertiesKey.relationKey: key.value
]
)
}

Expand Down Expand Up @@ -996,16 +1008,25 @@ extension AnytypeAnalytics {
logEvent("DuplicateBlock", spaceId: spaceId)
}

func logFeatureRelation(spaceId: String) {
logEvent("FeatureRelation", spaceId: spaceId)
func logFeatureRelation(spaceId: String, format: RelationFormat, key: AnalyticsRelationKey) {
logEvent("FeatureRelation", spaceId: spaceId, withEventProperties: [
AnalyticsEventsPropertiesKey.relationKey: key.value,
AnalyticsEventsPropertiesKey.format: format.analyticsName
])
}

func logUnfeatureRelation(spaceId: String) {
logEvent("UnfeatureRelation", spaceId: spaceId)
func logUnfeatureRelation(spaceId: String, format: RelationFormat, key: AnalyticsRelationKey) {
logEvent("UnfeatureRelation", spaceId: spaceId, withEventProperties: [
AnalyticsEventsPropertiesKey.relationKey: key.value,
AnalyticsEventsPropertiesKey.format: format.analyticsName
])
}

func logDeleteRelation(spaceId: String) {
logEvent("DeleteRelation", spaceId: spaceId)
func logDeleteRelation(spaceId: String, format: RelationFormat, key: AnalyticsRelationKey) {
logEvent("DeleteRelation", spaceId: spaceId, withEventProperties: [
AnalyticsEventsPropertiesKey.relationKey: key.value,
AnalyticsEventsPropertiesKey.format: format.analyticsName
])
}

func logScreenSettingsMembership() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,8 @@ extension RelationDetails {
guard let keyType = BundledRelationKey(rawValue: key) else { return true }
return !BundledRelationKey.internalKeys.contains(keyType) && !isHidden && !isReadOnlyValue
}

var analyticsKey: AnalyticsRelationKey {
sourceObject.isNotEmpty ? .system(key: sourceObject) : .custom
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ final class DateRelationCalendarViewModel: ObservableObject {

@Injected(\.relationsService)
private var relationsService: any RelationsServiceProtocol
@Injected(\.relationDetailsStorage)
private var relationDetailsStorage: any RelationDetailsStorageProtocol

init(date: Date?, configuration: RelationModuleConfiguration) {
self.date = date ?? Date()
Expand Down Expand Up @@ -41,9 +43,12 @@ final class DateRelationCalendarViewModel: ObservableObject {
private func updateDateRelation(with value: Double) {
Task {
try await relationsService.updateRelation(objectId: config.objectId, relationKey: config.relationKey, value: value.protobufValue)
let relationDetails = try relationDetailsStorage.relationsDetails(for: config.relationKey, spaceId: config.spaceId)
AnytypeAnalytics.instance().logChangeOrDeleteRelationValue(
isEmpty: value.isZero,
format: relationDetails.format,
type: config.analyticsType,
key: relationDetails.analyticsKey,
spaceId: config.spaceId
)
}
Expand Down
Loading

0 comments on commit 666478b

Please sign in to comment.