1- import { ServerUser , Server } from '@/types/dbtypes' ;
1+ import { ServerUser , Server , Channel } from '@/types/dbtypes' ;
22import {
33 useAddMessage ,
44 useAddServer ,
88 useGetUserPerms ,
99 useMessages ,
1010 useRemoveMessage ,
11+ useServers ,
1112 useUpdateMessage ,
13+ useUpdateServer ,
1214} from '@/lib/store' ;
1315import { useEffect } from 'react' ;
1416import { Database } from '@/types/database.supabase' ;
@@ -20,6 +22,8 @@ import { ChannelPermissions as ChannelPermissionsTableType } from '@/types/dbtyp
2022export function useRealtimeStore ( supabase : SupabaseClient < Database > ) {
2123 const addServer = useAddServer ( ) ;
2224 const getServers = useGetServers ( ) ;
25+ const servers = useServers ( ) ;
26+ const updateServer = useUpdateServer ( ) ;
2327
2428 const messages = useMessages ( ) ;
2529 const addMessage = useAddMessage ( ) ;
@@ -36,6 +40,7 @@ export function useRealtimeStore(supabase: SupabaseClient<Database>) {
3640
3741 useEffect ( ( ) => {
3842 //this condition makes sure that the functions in the store are initialized, realistically it can be any function, I just chose addServer
43+
3944 if ( addServer ) {
4045 supabase
4146 . channel ( 'server_users' )
@@ -90,23 +95,26 @@ export function useRealtimeStore(supabase: SupabaseClient<Database>) {
9095
9196 supabase
9297 . channel ( 'channels' )
93- . on < Server > (
98+ . on < Channel > (
9499 'postgres_changes' ,
95100 { event : 'INSERT' , schema : 'public' , table : 'channels' } ,
96101 async ( payload ) => {
97- console . log ( 'update' ) ;
102+ console . log ( 'insert channel' ) ;
103+ const server = servers . find (
104+ ( server ) => server . server_id == payload . new . server_id
105+ ) ;
98106
99- if ( user ) {
100- getServers ( supabase , user . id ) ;
107+ if ( server ) {
108+ updateServer ( supabase , server . server_id ) ;
101109 }
102110 }
103111 )
104112 . subscribe ( ) ;
105113 }
106114
107115 // add return right here!
108- // return serverUsersListener.unsubscribe();
109- } , [ addServer , supabase , user , getServers ] ) ;
116+ // return serverUsersListener.unsubscribe();;
117+ } , [ addServer , supabase , user , getServers , servers , updateServer ] ) ;
110118
111119 useEffect ( ( ) => {
112120 if ( addMessage && getUserPerms && channel ) {
0 commit comments