Skip to content

Commit 887945a

Browse files
committed
Merge branch 'develop' into main
2 parents afb18de + 279e60c commit 887945a

File tree

11 files changed

+317
-42
lines changed

11 files changed

+317
-42
lines changed

SnippetsLibrary.xcodeproj/project.pbxproj

Lines changed: 51 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@
3636
B825620226E8D14A0040A67E /* NSTableView+BackgroundColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825620126E8D14A0040A67E /* NSTableView+BackgroundColor.swift */; };
3737
B825621326E968380040A67E /* SnippetDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825621226E968380040A67E /* SnippetDetailsView.swift */; };
3838
B82B557426FFFB9900DE4766 /* Sourceful in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557326FFFB9900DE4766 /* Sourceful */; };
39-
B82B557726FFFC7E00DE4766 /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557626FFFC7E00DE4766 /* FirebaseCrashlytics */; };
40-
B82B557926FFFC7E00DE4766 /* FirebaseDatabase in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557826FFFC7E00DE4766 /* FirebaseDatabase */; };
41-
B82B557B26FFFC7E00DE4766 /* FirebaseRemoteConfig in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557A26FFFC7E00DE4766 /* FirebaseRemoteConfig */; };
4239
B82B557E26FFFCD500DE4766 /* SwiftUISkeleton in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */; };
4340
B82B55802700011000DE4766 /* SnippetsLibraryView+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B557F2700011000DE4766 /* SnippetsLibraryView+Equatable.swift */; };
4441
B82B55822700014600DE4766 /* StartView+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B55812700014600DE4766 /* StartView+Equatable.swift */; };
@@ -72,6 +69,11 @@
7269
B8CE1CAE26FD431E004AD5D5 /* URLFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CE1CAD26FD431E004AD5D5 /* URLFactory.swift */; };
7370
B8CE1CB026FD43B5004AD5D5 /* URLType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CE1CAF26FD43B5004AD5D5 /* URLType.swift */; };
7471
B8CE1CB826FF965D004AD5D5 /* NetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CE1CB726FF965D004AD5D5 /* NetworkService.swift */; };
72+
B8CFD8AE2700C884002A66FF /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = B8CFD8AD2700C884002A66FF /* FirebaseCrashlytics */; };
73+
B8CFD8B02700C884002A66FF /* FirebaseDatabase in Frameworks */ = {isa = PBXBuildFile; productRef = B8CFD8AF2700C884002A66FF /* FirebaseDatabase */; };
74+
B8CFD8B22700C884002A66FF /* FirebaseRemoteConfig in Frameworks */ = {isa = PBXBuildFile; productRef = B8CFD8B12700C884002A66FF /* FirebaseRemoteConfig */; };
75+
B8CFD8B42700D6A7002A66FF /* SnippetsUploadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CFD8B32700D6A7002A66FF /* SnippetsUploadView.swift */; };
76+
B8CFD8B72700D717002A66FF /* SnippetsUploadViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CFD8B62700D717002A66FF /* SnippetsUploadViewModel.swift */; };
7577
B8EB5AD526F005CC00BE3EF6 /* CustomCodeTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5AD426F005CC00BE3EF6 /* CustomCodeTheme.swift */; };
7678
B8EB5AD926F0061A00BE3EF6 /* SnippetFileCardViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5AD826F0061A00BE3EF6 /* SnippetFileCardViewState.swift */; };
7779
B8EB5ADB26F0076C00BE3EF6 /* PlistCodingKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5ADA26F0076C00BE3EF6 /* PlistCodingKeys.swift */; };
@@ -85,6 +87,8 @@
8587
B8F95B0526EEADE400335D77 /* SnippetImportView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F95B0426EEADE400335D77 /* SnippetImportView.swift */; };
8688
B8F95B0726EEAEB200335D77 /* SnippetDropCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F95B0626EEAEB200335D77 /* SnippetDropCellView.swift */; };
8789
B8F95B0926EEAF4D00335D77 /* SnippetImportViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F95B0826EEAF4D00335D77 /* SnippetImportViewModel.swift */; };
90+
B8F9CA982700F7F40041CE3E /* DisabledCommandGroupButtonType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F9CA972700F7F40041CE3E /* DisabledCommandGroupButtonType.swift */; };
91+
B8F9CA9A2700F80E0041CE3E /* UploadingStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F9CA992700F80E0041CE3E /* UploadingStatus.swift */; };
8892
/* End PBXBuildFile section */
8993

