diff --git a/examples/slack-clone/nextjs-slack-clone/lib/Store.js b/examples/slack-clone/nextjs-slack-clone/lib/Store.js index 5a3b8427bf9..a6e4623efda 100644 --- a/examples/slack-clone/nextjs-slack-clone/lib/Store.js +++ b/examples/slack-clone/nextjs-slack-clone/lib/Store.js @@ -62,9 +62,9 @@ export const useStore = (props) => { .subscribe() // Cleanup on unmount return () => { - supabase.removeChannel('public:messages') - supabase.removeChannel('public:users') - supabase.removeChannel('public:channels') + supabase.removeChannel(supabase.channel(messageListener)) + supabase.removeChannel(supabase.channel(userListener)) + supabase.removeChannel(supabase.channel(channelListener)) } }, []) @@ -179,7 +179,7 @@ export const fetchMessages = async (channelId, setState) => { .from('messages') .select(`*, author:user_id(*)`) .eq('channel_id', channelId) - .order('inserted_at', true) + .order('inserted_at', { ascending: true }) if (setState) setState(data) return data } catch (error) { diff --git a/examples/slack-clone/nextjs-slack-clone/pages/_app.js b/examples/slack-clone/nextjs-slack-clone/pages/_app.js index 0331451de47..3db2d706fa3 100644 --- a/examples/slack-clone/nextjs-slack-clone/pages/_app.js +++ b/examples/slack-clone/nextjs-slack-clone/pages/_app.js @@ -12,17 +12,10 @@ export default function SupabaseSlackClone({ Component, pageProps }) { const router = useRouter() useEffect(() => { - supabase.auth.getSession().then(({ data: { session }}) => { - setSession(session) - setUserLoaded(session ? true : false) - if (session?.user) { - signIn() - router.push('/channels/[id]', '/channels/1') - } - }) - - - const { subscription: authListener } = supabase.auth.onAuthStateChange(async (event, session) => { + function saveSession( + /** @type {Awaited>['data']['session']} */ + session + ) { setSession(session) const currentUser = session?.user setUser(currentUser ?? null) @@ -31,7 +24,11 @@ export default function SupabaseSlackClone({ Component, pageProps }) { signIn(currentUser.id, currentUser.email) router.push('/channels/[id]', '/channels/1') } - }) + } + + supabase.auth.getSession().then(({ data: { session }}) => saveSession(session)) + + const { subscription: authListener } = supabase.auth.onAuthStateChange(async (event, session) => saveSession(session)) return () => { authListener.unsubscribe()