Skip to content

Commit b24fdf6

Browse files
authored
Merge pull request #19 from tryboxx/SNLB-18/feature/snippetsFiltering
[SNLB-18] Create filtering for snippet list
2 parents 292db91 + efbcb66 commit b24fdf6

File tree

20 files changed

+243
-88
lines changed

20 files changed

+243
-88
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
SnippetsLibrary is a helpful tool for SwiftUI developers to help with their daily coding life. SnippetsLibrary contains all the needed code snippets for you to view, edit, or add more and more. This will make your daily work easier and faster.
1717

18-
![SnippetsLibrary](public/images/showcase.png)
18+
![SnippetsLibrary](public/images/app_preview.png)
1919

2020
Table of Contents:
2121

SnippetsLibrary.xcodeproj/project.pbxproj

Lines changed: 45 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,15 @@
3838
B82561FC26E8CA040040A67E /* SnippetFileCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82561F926E8C9FF0040A67E /* SnippetFileCardView.swift */; };
3939
B825620226E8D14A0040A67E /* NSTableView+BackgroundColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825620126E8D14A0040A67E /* NSTableView+BackgroundColor.swift */; };
4040
B825621326E968380040A67E /* SnippetDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B825621226E968380040A67E /* SnippetDetailsView.swift */; };
41-
B82B557426FFFB9900DE4766 /* Sourceful in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557326FFFB9900DE4766 /* Sourceful */; };
42-
B82B557E26FFFCD500DE4766 /* SwiftUISkeleton in Frameworks */ = {isa = PBXBuildFile; productRef = B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */; };
4341
B82B55802700011000DE4766 /* SnippetsLibraryView+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B557F2700011000DE4766 /* SnippetsLibraryView+Equatable.swift */; };
4442
B82B55822700014600DE4766 /* StartView+Equatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B55812700014600DE4766 /* StartView+Equatable.swift */; };
4543
B82B5586270007C500DE4766 /* DatabaseReference+Timeout.swift in Sources */ = {isa = PBXBuildFile; fileRef = B82B5585270007C500DE4766 /* DatabaseReference+Timeout.swift */; };
4644
B84BFEA626F56A6A007E5109 /* CrashlyticsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B84BFEA526F56A6A007E5109 /* CrashlyticsService.swift */; };
4745
B84BFEA926F57018007E5109 /* System.swift in Sources */ = {isa = PBXBuildFile; fileRef = B84BFEA826F57018007E5109 /* System.swift */; };
4846
B84BFEAB26F570CE007E5109 /* CrashlyticsError.swift in Sources */ = {isa = PBXBuildFile; fileRef = B84BFEAA26F570CE007E5109 /* CrashlyticsError.swift */; };
47+
B8546F38270771020043A99F /* SnippetCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8546F37270771020043A99F /* SnippetCategory.swift */; };
48+
B8546F3A270773FE0043A99F /* SnippetsLibraryListFilterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8546F39270773FE0043A99F /* SnippetsLibraryListFilterView.swift */; };
49+
B8546F3C27077C310043A99F /* SnippetsLibraryListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8546F3B27077C310043A99F /* SnippetsLibraryListViewModel.swift */; };
4950
B856D65526F2A29600F60D09 /* DatabaseService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B856D65426F2A29600F60D09 /* DatabaseService.swift */; };
5051
B85AC92E2702153E00A008A6 /* AppMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85AC92D2702153E00A008A6 /* AppMenu.swift */; };
5152
B85AC9302702158300A008A6 /* AppDelegate+NSMenuDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85AC92F2702158300A008A6 /* AppDelegate+NSMenuDelegate.swift */; };
@@ -62,6 +63,10 @@
6263
B88D7A6326F7A5C000B114F6 /* SnippetPlist+Dictonary.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88D7A6226F7A5C000B114F6 /* SnippetPlist+Dictonary.swift */; };
6364
B88D7A6C26F7FB4E00B114F6 /* SnippetsLibraryUnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88D7A6B26F7FB4E00B114F6 /* SnippetsLibraryUnitTests.swift */; };
6465
B88D7A7A26F7FB8200B114F6 /* SnippetsLibraryUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88D7A7926F7FB8200B114F6 /* SnippetsLibraryUITests.swift */; };
66+
B89775D327037F1C00E4B706 /* Sourceful in Frameworks */ = {isa = PBXBuildFile; productRef = B89775D227037F1C00E4B706 /* Sourceful */; };
67+
B89775D62703809900E4B706 /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = B89775D52703809900E4B706 /* FirebaseCrashlytics */; };
68+
B89775D82703809900E4B706 /* FirebaseDatabase in Frameworks */ = {isa = PBXBuildFile; productRef = B89775D72703809900E4B706 /* FirebaseDatabase */; };
69+
B89775DB270380C500E4B706 /* SwiftUISkeleton in Frameworks */ = {isa = PBXBuildFile; productRef = B89775DA270380C500E4B706 /* SwiftUISkeleton */; };
6570
B8B6DE7926ED8F5500E49C57 /* TextFieldStyleModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B6DE7826ED8F5500E49C57 /* TextFieldStyleModifier.swift */; };
6671
B8B6DE7B26ED9A3300E49C57 /* SnippetDetailsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B6DE7A26ED9A3300E49C57 /* SnippetDetailsViewModel.swift */; };
6772
B8B6DE7E26EE4BB500E49C57 /* SnippetsParserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8B6DE7D26EE4BB500E49C57 /* SnippetsParserService.swift */; };
@@ -78,9 +83,6 @@
7883
B8CE1CAE26FD431E004AD5D5 /* URLFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CE1CAD26FD431E004AD5D5 /* URLFactory.swift */; };
7984
B8CE1CB026FD43B5004AD5D5 /* URLType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CE1CAF26FD43B5004AD5D5 /* URLType.swift */; };
8085
B8CE1CB826FF965D004AD5D5 /* NetworkService.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CE1CB726FF965D004AD5D5 /* NetworkService.swift */; };
81-
B8CFD8AE2700C884002A66FF /* FirebaseCrashlytics in Frameworks */ = {isa = PBXBuildFile; productRef = B8CFD8AD2700C884002A66FF /* FirebaseCrashlytics */; };
82-
B8CFD8B02700C884002A66FF /* FirebaseDatabase in Frameworks */ = {isa = PBXBuildFile; productRef = B8CFD8AF2700C884002A66FF /* FirebaseDatabase */; };
83-
B8CFD8B22700C884002A66FF /* FirebaseRemoteConfig in Frameworks */ = {isa = PBXBuildFile; productRef = B8CFD8B12700C884002A66FF /* FirebaseRemoteConfig */; };
8486
B8CFD8B42700D6A7002A66FF /* SnippetsUploadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CFD8B32700D6A7002A66FF /* SnippetsUploadView.swift */; };
8587
B8CFD8B72700D717002A66FF /* SnippetsUploadViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CFD8B62700D717002A66FF /* SnippetsUploadViewModel.swift */; };
8688
B8EB5AD526F005CC00BE3EF6 /* CustomCodeTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EB5AD426F005CC00BE3EF6 /* CustomCodeTheme.swift */; };
@@ -159,6 +161,9 @@
159161
B84BFEA526F56A6A007E5109 /* CrashlyticsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrashlyticsService.swift; sourceTree = "<group>"; };
160162
B84BFEA826F57018007E5109 /* System.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = System.swift; sourceTree = "<group>"; };
161163
B84BFEAA26F570CE007E5109 /* CrashlyticsError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrashlyticsError.swift; sourceTree = "<group>"; };
164+
B8546F37270771020043A99F /* SnippetCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetCategory.swift; sourceTree = "<group>"; };
165+
B8546F39270773FE0043A99F /* SnippetsLibraryListFilterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetsLibraryListFilterView.swift; sourceTree = "<group>"; };
166+
B8546F3B27077C310043A99F /* SnippetsLibraryListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnippetsLibraryListViewModel.swift; sourceTree = "<group>"; };
162167
B856D65426F2A29600F60D09 /* DatabaseService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatabaseService.swift; sourceTree = "<group>"; };
163168
B85AC92D2702153E00A008A6 /* AppMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMenu.swift; sourceTree = "<group>"; };
164169
B85AC92F2702158300A008A6 /* AppDelegate+NSMenuDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppDelegate+NSMenuDelegate.swift"; sourceTree = "<group>"; };
@@ -219,11 +224,10 @@
219224
isa = PBXFrameworksBuildPhase;
220225
buildActionMask = 2147483647;
221226
files = (
222-
B8CFD8AE2700C884002A66FF /* FirebaseCrashlytics in Frameworks */,
223-
B82B557426FFFB9900DE4766 /* Sourceful in Frameworks */,
224-
B8CFD8B02700C884002A66FF /* FirebaseDatabase in Frameworks */,
225-
B82B557E26FFFCD500DE4766 /* SwiftUISkeleton in Frameworks */,
226-
B8CFD8B22700C884002A66FF /* FirebaseRemoteConfig in Frameworks */,
227+
B89775D82703809900E4B706 /* FirebaseDatabase in Frameworks */,
228+
B89775D327037F1C00E4B706 /* Sourceful in Frameworks */,
229+
B89775D62703809900E4B706 /* FirebaseCrashlytics in Frameworks */,
230+
B89775DB270380C500E4B706 /* SwiftUISkeleton in Frameworks */,
227231
);
228232
runOnlyForDeploymentPostprocessing = 0;
229233
};
@@ -585,6 +589,7 @@
585589
B8F9CA972700F7F40041CE3E /* DisabledCommandGroupButtonType.swift */,
586590
B8F9CA992700F80E0041CE3E /* UploadingStatus.swift */,
587591
B81B087A2702468C00E59F86 /* FileStatusCardType.swift */,
592+
B8546F37270771020043A99F /* SnippetCategory.swift */,
588593
);
589594
path = Enums;
590595
sourceTree = "<group>";
@@ -602,6 +607,8 @@
602607
children = (
603608
B82561EF26E8C8C20040A67E /* SnippetsLibraryListView.swift */,
604609
B85D1A9C26FA8EA50053FF3C /* SnippetsLibraryListSectionView.swift */,
610+
B8546F39270773FE0043A99F /* SnippetsLibraryListFilterView.swift */,
611+
B8546F3B27077C310043A99F /* SnippetsLibraryListViewModel.swift */,
605612
);
606613
path = SnippetLibraryList;
607614
sourceTree = "<group>";
@@ -650,11 +657,10 @@
650657
);
651658
name = SnippetsLibrary;
652659
packageProductDependencies = (
653-
B82B557326FFFB9900DE4766 /* Sourceful */,
654-
B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */,
655-
B8CFD8AD2700C884002A66FF /* FirebaseCrashlytics */,
656-
B8CFD8AF2700C884002A66FF /* FirebaseDatabase */,
657-
B8CFD8B12700C884002A66FF /* FirebaseRemoteConfig */,
660+
B89775D227037F1C00E4B706 /* Sourceful */,
661+
B89775D52703809900E4B706 /* FirebaseCrashlytics */,
662+
B89775D72703809900E4B706 /* FirebaseDatabase */,
663+
B89775DA270380C500E4B706 /* SwiftUISkeleton */,
658664
);
659665
productName = SnippetsLibrary;
660666
productReference = B82561B026E81D570040A67E /* Snippets Library.app */;
@@ -728,9 +734,9 @@
728734
);
729735
mainGroup = B82561A726E81D570040A67E;
730736
packageReferences = (
731-
B82B557226FFFB9900DE4766 /* XCRemoteSwiftPackageReference "Sourceful" */,
732-
B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */,
733-
B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
737+
B89775D127037F1C00E4B706 /* XCRemoteSwiftPackageReference "Sourceful" */,
738+
B89775D42703809900E4B706 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */,
739+
B89775D9270380C500E4B706 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */,
734740
);
735741
productRefGroup = B82561B126E81D570040A67E /* Products */;
736742
projectDirPath = "";
@@ -846,9 +852,11 @@
846852
B8C549C426FFBA8600720E62 /* View+Skeletonable.swift in Sources */,
847853
B8F9CA982700F7F40041CE3E /* DisabledCommandGroupButtonType.swift in Sources */,
848854
B85AC92E2702153E00A008A6 /* AppMenu.swift in Sources */,
855+
B8546F38270771020043A99F /* SnippetCategory.swift in Sources */,
849856
B82561E926E8C7D60040A67E /* SnippetsLibraryView.swift in Sources */,
850857
B85AC934270215ED00A008A6 /* StatusViewModel.swift in Sources */,
851858
B85AC9302702158300A008A6 /* AppDelegate+NSMenuDelegate.swift in Sources */,
859+
B8546F3A270773FE0043A99F /* SnippetsLibraryListFilterView.swift in Sources */,
852860
B8EB5ADF26F00A4A00BE3EF6 /* SnippetDetailsViewType.swift in Sources */,
853861
B84BFEA926F57018007E5109 /* System.swift in Sources */,
854862
B8B6DE7B26ED9A3300E49C57 /* SnippetDetailsViewModel.swift in Sources */,
@@ -875,6 +883,7 @@
875883
B82561B426E81D570040A67E /* SnippetsLibraryApp.swift in Sources */,
876884
B88BB45626F55DDB00747631 /* LogsService.swift in Sources */,
877885
B88D7A6326F7A5C000B114F6 /* SnippetPlist+Dictonary.swift in Sources */,
886+
B8546F3C27077C310043A99F /* SnippetsLibraryListViewModel.swift in Sources */,
878887
B8CE1CAB26FD4193004AD5D5 /* DisabledCommandGroupButton.swift in Sources */,
879888
B85D1A9D26FA8EA50053FF3C /* SnippetsLibraryListSectionView.swift in Sources */,
880889
B82561E626E8C5490040A67E /* Mocks.swift in Sources */,
@@ -1037,7 +1046,7 @@
10371046
CODE_SIGN_IDENTITY = "Apple Development";
10381047
CODE_SIGN_STYLE = Automatic;
10391048
COMBINE_HIDPI_IMAGES = YES;
1040-
CURRENT_PROJECT_VERSION = 11;
1049+
CURRENT_PROJECT_VERSION = 12;
10411050
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
10421051
DEVELOPMENT_ASSET_PATHS = "\"SnippetsLibrary/Preview Content\"";
10431052
DEVELOPMENT_TEAM = 7WLUFJRJ56;
@@ -1066,7 +1075,7 @@
10661075
CODE_SIGN_IDENTITY = "Apple Development";
10671076
CODE_SIGN_STYLE = Automatic;
10681077
COMBINE_HIDPI_IMAGES = YES;
1069-
CURRENT_PROJECT_VERSION = 11;
1078+
CURRENT_PROJECT_VERSION = 12;
10701079
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
10711080
DEVELOPMENT_ASSET_PATHS = "\"SnippetsLibrary/Preview Content\"";
10721081
DEVELOPMENT_TEAM = 7WLUFJRJ56;
@@ -1209,57 +1218,52 @@
12091218
/* End XCConfigurationList section */
12101219

