@@ -34,28 +34,6 @@ interface PageContext {
34
34
sourcePath : string
35
35
}
36
36
37
- export function buildLanguagesMenu ( pageContext : PageContext ) {
38
- return (
39
- < div className = "language-boxes" >
40
- { pageContext . languageList
41
- ?. map ( language => language ?. name ! )
42
- . filter ( Boolean )
43
- . map ( languageName => {
44
- const slug = toSlug ( languageName )
45
- return (
46
- < AnchorLink
47
- to = { `#${ slug } ` }
48
- className = "article language-box"
49
- title = { languageName }
50
- >
51
- < span className = "article_title" > { languageName } </ span >
52
- </ AnchorLink >
53
- )
54
- } ) }
55
- </ div >
56
- )
57
- }
58
-
59
37
export function buildLibraryContent (
60
38
library : any ,
61
39
pageContext : Queries . TagPageQueryVariables
@@ -167,7 +145,10 @@ export function buildLibraryContent(
167
145
)
168
146
}
169
147
170
- export function buildLibraryList ( libraries : readonly any [ ] , pageContext : any ) {
148
+ export function buildLibraryList (
149
+ libraries : Library [ ] ,
150
+ pageContext : any
151
+ ) {
171
152
return (
172
153
< div className = "library-list" >
173
154
{ libraries . map ( library => buildLibraryContent ( library , pageContext ) ) }
@@ -176,13 +157,13 @@ export function buildLibraryList(libraries: readonly any[], pageContext: any) {
176
157
}
177
158
178
159
export function buildLibraryCategoryContent (
179
- libraryCategories : any [ ] ,
180
- libraryCategoryName : string ,
160
+ libraryCategories : { Client : Library [ ] ; Server : Library [ ] } ,
161
+ libraryCategoryName : 'Client' | 'Server' ,
181
162
slug : string ,
182
163
pageContext : any
183
164
) {
184
165
if ( libraryCategoryName in libraryCategories ) {
185
- const libraries = libraryCategories [ libraryCategoryName as any ]
166
+ const libraries = libraryCategories [ libraryCategoryName ]
186
167
return (
187
168
< div id = { slug } className = "library-category" >
188
169
< h3 className = "library-category-title" > { libraryCategoryName } </ h3 >
@@ -198,57 +179,6 @@ const categorySlugMap = [
198
179
[ "Tools" , toSlug ( "Tools" ) ] ,
199
180
]
200
181
201
- export function buildLanguagesContent ( pageContext : any ) {
202
- return (
203
- < div className = "languages-content" >
204
- { pageContext . languageList . map ( languageObj => {
205
- const languageName = languageObj . name
206
- const libraryCategories = languageObj . categoryMap
207
- const filteredCategorySlugMap = categorySlugMap . filter (
208
- ( [ libraryCategoryName ] ) =>
209
- libraryCategories [ libraryCategoryName as any ] ?. length
210
- )
211
- const languageSlug = toSlug ( languageName )
212
- return (
213
- < div className = "language-content" id = { languageSlug } >
214
- < div className = "language-header" >
215
- < h2 className = "language-title" > { languageName } </ h2 >
216
- { filteredCategorySlugMap . length > 1 && (
217
- < p className = "language-categories-permalinks" >
218
- { filteredCategorySlugMap . map (
219
- ( [ libraryCategoryName , categorySlug ] , i ) => (
220
- < Fragment key = { libraryCategoryName } >
221
- < AnchorLink
222
- title = { `${ languageSlug } ${ categorySlug } ` }
223
- className = "language-category-permalink"
224
- to = { `#${ languageSlug } -${ categorySlug } ` }
225
- >
226
- { libraryCategoryName }
227
- </ AnchorLink >
228
- { i < filteredCategorySlugMap . length - 1 && " / " }
229
- </ Fragment >
230
- )
231
- ) }
232
- </ p >
233
- ) }
234
- </ div >
235
- < div className = "library-categories" >
236
- { filteredCategorySlugMap . map ( ( [ categoryName , categorySlug ] ) =>
237
- buildLibraryCategoryContent (
238
- libraryCategories ,
239
- categoryName ,
240
- `${ languageSlug } -${ categorySlug } ` ,
241
- pageContext
242
- )
243
- ) }
244
- </ div >
245
- </ div >
246
- )
247
- } ) }
248
- </ div >
249
- )
250
- }
251
-
252
182
export default ( { pageContext } : PageProps < { } , PageContext > ) => {
253
183
return (
254
184
< Layout className = "code" pageContext = { pageContext } >
@@ -286,8 +216,73 @@ export default ({ pageContext }: PageProps<{}, PageContext>) => {
286
216
< p id = "language-support" className = "languages-title" >
287
217
Language Support
288
218
</ p >
289
- { buildLanguagesMenu ( pageContext ) }
290
- { buildLanguagesContent ( pageContext ) }
219
+ < div className = "language-boxes" >
220
+ { pageContext . languageList
221
+ ?. map ( language => language ?. name ! )
222
+ . filter ( Boolean )
223
+ . map ( languageName => {
224
+ const slug = toSlug ( languageName )
225
+ return (
226
+ < AnchorLink
227
+ to = { `#${ slug } ` }
228
+ className = "article language-box"
229
+ title = { languageName }
230
+ >
231
+ < span className = "article_title" > { languageName } </ span >
232
+ </ AnchorLink >
233
+ )
234
+ } ) }
235
+ </ div >
236
+ < div className = "languages-content" >
237
+ { pageContext . languageList . map ( lang => {
238
+ const languageName = lang . name
239
+ const libraryCategories = lang . categoryMap
240
+ const filteredCategorySlugMap = categorySlugMap . filter (
241
+ ( [ libraryCategoryName ] ) =>
242
+ libraryCategories [
243
+ libraryCategoryName as "Client" | "Server"
244
+ ] ?. length
245
+ )
246
+ const languageSlug = toSlug ( languageName )
247
+ return (
248
+ < div className = "language-content" id = { languageSlug } >
249
+ < div className = "language-header" >
250
+ < h2 className = "language-title" > { languageName } </ h2 >
251
+ { filteredCategorySlugMap . length > 1 && (
252
+ < p className = "language-categories-permalinks" >
253
+ { filteredCategorySlugMap . map (
254
+ ( [ libraryCategoryName , categorySlug ] , i ) => (
255
+ < Fragment key = { libraryCategoryName } >
256
+ < AnchorLink
257
+ title = { `${ languageSlug } ${ categorySlug } ` }
258
+ className = "language-category-permalink"
259
+ to = { `#${ languageSlug } -${ categorySlug } ` }
260
+ >
261
+ { libraryCategoryName }
262
+ </ AnchorLink >
263
+ { i < filteredCategorySlugMap . length - 1 &&
264
+ " / " }
265
+ </ Fragment >
266
+ )
267
+ ) }
268
+ </ p >
269
+ ) }
270
+ </ div >
271
+ < div className = "library-categories" >
272
+ { filteredCategorySlugMap . map (
273
+ ( [ categoryName , categorySlug ] ) =>
274
+ buildLibraryCategoryContent (
275
+ libraryCategories ,
276
+ categoryName ,
277
+ `${ languageSlug } -${ categorySlug } ` ,
278
+ pageContext
279
+ )
280
+ ) }
281
+ </ div >
282
+ </ div >
283
+ )
284
+ } ) }
285
+ </ div >
291
286
< h2 >
292
287
< a className = "anchor" id = "generic-tools" > </ a >
293
288
Tools
0 commit comments