1
1
import { Footer } from '~/components/Footer'
2
2
import { partners } from '~/utils/partners'
3
3
import { seo } from '~/utils/seo'
4
- import { Link , useNavigate } from '@tanstack/react-router'
5
4
import { z } from 'zod'
6
5
import { Library } from '~/libraries'
7
6
import { useState } from 'react'
8
7
import * as React from 'react'
9
8
import { MdClose , MdFilterList } from 'react-icons/md'
9
+ import { startProject } from '~/libraries/start'
10
+ import { routerProject } from '~/libraries/router'
11
+ import { queryProject } from '~/libraries/query'
12
+ import { tableProject } from '~/libraries/table'
13
+ import { configProject } from '~/libraries/config'
14
+ import { dbProject } from '~/libraries/db'
15
+ import { formProject } from '~/libraries/form'
16
+ import { pacerProject } from '~/libraries/pacer'
17
+ import { rangerProject } from '~/libraries/ranger'
18
+ import { storeProject } from '~/libraries/store'
19
+ import { virtualProject } from '~/libraries/virtual'
20
+
21
+ const availableLibraries = [
22
+ startProject ,
23
+ routerProject ,
24
+ queryProject ,
25
+ tableProject ,
26
+ formProject ,
27
+ virtualProject ,
28
+ rangerProject ,
29
+ storeProject ,
30
+ pacerProject ,
31
+ dbProject ,
32
+ configProject ,
33
+ ]
10
34
11
35
const librarySchema = z . enum ( [
12
36
'start' ,
@@ -21,6 +45,7 @@ const librarySchema = z.enum([
21
45
'db' ,
22
46
'config' ,
23
47
'react-charts' ,
48
+ 'devtools' ,
24
49
'create-tsrouter-app' ,
25
50
] )
26
51
@@ -48,7 +73,6 @@ interface FilterProps {
48
73
onStatusChange : ( status : 'active' | 'inactive' | undefined ) => void
49
74
onClearAll : ( ) => void
50
75
}
51
-
52
76
function PartnersFilter ( {
53
77
selectedLibraries,
54
78
selectedStatus,
@@ -58,20 +82,6 @@ function PartnersFilter({
58
82
} : FilterProps ) {
59
83
const [ isOpen , setIsOpen ] = useState ( false )
60
84
61
- const availableLibraries : Array < { id : Library [ 'id' ] ; name : string } > = [
62
- { id : 'start' , name : 'TanStack Start' } ,
63
- { id : 'router' , name : 'TanStack Router' } ,
64
- { id : 'query' , name : 'TanStack Query' } ,
65
- { id : 'table' , name : 'TanStack Table' } ,
66
- { id : 'form' , name : 'TanStack Form' } ,
67
- { id : 'virtual' , name : 'TanStack Virtual' } ,
68
- { id : 'ranger' , name : 'TanStack Ranger' } ,
69
- { id : 'store' , name : 'TanStack Store' } ,
70
- { id : 'pacer' , name : 'TanStack Pacer' } ,
71
- { id : 'db' , name : 'TanStack DB' } ,
72
- { id : 'config' , name : 'TanStack Config' } ,
73
- ]
74
-
75
85
const toggleLibrary = ( libraryId : Library [ 'id' ] ) => {
76
86
if ( ! selectedLibraries ) {
77
87
onLibrariesChange ( [ libraryId ] )
@@ -196,14 +206,16 @@ function PartnersFilter({
196
206
const isSelected =
197
207
selectedLibraries ?. includes ( library . id ) || false
198
208
209
+ const bgStyle = library . bgStyle ?? 'bg-gray-500'
210
+
199
211
return (
200
212
< button
201
213
key = { library . id }
202
214
onClick = { ( ) => toggleLibrary ( library . id ) }
203
215
className = { `text-left px-3 py-2 rounded-md text-sm transition-colors ${
204
216
isSelected
205
- ? 'bg-blue-500 text-white'
206
- : 'bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600'
217
+ ? ` ${ bgStyle } text-white`
218
+ : ` ${ bgStyle } /30 text-gray-700 dark:text-gray-300 hover:${ bgStyle } /40`
207
219
} `}
208
220
>
209
221
{ library . name }
@@ -287,10 +299,9 @@ export default function RouteComp() {
287
299
const hasResults = filteredPartners . length > 0
288
300
const isShowingPrevious = search . status === 'inactive'
289
301
const isShowingActive = search . status === 'active'
290
- const isShowingAll = ! search . status
291
302
292
303
return (
293
- < div className = "flex flex-col max- w-full min-h-screen gap-12 p-4 md:p-8 pb-0" >
304
+ < div className = "flex flex-col w-full min-h-screen gap-12 p-4 md:p-8 pb-0" >
294
305
< div className = "flex-1 space-y-16 w-full max-w-4xl mx-auto" >
295
306
< header className = "text-center pt-8" >
296
307
< h1 className = "text-center text-3xl leading-8 font-extrabold tracking-tight sm:text-4xl sm:leading-10 lg:leading-none mb-6" >
0 commit comments