forked from akai/readest
Support reading progress synchronization across platforms (#34)
This commit is contained in:
@@ -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);
|
||||
Reference in New Issue
Block a user