Support reading progress synchronization across platforms (#34)

This commit is contained in:
Huang Xin
2024-12-24 12:31:02 +01:00
committed by GitHub
parent d7ccbbcaa2
commit 9be9bc8a34
30 changed files with 1135 additions and 214 deletions
+3 -3
View File
@@ -32,7 +32,6 @@ export const AuthProvider = ({ children }: { children: ReactNode }) => {
const fetchSession = async () => {
const {
data: { session },
error,
} = await supabase.auth.getSession();
if (session) {
const { access_token, user } = session;
@@ -40,8 +39,7 @@ export const AuthProvider = ({ children }: { children: ReactNode }) => {
setUser(user);
localStorage.setItem('token', access_token);
localStorage.setItem('user', JSON.stringify(user));
} else if (error) {
console.error('Error fetching session:', error);
} else {
localStorage.removeItem('token');
localStorage.removeItem('user');
setToken(null);
@@ -54,6 +52,7 @@ export const AuthProvider = ({ children }: { children: ReactNode }) => {
}, [token]);
const login = (newToken: string, newUser: User) => {
console.log('Logging in');
setToken(newToken);
setUser(newUser);
localStorage.setItem('token', newToken);
@@ -61,6 +60,7 @@ export const AuthProvider = ({ children }: { children: ReactNode }) => {
};
const logout = () => {
console.log('Logging out');
setToken(null);
setUser(null);
localStorage.removeItem('token');
@@ -0,0 +1,18 @@
'use client';
import React, { createContext, useContext } from 'react';
import { SyncClient } from '@/libs/sync';
const syncClient = new SyncClient();
interface SyncContextType {
syncClient: SyncClient;
}
const SyncContext = createContext<SyncContextType>({ syncClient });
export const SyncProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
return <SyncContext.Provider value={{ syncClient }}>{children}</SyncContext.Provider>;
};
export const useSyncContext = () => useContext(SyncContext);