feat(auth): add Auth Context provider with user data refactoring

This commit is contained in:
Vinicius Souza 2024-10-30 10:16:22 -03:00
parent 6cae1cc7f3
commit d44b560ed1
2 changed files with 23 additions and 12 deletions

15
App.tsx
View file

@ -4,7 +4,7 @@ import { GluestackUIProvider } from '@gluestack-ui/themed';
import { config } from './config/gluestack-ui.config';
import { AuthContext } from '@contexts/AuthContext';
import { AuthContextProvider } from '@contexts/AuthContext';
import { Loading } from '@components/Loading';
import { Routes } from '@routes/index';
@ -17,17 +17,8 @@ export default function App() {
return (
<GluestackUIProvider config={config}>
<AuthContext.Provider
value={{
user: {
id: '1',
name: 'John Doe',
email: 'john.doe@email.com',
avatar: 'https://i.pravatar.cc/200',
},
}}>
{fontsLoaded ? <Routes /> : <Loading />}
</AuthContext.Provider>
<AuthContextProvider>{fontsLoaded ? <Routes /> : <Loading />}</AuthContextProvider>
<StatusBar barStyle="light-content" backgroundColor="transparent" translucent />
</GluestackUIProvider>
);

View file

@ -6,4 +6,24 @@ type AuthContextData = {
user: UserDTO;
};
type AuthContextProviderProps = {
children: React.ReactNode;
};
export const AuthContext = createContext<AuthContextData>({} as AuthContextData);
export function AuthContextProvider({ children }: AuthContextProviderProps) {
return (
<AuthContext.Provider
value={{
user: {
id: '1',
name: 'John Doe',
email: 'john.doe@email.com',
avatar: 'https://i.pravatar.cc/200',
},
}}>
{children}
</AuthContext.Provider>
);
}