9094
/* Begin PBXContainerItemProxy section */
@@ -172,6 +176,8 @@
172176
B8CE1CAD26FD431E004AD5D5 /* URLFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLFactory.swift; sourceTree = "<group>"; };
173177
B8CE1CAF26FD43B5004AD5D5 /* URLType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLType.swift; sourceTree = "<group>"; };
174178
B8CE1CB726FF965D004AD5D5 /* NetworkService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkService.swift; sourceTree = "<group>"; };
179+
B8CFD8B32700D6A7002A66FF /* SnippetsUploadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetsUploadView.swift; sourceTree = "<group>"; };
180+
B8CFD8B62700D717002A66FF /* SnippetsUploadViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetsUploadViewModel.swift; sourceTree = "<group>"; };
175181
B8EB5AD426F005CC00BE3EF6 /* CustomCodeTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomCodeTheme.swift; sourceTree = "<group>"; };
176182
B8EB5AD826F0061A00BE3EF6 /* SnippetFileCardViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetFileCardViewState.swift; sourceTree = "<group>"; };
177183
B8EB5ADA26F0076C00BE3EF6 /* PlistCodingKeys.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlistCodingKeys.swift; sourceTree = "<group>"; };
@@ -185,18 +191,20 @@
185191
B8F95B0426EEADE400335D77 /* SnippetImportView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetImportView.swift; sourceTree = "<group>"; };
186192
B8F95B0626EEAEB200335D77 /* SnippetDropCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetDropCellView.swift; sourceTree = "<group>"; };
187193
B8F95B0826EEAF4D00335D77 /* SnippetImportViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetImportViewModel.swift; sourceTree = "<group>"; };
194+
B8F9CA972700F7F40041CE3E /* DisabledCommandGroupButtonType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisabledCommandGroupButtonType.swift; sourceTree = "<group>"; };
195+
B8F9CA992700F80E0041CE3E /* UploadingStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadingStatus.swift; sourceTree = "<group>"; };
188196
/* End PBXFileReference section */
189197

