diff --git a/Anytype.xcodeproj/project.pbxproj b/Anytype.xcodeproj/project.pbxproj index 993ee33c08..f717a1109a 100644 --- a/Anytype.xcodeproj/project.pbxproj +++ b/Anytype.xcodeproj/project.pbxproj @@ -544,7 +544,6 @@ 2AB511AC29093A36005D0A91 /* BeginingOfTextMarkdownListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AB511AB29093A36005D0A91 /* BeginingOfTextMarkdownListener.swift */; }; 2AB511AE29093CB4005D0A91 /* InlineMarkdownListenerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AB511AD29093CB4005D0A91 /* InlineMarkdownListenerTests.swift */; }; 2AB522082A14D0E7007DEE53 /* FileErrorEventHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AB522072A14D0E7007DEE53 /* FileErrorEventHandler.swift */; }; - 2AB5220D2A151821007DEE53 /* DetailsLayout+Visible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AB5220C2A151820007DEE53 /* DetailsLayout+Visible.swift */; }; 2ABA0E07283BC420008369DC /* BlockObjectsSearchInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ABA0E06283BC420008369DC /* BlockObjectsSearchInteractor.swift */; }; 2ABAF2B92938E58E003C4730 /* CodeLanguageListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ABAF2B82938E58E003C4730 /* CodeLanguageListViewModel.swift */; }; 2ABAF2BB2938E5FA003C4730 /* CodeLanguageModuleAssembly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ABAF2BA2938E5FA003C4730 /* CodeLanguageModuleAssembly.swift */; }; @@ -2013,7 +2012,6 @@ 2AB511AB29093A36005D0A91 /* BeginingOfTextMarkdownListener.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BeginingOfTextMarkdownListener.swift; sourceTree = ""; }; 2AB511AD29093CB4005D0A91 /* InlineMarkdownListenerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = InlineMarkdownListenerTests.swift; path = AnyTypeTests/Markdown/InlineMarkdownListenerTests.swift; sourceTree = SOURCE_ROOT; }; 2AB522072A14D0E7007DEE53 /* FileErrorEventHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileErrorEventHandler.swift; sourceTree = ""; }; - 2AB5220C2A151820007DEE53 /* DetailsLayout+Visible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DetailsLayout+Visible.swift"; sourceTree = ""; }; 2ABA0E06283BC420008369DC /* BlockObjectsSearchInteractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlockObjectsSearchInteractor.swift; sourceTree = ""; }; 2ABAF2B82938E58E003C4730 /* CodeLanguageListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodeLanguageListViewModel.swift; sourceTree = ""; }; 2ABAF2BA2938E5FA003C4730 /* CodeLanguageModuleAssembly.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodeLanguageModuleAssembly.swift; sourceTree = ""; }; @@ -4440,7 +4438,6 @@ 2AFB54682869989D004F7458 /* ObjectType+Extensions.swift */, 2A2C32FF28919576008BC326 /* RelationMetadataFormat+Extensions.swift */, 2AAE455728A5307C00E538C8 /* BlockBookmark+Extensions.swift */, - 2AB5220C2A151820007DEE53 /* DetailsLayout+Visible.swift */, ); path = Extensions; sourceTree = ""; @@ -10098,7 +10095,6 @@ C93B2D2F274E41390008544D /* CustomStateKeys.swift in Sources */, 2A2C3311289294B8008BC326 /* ModulesDI.swift in Sources */, 2AFFFB9B292778B700A487E1 /* ObjectSettingModuleAssembly.swift in Sources */, - 2AB5220D2A151821007DEE53 /* DetailsLayout+Visible.swift in Sources */, 12928C8C27BD3C0B00CE94C3 /* IntrinsicPopupLayout.swift in Sources */, 538F1728272C126F009528E7 /* SearchViewModelProtocol.swift in Sources */, 2E2D256428880C8D00E3DFD1 /* SetFiltersSelectionHeaderViewModel.swift in Sources */, diff --git a/Anytype/Sources/Models/Extensions/ObjectDetailsExtensions.swift b/Anytype/Sources/Models/Extensions/ObjectDetailsExtensions.swift index 9b32e9b1b0..9da3af884e 100644 --- a/Anytype/Sources/Models/Extensions/ObjectDetailsExtensions.swift +++ b/Anytype/Sources/Models/Extensions/ObjectDetailsExtensions.swift @@ -147,7 +147,7 @@ extension BundledRelationsValueProvider { } var canMakeTemplate: Bool { - isTemplatesAvailable(for: layoutValue) + layoutValue.isTemplatesAvailable } var setIsTemplatesAvailable: Bool { @@ -156,11 +156,6 @@ extension BundledRelationsValueProvider { return false } - return isTemplatesAvailable(for: recommendedLayout) - } - - private func isTemplatesAvailable(for layout: DetailsLayout) -> Bool { - return !DetailsLayout.layoutsWithoutTemplate.contains(layout) && - DetailsLayout.pageLayouts.contains(layout) + return recommendedLayout.isTemplatesAvailable } } diff --git a/Anytype/Sources/ServiceLayer/Object/Templates/TemplatesInteractor.swift b/Anytype/Sources/ServiceLayer/Object/Templates/TemplatesInteractor.swift index c77fb1232c..9b947dd6c3 100644 --- a/Anytype/Sources/ServiceLayer/Object/Templates/TemplatesInteractor.swift +++ b/Anytype/Sources/ServiceLayer/Object/Templates/TemplatesInteractor.swift @@ -16,6 +16,10 @@ final class SetTemplatesInteractor: SetTemplatesInteractorProtocol { return true } + if setDocument.isCollection() { + return UserDefaultsConfig.defaultObjectType.recommendedLayout.isTemplatesAvailable + } + guard setObject.setOf.count == 1, let typeId = setObject.setOf.first else { return false diff --git a/Anytype/Sources/Models/Extensions/DetailsLayout+Visible.swift b/Modules/Services/Sources/Models/Extensions/DetailsLayout+Visible.swift similarity index 81% rename from Anytype/Sources/Models/Extensions/DetailsLayout+Visible.swift rename to Modules/Services/Sources/Models/Extensions/DetailsLayout+Visible.swift index 07bd16bd59..a7ee7802c8 100644 --- a/Anytype/Sources/Models/Extensions/DetailsLayout+Visible.swift +++ b/Modules/Services/Sources/Models/Extensions/DetailsLayout+Visible.swift @@ -1,14 +1,11 @@ -import Services - -extension DetailsLayout { +public extension DetailsLayout { static var visibleLayouts: [DetailsLayout] = [.basic, .bookmark, .collection, .note, .profile, .set, .todo] static var supportedForEditLayouts: [DetailsLayout] = [.basic, .bookmark, .collection, .file, .image, .note, .profile, .set, .todo] } // For editor - -extension DetailsLayout { +public extension DetailsLayout { static var editorLayouts: [DetailsLayout] = [ .note, .basic, @@ -45,4 +42,10 @@ extension DetailsLayout { .collection, .bookmark ] + fileAndSystemLayouts + + + var isTemplatesAvailable: Bool { + !DetailsLayout.layoutsWithoutTemplate.contains(self) && + DetailsLayout.pageLayouts.contains(self) + } }