12111220
/* Begin XCRemoteSwiftPackageReference section */
1212-
B82B557226FFFB9900DE4766 /* XCRemoteSwiftPackageReference "Sourceful" */ = {
1221+
B89775D127037F1C00E4B706 /* XCRemoteSwiftPackageReference "Sourceful" */ = {
12131222
isa = XCRemoteSwiftPackageReference;
12141223
repositoryURL = "https://github.com/twostraws/Sourceful.git";
12151224
requirement = {
12161225
kind = upToNextMajorVersion;
12171226
minimumVersion = 0.4.0;
12181227
};
12191228
};
1220-
B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */ = {
1229+
B89775D42703809900E4B706 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
12211230
isa = XCRemoteSwiftPackageReference;
1222-
repositoryURL = "https://github.com/serbats/SwiftUISkeleton.git";
1231+
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
12231232
requirement = {
12241233
kind = upToNextMajorVersion;
1225-
minimumVersion = 1.0.0;
1234+
minimumVersion = 7.0.0;
12261235
};
12271236
};
1228-
B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */ = {
1237+
B89775D9270380C500E4B706 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */ = {
12291238
isa = XCRemoteSwiftPackageReference;
1230-
repositoryURL = "https://github.com/firebase/firebase-ios-sdk.git";
1239+
repositoryURL = "https://github.com/serbats/SwiftUISkeleton.git";
12311240
requirement = {
12321241
kind = upToNextMajorVersion;
1233-
minimumVersion = 7.0.0;
1242+
minimumVersion = 1.0.0;
12341243
};
12351244
};
12361245
/* End XCRemoteSwiftPackageReference section */
12371246

12381247
/* Begin XCSwiftPackageProductDependency section */
1239-
B82B557326FFFB9900DE4766 /* Sourceful */ = {
1248+
B89775D227037F1C00E4B706 /* Sourceful */ = {
12401249
isa = XCSwiftPackageProductDependency;
1241-
package = B82B557226FFFB9900DE4766 /* XCRemoteSwiftPackageReference "Sourceful" */;
1250+
package = B89775D127037F1C00E4B706 /* XCRemoteSwiftPackageReference "Sourceful" */;
12421251
productName = Sourceful;
12431252
};
1244-
B82B557D26FFFCD500DE4766 /* SwiftUISkeleton */ = {
1245-
isa = XCSwiftPackageProductDependency;
1246-
package = B82B557C26FFFCD500DE4766 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */;
1247-
productName = SwiftUISkeleton;
1248-
};
1249-
B8CFD8AD2700C884002A66FF /* FirebaseCrashlytics */ = {
1253+
B89775D52703809900E4B706 /* FirebaseCrashlytics */ = {
12501254
isa = XCSwiftPackageProductDependency;
1251-
package = B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
1255+
package = B89775D42703809900E4B706 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
12521256
productName = FirebaseCrashlytics;
12531257
};
1254-
B8CFD8AF2700C884002A66FF /* FirebaseDatabase */ = {
1258+
B89775D72703809900E4B706 /* FirebaseDatabase */ = {
12551259
isa = XCSwiftPackageProductDependency;
1256-
package = B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
1260+
package = B89775D42703809900E4B706 /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
12571261
productName = FirebaseDatabase;
12581262
};
1259-
B8CFD8B12700C884002A66FF /* FirebaseRemoteConfig */ = {
1263+
B89775DA270380C500E4B706 /* SwiftUISkeleton */ = {
12601264
isa = XCSwiftPackageProductDependency;
1261-
package = B8CFD8AC2700C884002A66FF /* XCRemoteSwiftPackageReference "firebase-ios-sdk" */;
1262-
productName = FirebaseRemoteConfig;
1265+
package = B89775D9270380C500E4B706 /* XCRemoteSwiftPackageReference "SwiftUISkeleton" */;
1266+
productName = SwiftUISkeleton;
12631267
};
12641268
/* End XCSwiftPackageProductDependency section */
12651269
};
-30.3 KB
Loading
-162 Bytes
Loading
-98 Bytes
Loading
-276 Bytes
Loading
-276 Bytes
Loading
14 Bytes
Loading
14 Bytes
Loading
-2.77 KB
Loading

0 commit comments

Comments
 (0)