@@ -3,7 +3,6 @@ import { SearchBar } from '@/components/forms/Styles';
33import { useEffect , useState } from 'react' ;
44import Server from '@/components/home/Server' ;
55import { useSupabaseClient , useUser } from '@supabase/auth-helpers-react' ;
6- import styles from '@/styles/Servers.module.css' ;
76import AddServerModal from '@/components/home/AddServerModal' ;
87import AddChannelModal from '@/components/home/AddChannelModal' ;
98import {
@@ -14,7 +13,7 @@ import {
1413} from '@/lib/store' ;
1514import { Tooltip } from 'react-tooltip' ;
1615import PlusIcon from '@/components/icons/PlusIcon' ;
17- import { ChannelPermissions , ServerPermissions } from '@/types/permissions' ;
16+ import { ServerPermissions } from '@/types/permissions' ;
1817
1918export default function ServerList ( ) {
2019 //TODO: Display default page (when user belongs to and has no servers)
@@ -27,6 +26,7 @@ export default function ServerList() {
2726 const supabase = useSupabaseClient ( ) ;
2827
2928 const servers = useServers ( ) ;
29+ const [ filteredServers , setFilteredServers ] = useState ( servers ) ;
3030 const getServers = useGetServers ( ) ;
3131
3232 const getUserServerPerms = useGetUserPermsForServer ( ) ;
@@ -87,12 +87,22 @@ export default function ServerList() {
8787 type = "text"
8888 className = { `${ SearchBar ( ) } ` }
8989 placeholder = "Search"
90- > </ input >
90+ onKeyUp = { ( e ) => {
91+ const value = ( e . target as HTMLInputElement ) . value ;
92+
93+ // Filter servers
94+ const filteredServers = servers . filter ( ( server ) => {
95+ return server . servers . name . toLowerCase ( ) . includes ( value . toLowerCase ( ) ) ;
96+ } ) ;
97+
98+ setFilteredServers ( filteredServers ) ;
99+ } }
100+ />
91101 </ div >
92102
93103 < div className = "overflow-y-auto " >
94- { servers &&
95- servers
104+ { filteredServers &&
105+ filteredServers
96106 . sort ( function ( a , b ) {
97107 var textA = a . servers . name . toUpperCase ( ) ;
98108 var textB = b . servers . name . toUpperCase ( ) ;
0 commit comments