190198
/* Begin PBXFrameworksBuildPhase section */
191199
B82561AD26E81D570040A67E /* Frameworks */ = {
192200
isa = PBXFrameworksBuildPhase;
193201
buildActionMask = 2147483647;
194202
files = (
195-
B82B557926FFFC7E00DE4766 /* FirebaseDatabase in Frameworks */,
203+
B8CFD8AE2700C884002A66FF /* FirebaseCrashlytics in Frameworks */,
196204
B82B557426FFFB9900DE4766 /* Sourceful in Frameworks */,
197-
B82B557726FFFC7E00DE4766 /* FirebaseCrashlytics in Frameworks */,
205+
B8CFD8B02700C884002A66FF /* FirebaseDatabase in Frameworks */,
198206
B82B557E26FFFCD500DE4766 /* SwiftUISkeleton in Frameworks */,
199-
B82B557B26FFFC7E00DE4766 /* FirebaseRemoteConfig in Frameworks */,
207+
B8CFD8B22700C884002A66FF /* FirebaseRemoteConfig in Frameworks */,
200208
);
201209
runOnlyForDeploymentPostprocessing = 0;
202210
};
@@ -268,6 +276,7 @@
268276
B82561C626E820BD0040A67E /* Modules */ = {
269277
isa = PBXGroup;
270278
children = (
279+
B8CFD8B52700D6EA002A66FF /* SnippetsUpload */,
271280
B8F95B0326EEADCE00335D77 /* SnippetImport */,
272281
B825621126E968280040A67E /* SnippetDetails */,
273282
B82561E726E8C7C60040A67E /* SnippetsLibrary */,
@@ -506,6 +515,15 @@
506515
path = Network;
507516
sourceTree = "<group>";
508517
};
518+
B8CFD8B52700D6EA002A66FF /* SnippetsUpload */ = {
519+
isa = PBXGroup;
520+
children = (
521+
B8CFD8B32700D6A7002A66FF /* SnippetsUploadView.swift */,
522+
B8CFD8B62700D717002A66FF /* SnippetsUploadViewModel.swift */,
523+
);
524+
path = SnippetsUpload;
525+
sourceTree = "<group>";
526+
};
509527
B8EB5AD726F0061000BE3EF6 /* Enums */ = {
510528
isa = PBXGroup;
511529
children = (
@@ -520,6 +538,8 @@
520538
B88BB45926F564D100747631 /* UserActivityLogType.swift */,
521539
B8190DF726FA388500E3994C /* SnippetType.swift */,
522540
B8CE1CAF26FD43B5004AD5D5 /* URLType.swift */,
541+
B8F9CA972700F7F40041CE3E /* DisabledCommandGroupButtonType.swift */,
542+
B8F9CA992700F80E0041CE3E /* UploadingStatus.swift */,
523543
);
524544
path = Enums;
525545
sourceTree = "<group>";
@@ -586,10 +606,10 @@
586606
name = SnippetsLibrary;
587607
packageProductDependencies = (
588608
B82B557326FFFB9900DE4766 /* Sourceful */,
589-
B82B557626FFFC7E00DE4766 /* FirebaseCrashlytics */,
590-
B82B557826FFFC7E00DE4766 /* FirebaseDatabase */,
591-
B82B557A26FFFC7E00DE4766 /* FirebaseRemoteConfig */,
592609
B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */,
610+
B8CFD8AD2700C884002A66FF /* FirebaseCrashlytics */,
611+
B8CFD8AF2700C884002A66FF /* FirebaseDatabase */,
612+
B8CFD8B12700C884002A66FF /* FirebaseRemoteConfig */,
593613
);
594614
productName = SnippetsLibrary;
595615
productReference = B82561B026E81D570040A67E /* SnippetsLibrary.app */;
@@ -664,8 +684,8 @@
664684
mainGroup = B82561A726E81D570040A67E;
665685
packageReferences = (
666686
B82B557226FFFB9900DE4766 /* XCRemoteSwiftPackageReference "Sourceful" */,
667-
B82B557526FFFC7E00DE4766 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
668687
B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */,
688+
B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
669689
);
670690
productRefGroup = B82561B126E81D570040A67E /* Products */;
671691
projectDirPath = "";
@@ -743,6 +763,7 @@
743763
B84BFEAB26F570CE007E5109 /* CrashlyticsError.swift in Sources */,
744764
B825621326E968380040A67E /* SnippetDetailsView.swift in Sources */,
745765
B8C549BC26FFA71300720E62 /* AppView.swift in Sources */,
766+
B8F9CA9A2700F80E0041CE3E /* UploadingStatus.swift in Sources */,
746767
B8EB5ADB26F0076C00BE3EF6 /* PlistCodingKeys.swift in Sources */,
747768
B82B5586270007C500DE4766 /* DatabaseReference+Timeout.swift in Sources */,
748769
B82B55822700014600DE4766 /* StartView+Equatable.swift in Sources */,
@@ -774,12 +795,14 @@
774795
B8B6DE8326EE608500E49C57 /* SnippetPlist.swift in Sources */,
775796
B82561F726E8C9840040A67E /* SearchBar.swift in Sources */,
776797
B8C549C426FFBA8600720E62 /* View+Skeletonable.swift in Sources */,
798+
B8F9CA982700F7F40041CE3E /* DisabledCommandGroupButtonType.swift in Sources */,
777799
B82561E926E8C7D60040A67E /* SnippetsLibraryView.swift in Sources */,
778800
B8EB5ADF26F00A4A00BE3EF6 /* SnippetDetailsViewType.swift in Sources */,
779801
B84BFEA926F57018007E5109 /* System.swift in Sources */,
780802
B8B6DE7B26ED9A3300E49C57 /* SnippetDetailsViewModel.swift in Sources */,
781803
B8CE1CB826FF965D004AD5D5 /* NetworkService.swift in Sources */,
782804
B8BEF5A926FFBF7E0098A778 /* ToastView.swift in Sources */,
805+
B8CFD8B42700D6A7002A66FF /* SnippetsUploadView.swift in Sources */,
783806
B84BFEA626F56A6A007E5109 /* CrashlyticsService.swift in Sources */,
784807
B8CE1CB026FD43B5004AD5D5 /* URLType.swift in Sources */,
785808
B82561D626E821F20040A67E /* StartViewRecentSnippetsView.swift in Sources */,
@@ -790,6 +813,7 @@
790813
B8EB5AD526F005CC00BE3EF6 /* CustomCodeTheme.swift in Sources */,
791814
B8BEF5AD26FFEB600098A778 /* EmptySnippetsListView.swift in Sources */,
792815
B8CE1CAE26FD431E004AD5D5 /* URLFactory.swift in Sources */,
816+
B8CFD8B72700D717002A66FF /* SnippetsUploadViewModel.swift in Sources */,
793817
B8B6DE8126EE546800E49C57 /* DependencyContainer.swift in Sources */,
794818
B8EB5AE826F00B4300BE3EF6 /* SnippetsParserServiceError.swift in Sources */,
795819
B8EB5AE426F00A7000BE3EF6 /* SnippetPlatform.swift in Sources */,
@@ -1139,20 +1163,20 @@
11391163
minimumVersion = 0.4.0;
11401164
};
11411165
};
1142-
B82B557526FFFC7E00DE4766 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
1166+
B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */ = {
11431167
isa = XCRemoteSwiftPackageReference;
1144-
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
1168+
repositoryURL = "https://github.com/serbats/SwiftUISkeleton.git";
11451169
requirement = {
11461170
kind = upToNextMajorVersion;
1147-
minimumVersion = 7.0.0;
1171+
minimumVersion = 1.0.0;
11481172
};
11491173
};
1150-
B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */ = {
1174+
B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
11511175
isa = XCRemoteSwiftPackageReference;
1152-
repositoryURL = "https://github.com/serbats/SwiftUISkeleton.git";
1176+
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
11531177
requirement = {
11541178
kind = upToNextMajorVersion;
1155-
minimumVersion = 1.0.0;
1179+
minimumVersion = 7.0.0;
11561180
};
11571181
};
11581182
/* End XCRemoteSwiftPackageReference section */
@@ -1163,26 +1187,26 @@
11631187
package = B82B557226FFFB9900DE4766 /* XCRemoteSwiftPackageReference "Sourceful" */;
11641188
productName = Sourceful;
11651189
};
1166-
B82B557626FFFC7E00DE4766 /* FirebaseCrashlytics */ = {
1190+
B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */ = {
1191+
isa = XCSwiftPackageProductDependency;
1192+
package = B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */;
1193+
productName = SwiftUISkeleton;
1194+
};
1195+
B8CFD8AD2700C884002A66FF /* FirebaseCrashlytics */ = {
11671196
isa = XCSwiftPackageProductDependency;
1168-
package = B82B557526FFFC7E00DE4766 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
1197+
package = B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
11691198
productName = FirebaseCrashlytics;
11701199
};
1171-
B82B557826FFFC7E00DE4766 /* FirebaseDatabase */ = {
1200+
B8CFD8AF2700C884002A66FF /* FirebaseDatabase */ = {
11721201
isa = XCSwiftPackageProductDependency;
1173-
package = B82B557526FFFC7E00DE4766 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
1202+
package = B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
11741203
productName = FirebaseDatabase;
11751204
};
1176-
B82B557A26FFFC7E00DE4766 /* FirebaseRemoteConfig */ = {
1205+
B8CFD8B12700C884002A66FF /* FirebaseRemoteConfig */ = {
11771206
isa = XCSwiftPackageProductDependency;
1178-
package = B82B557526FFFC7E00DE4766 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
1207+
package = B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
11791208
productName = FirebaseRemoteConfig;
11801209
};
1181-
B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */ = {
1182-
isa = XCSwiftPackageProductDependency;
1183-
package = B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */;
1184-
productName = SwiftUISkeleton;
1185-
};
11861210
/* End XCSwiftPackageProductDependency section */
11871211
};
11881212
rootObject = B82561A826E81D570040A67E /* Project object */;

SnippetsLibrary/Application/AppSheet.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ import SwiftUI
99

1010
enum AppSheet: Identifiable {
1111
case snippetDetails(_ snippet: Snippet, _ type: SnippetDetailsViewType)
12+
case snippetsUpload
1213

1314
var id: Int {
1415
switch self {
15-
case .snippetDetails:
16-
return 0
16+
case .snippetDetails: return 0
17+
case .snippetsUpload: return 1
1718
}
1819
}
1920
}

SnippetsLibrary/Application/SnippetsLibraryApp.swift

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,25 @@ struct SnippetsLibraryApp: App {
5353

5454
DisabledCommandGroupButton(
5555
text: "Open Snippets Library...",
56-
shouldBeDisabled: $shouldBeDisabled
56+
shouldBeDisabled: $shouldBeDisabled,
57+
type: .openLibrary
5758
) {
5859
activeAppView = .snippetsLibrary(nil)
5960
}
61+
62+
Divider()
63+
64+
DisabledCommandGroupButton(
65+
text: "Upload All Snippets To Xcode...",
66+
shouldBeDisabled: $shouldBeDisabled,
67+
type: .uploadSnippets
68+
) {
69+
activeAppSheet = .snippetsUpload
70+
}
71+
.keyboardShortcut(
72+
"u",
73+
modifiers: [.command, .control, .option]
74+
)
6075
}
6176

6277
CommandGroup(replacing: .help) {

SnippetsLibrary/Info.plist

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
44
<dict>
5+
<key>NSHumanReadableCopyright</key>
6+
<string>Apache 2.0 License. All trademarks are protected.</string>
57
<key>CFBundleDevelopmentRegion</key>
68
<string>$(DEVELOPMENT_LANGUAGE)</string>
79
<key>CFBundleExecutable</key>

SnippetsLibrary/Modules/SnippetsLibrary/SnippetsLibraryView.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ struct SnippetsLibraryView: View {
5656
activeAppView: .constant(nil)
5757
)
5858
)
59+
case .snippetsUpload:
60+
SnippetsUploadView(viewModel: SnippetsUploadViewModel(snippets: viewModel.snippets))
5961
}
6062
}
6163
.makeDisplayed(

0 commit comments

Comments
 (0)