@@ -27,6 +27,7 @@ import {
2727 useUpateServerUserProfile ,
2828 useUpdateServerUserProfileByServerUserId ,
2929 useStripServerUserAndRoles ,
30+ useRemoveProfilesForServerByServerUserId ,
3031} from '@/lib/store' ;
3132import { useEffect } from 'react' ;
3233import { Database } from '@/types/database.supabase' ;
@@ -68,6 +69,7 @@ export function useRealtimeStore(supabase: SupabaseClient<Database>) {
6869 const updateServerUserProfile = useUpateServerUserProfile ( ) ;
6970 const updateServerUserProfileByServerUserId = useUpdateServerUserProfileByServerUserId ( ) ;
7071 const stripServerUserAndRoles = useStripServerUserAndRoles ( ) ;
72+ const removeProfilesforServerByServerUserId = useRemoveProfilesForServerByServerUserId ( ) ;
7173 const allServerProfiles = useAllServerProfiles ( ) ;
7274 const user = useUser ( ) ;
7375
@@ -88,36 +90,22 @@ export function useRealtimeStore(supabase: SupabaseClient<Database>) {
8890 filter : `profile_id=eq.${ user ?. id } ` ,
8991 } ,
9092 async ( payload ) => {
91- console . log ( 'insert ' ) ;
93+ console . log ( 'current user joined a server ' ) ;
9294
9395 addServer ( supabase , ( payload . new as ServerUser ) . id ) ;
9496 getRolesForServer ( supabase , payload . new . server_id ) ;
95- updateServerUserProfileByServerUserId ( supabase , payload . new . id ) ;
96- }
97- )
98- . on < ServerUser > (
99- 'postgres_changes' ,
100- {
101- event : 'UPDATE' ,
102- schema : 'public' ,
103- table : 'server_users' ,
104- filter : `profile_id=neq.${ user ?. id } ` ,
105- } ,
106- async ( payload ) => {
107- console . log ( 'Another user joined server' ) ;
108- getAllServerProfilesForServer ( supabase , payload . new . server_id ) ;
97+ getAllServerProfilesForServer ( supabase , payload . new . id ) ;
10998 }
11099 )
111100 . on < ServerUser > (
112101 'postgres_changes' ,
113102 {
114103 event : 'UPDATE' ,
115104 schema : 'public' ,
116- table : 'server_users' ,
117- filter : `profile_id=eq.${ user ?. id } ` ,
105+ table : 'server_users'
118106 } ,
119107 async ( payload ) => {
120- console . log ( 'This user joined server' ) ;
108+ console . log ( 'A user updated their server profile ' ) ;
121109 updateServerUserProfileByServerUserId ( supabase , payload . new . id ) ;
122110 }
123111 )
@@ -130,13 +118,15 @@ export function useRealtimeStore(supabase: SupabaseClient<Database>) {
130118 filter : `profile_id=eq.${ user ?. id } ` ,
131119 } ,
132120 async ( payload ) => {
133- console . log ( 'remove user from server' ) ;
121+ console . log ( 'This user left a server' ) ;
134122
135- //we should try to use the removeServer function from the store but the only resource on the payload is payload.old.id which is the server_user id
136- //and not the server id
123+ // we should try to use the removeServer function from the store but the only resource
124+ // on the payload is payload.old.id which is the server_user id and not the server id
137125 if ( user ) {
138126 getServers ( supabase , user . id ) ;
139127 }
128+
129+ removeProfilesforServerByServerUserId ( payload . old . id ! ) ;
140130 }
141131 )
142132 . on < ServerUser > (
@@ -147,7 +137,7 @@ export function useRealtimeStore(supabase: SupabaseClient<Database>) {
147137 table : 'server_users' ,
148138 } ,
149139 async ( payload ) => {
150- console . log ( 'delete server user (user leaves) ' ) ;
140+ console . log ( 'Any user left a server ' ) ;
151141 stripServerUserAndRoles ( payload . old . id ! ) ;
152142 }
153143 )
0 commit comments