mirror of
https://github.com/SomboChea/ui
synced 2024-09-28 04:27:46 +07:00
222ffed022
* fix: package list refresh based on logged-in user description: In `pages/home/Home.tsx` now monitoring any change in a user log-in/out which will trigger a new `API.request` to get the _packages_ from the Verdaccio-server. This is done by creating a `useEffect` on **isUserLoggedIn**. Code has been transplanted from `App/App.tsx` including the use of the Loading component during the XHR. The use of **packages** was removed from other components as no longer needed and tests updated. Resolves issue #414 * fix: package list refresh based on logged-in user description: In `pages/home/Home.tsx` now monitoring any change in a user log-in/out which will trigger a new `API.request` to get the _packages_ from the Verdaccio-server. This is done by creating a `useEffect` on **isUserLoggedIn**. Code has been transplanted from `App/App.tsx` including the use of the Loading component during the XHR. The use of **packages** was removed from other components as no longer needed and tests updated. Test snapshots updated Resolves issue #414 Co-authored-by: Juan Picado @jotadeveloper <juanpicado19@gmail.com>
42 lines
739 B
TypeScript
42 lines
739 B
TypeScript
import React, { useState, useEffect } from 'react';
|
|
|
|
import AppContext, { AppProps, User } from './AppContext';
|
|
|
|
interface Props {
|
|
user?: User;
|
|
}
|
|
|
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
const AppContextProvider: React.FC<Props> = ({ children, user }) => {
|
|
const [state, setState] = useState<AppProps>({
|
|
scope: window.VERDACCIO_SCOPE || '',
|
|
user,
|
|
});
|
|
|
|
useEffect(() => {
|
|
setState({
|
|
...state,
|
|
user,
|
|
});
|
|
}, [user]);
|
|
|
|
const setUser = (user?: User) => {
|
|
setState({
|
|
...state,
|
|
user,
|
|
});
|
|
};
|
|
|
|
return (
|
|
<AppContext.Provider
|
|
value={{
|
|
...state,
|
|
setUser,
|
|
}}>
|
|
{children}
|
|
</AppContext.Provider>
|
|
);
|
|
};
|
|
|
|
export default AppContextProvider;
|