mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 04:50:36 +03:00
Fix LibraryContext update when user changes
This commit is contained in:
parent
0036e7302d
commit
004664a53e
|
@ -58,7 +58,9 @@ export const AuthState = ({ children }: AuthStateProps) => {
|
|||
showError: true,
|
||||
setLoading: setLoading,
|
||||
onError: error => { setError(error); },
|
||||
onSuccess: newData => reload(() => { if (callback) callback(newData); })
|
||||
onSuccess: newData => reload(() => {
|
||||
if (callback) callback(newData);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -66,7 +68,9 @@ export const AuthState = ({ children }: AuthStateProps) => {
|
|||
setError(undefined);
|
||||
postLogout({
|
||||
showError: true,
|
||||
onSuccess: newData => reload(() => { if (callback) callback(newData); })
|
||||
onSuccess: newData => reload(() => {
|
||||
if (callback) callback(newData);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ import { createContext, useCallback, useContext, useEffect, useState } from 'rea
|
|||
import { ErrorInfo } from '../components/BackendError';
|
||||
import { DataCallback, getLibrary, postNewRSForm } from '../utils/backendAPI';
|
||||
import { ILibraryFilter, IRSFormCreateData, IRSFormMeta, matchRSFormMeta } from '../utils/models';
|
||||
import { useAuth } from './AuthContext';
|
||||
|
||||
interface ILibraryContext {
|
||||
items: IRSFormMeta[]
|
||||
|
@ -11,7 +12,7 @@ interface ILibraryContext {
|
|||
error: ErrorInfo
|
||||
setError: (error: ErrorInfo) => void
|
||||
|
||||
reload: () => void
|
||||
reload: (callback?: () => void) => void
|
||||
filter: (params: ILibraryFilter) => IRSFormMeta[]
|
||||
createSchema: (data: IRSFormCreateData, callback?: DataCallback<IRSFormMeta>) => void
|
||||
}
|
||||
|
@ -36,6 +37,7 @@ export const LibraryState = ({ children }: LibraryStateProps) => {
|
|||
const [ loading, setLoading ] = useState(false);
|
||||
const [ processing, setProcessing ] = useState(false);
|
||||
const [ error, setError ] = useState<ErrorInfo>(undefined);
|
||||
const { user } = useAuth();
|
||||
|
||||
const filter = useCallback(
|
||||
(params: ILibraryFilter) => {
|
||||
|
@ -53,20 +55,23 @@ export const LibraryState = ({ children }: LibraryStateProps) => {
|
|||
}, [items]);
|
||||
|
||||
const reload = useCallback(
|
||||
() => {
|
||||
(callback?: () => void) => {
|
||||
setItems([]);
|
||||
setError(undefined);
|
||||
getLibrary({
|
||||
setLoading: setLoading,
|
||||
showError: true,
|
||||
onError: (error) => setError(error),
|
||||
onSuccess: newData => { setItems(newData); }
|
||||
onSuccess: newData => {
|
||||
setItems(newData);
|
||||
if (callback) callback();
|
||||
}
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
reload();
|
||||
}, [reload]);
|
||||
}, [reload, user]);
|
||||
|
||||
const createSchema = useCallback(
|
||||
(data: IRSFormCreateData, callback?: DataCallback<IRSFormMeta>) => {
|
||||
|
|
|
@ -5,7 +5,7 @@ import { type IUserInfo } from '../utils/models';
|
|||
|
||||
interface IUsersContext {
|
||||
users: IUserInfo[]
|
||||
reload: () => void
|
||||
reload: (callback?: () => void) => void
|
||||
getUserLabel: (userID: number | null) => string
|
||||
}
|
||||
|
||||
|
@ -47,11 +47,14 @@ export const UsersState = ({ children }: UsersStateProps) => {
|
|||
}
|
||||
|
||||
const reload = useCallback(
|
||||
() => {
|
||||
(callback?: () => void) => {
|
||||
getActiveUsers({
|
||||
showError: true,
|
||||
onError: () => { setUsers([]); },
|
||||
onSuccess: newData => { setUsers(newData); }
|
||||
onError: () => setUsers([]),
|
||||
onSuccess: newData => {
|
||||
setUsers(newData);
|
||||
if (callback) callback();
|
||||
}
|
||||
});
|
||||
}, [setUsers]);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user