@@ -40,6 +40,7 @@ export default function Libraries({
40
40
searchParams ?: {
41
41
programming_language ?: string ;
42
42
algorithm ?: keyof LibraryModel [ "support" ] ;
43
+ support ?: keyof LibraryModel [ "support" ]
43
44
} ;
44
45
} ) {
45
46
const librariesDictionary = getLibrariesDictionary ( languageCode ) ;
@@ -49,10 +50,15 @@ export default function Libraries({
49
50
encoding : "utf-8" ,
50
51
} ) ;
51
52
52
- const programmingLanguage = searchParams ?. programming_language ?? "" ;
53
+ const programmingLanguage = searchParams ?. programming_language ;
53
54
const algorithm = searchParams ?. algorithm ;
54
- const query = programmingLanguage !== "" ? programmingLanguage : algorithm ?? "" ;
55
+ const support = searchParams ?. support ;
56
+ const query = programmingLanguage ?? algorithm ?? support ?? "" ;
55
57
const dictionary = JSON . parse ( source ) as LibraryDictionaryModel ;
58
+ const allOptions = Object . keys ( Object . values ( dictionary ) [ 0 ] . libs [ 0 ] . support ) ;
59
+ const indexAlgorithmStart = allOptions . findIndex (
60
+ ( option ) => option == "hs256"
61
+ ) ;
56
62
57
63
const categoryOptions : { id : string ; name : string } [ ] = Object . values (
58
64
dictionary
@@ -61,21 +67,30 @@ export default function Libraries({
61
67
name : library . name ,
62
68
} ) ) ;
63
69
64
- const algorithmOptions : { value : string ; label : string } [ ] = Object . keys ( Object . values (
65
- dictionary
66
- ) [ 0 ] . libs [ 0 ] . support ) . map ( key => ( {
67
- value : key ,
68
- label : key . toUpperCase ( )
69
- } ) )
70
+ const supportOptions : { value : string ; label : string } [ ] = allOptions
71
+ . slice ( 0 , indexAlgorithmStart )
72
+ . map ( ( key ) => ( {
73
+ value : key ,
74
+ label : key . toUpperCase ( ) ,
75
+ } ) ) ;
70
76
71
- const categories : LibraryCategoryModel [ ] = dictionary [ programmingLanguage ]
77
+ const algorithmOptions : { value : string ; label : string } [ ] = allOptions
78
+ . slice ( indexAlgorithmStart )
79
+ . map ( ( key ) => ( {
80
+ value : key ,
81
+ label : key . toUpperCase ( ) ,
82
+ } ) ) ;
83
+
84
+ const categories : LibraryCategoryModel [ ] = programmingLanguage
72
85
? [ dictionary [ programmingLanguage ] ]
73
86
: Object . values ( dictionary ) ;
74
87
75
- const filteredCategories = algorithm
88
+ const categoryToFilter = algorithm ?? support
89
+
90
+ const filteredCategories = categoryToFilter
76
91
? categories . map ( ( category ) => {
77
92
const filteredLibs = category . libs . filter (
78
- ( lib ) => lib . support [ algorithm ]
93
+ ( lib ) => lib . support [ categoryToFilter ]
79
94
) ;
80
95
return {
81
96
...category ,
@@ -190,6 +205,7 @@ export default function Libraries({
190
205
query = { query || librariesDictionary . filterPicker . defaultValue . value }
191
206
categoryOptions = { categoryOptions }
192
207
algorithmOptions = { algorithmOptions }
208
+ supportOptions = { supportOptions }
193
209
dictionary = { librariesDictionary }
194
210
/>
195
211
< LibraryResultsComponent
0 commit comments