@@ -22,6 +22,7 @@ export function ClustersList() {
2222 const [ savedClusterState ] = useLocalStorage < unknown | null > ( LocalStorageKeys . SavedClusterState , null ) ;
2323
2424 const [ filterByNameValue , setFilterByNameValue ] = useState ( '' ) ;
25+ const clearFilterByNameValue = useCallback ( ( ) => setFilterByNameValue ( '' ) , [ ] ) ;
2526
2627 const onFilterByNameChanged = useCallback ( ( e : FormEvent < HTMLInputElement > ) => {
2728 setFilterByNameValue ( e . currentTarget . value ?. toLowerCase ( ) || '' ) ;
@@ -34,7 +35,7 @@ export function ClustersList() {
3435 . filter ( curryFilterByFuzzySearch < Cluster > ( [ 'id' , 'name' ] , filterByNameValue ) )
3536 . sort ( byClusterStatusThenName ) || [ ] , [ filterByNameValue , orgInfo ?. clusters ] ) ;
3637
37- if ( ! clusters . length && create ) {
38+ if ( orgInfo ?. clusters && ! orgInfo . clusters . length && create ) {
3839 return < UpsertCluster /> ;
3940 }
4041 if ( savedClusterState ) {
@@ -70,36 +71,18 @@ export function ClustersList() {
7071 ) : null }
7172 </ SubNavMenu >
7273 < section className = "mt-40 md:mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-theme(spacing.32))]" >
73- { clusters . length ? (
74- < div className = "grid grid-cols-1 gap-4 md:grid-cols-12 mb-4" >
75- { clusters . map ( ( cluster ) => (
76- < div key = { cluster . id } className = "cols-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2" >
77- < ClusterCard cluster = { cluster } />
78- </ div >
79- ) ) }
80- </ div >
81- ) : (
82- < div className = "flex-col space-y-5 items-center justify-center text-center" >
83- < h2 className = "text-2xl text-center text-white" >
84- No clusters found.{ ! create ? ' Talk to your org admin to create one!' : '' }
85- </ h2 >
86-
87- { create && (
88- < Link to = "new-cluster" >
89- < Button
90- variant = "positive"
91- className = "w-full rounded-full md:w-44"
92- accessKey = "n"
93- >
94- < Plus /> { ' ' }
95- < span >
96- < u > N</ u > ew Cluster
97- </ span >
98- </ Button >
99- </ Link >
100- ) }
101- </ div >
102- ) }
74+ < div className = "grid grid-cols-1 gap-4 md:grid-cols-12 mb-4" >
75+ { clusters . map ( ( cluster ) => (
76+ < div key = { cluster . id } className = "col-span-1 md:col-span-4 lg:col-span-3 2xl:col-span-2" >
77+ < ClusterCard cluster = { cluster } />
78+ </ div >
79+ ) ) }
80+ { ! clusters . length && (
81+ < div className = "col-span-1 md:col-span-12 text-center" >
82+ < h2 className = "my-4 text-xl" > No matches found.</ h2 >
83+ < Button variant = "outline" onClick = { clearFilterByNameValue } > Clear Filters</ Button >
84+ </ div > ) }
85+ </ div >
10386 </ section >
10487 </ >
10588 ) ;
0 commit comments