railbird-gql/App.tsx

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2024-02-03 20:30:00 -07:00
import { DEV_USER_ID } from "@env";
import React, { useEffect } from "react";
2024-02-03 18:23:46 -07:00
import { ClientProvider, useAuthHeader } from "./graphql/client";
2024-02-03 20:30:00 -07:00
import AppNavigator from "./navigation/app-navigator";
import { getCurrentUserToken } from "./auth";
2024-02-03 18:23:46 -07:00
// TODO: can be done when we go with a src top level directory -- should live on cofig
2024-02-03 18:23:46 -07:00
const SetAuthHeaderBasedOnEnv = () => {
const { setAuthHeader } = useAuthHeader();
useEffect(() => {
const setAuthAsync = async () => {
// if (DEV_USER_ID) {
// console.log("Setting fake authorization user to: ", DEV_USER_ID);
// setAuthHeader({ key: "user_id", value: DEV_USER_ID });
// } else {
// Fetch token for authenticated users in production
const token = await getCurrentUserToken();
if (token) {
console.log("Setting firebase auth token");
setAuthHeader({ key: "Authorization", value: `Bearer ${token}` });
}
// }
};
setAuthAsync();
2024-02-03 18:23:46 -07:00
}, [setAuthHeader]);
return null;
};
2024-01-06 18:51:59 -07:00
const App: React.FC = () => {
2024-01-06 19:25:17 -07:00
return (
<ClientProvider>
2024-02-03 18:23:46 -07:00
<SetAuthHeaderBasedOnEnv />
<AppNavigator />
</ClientProvider>
2024-01-06 19:25:17 -07:00
);
2024-01-06 18:51:59 -07:00
};
2024-01-06 23:58:54 -07:00
export default function Root() {
return (
<React.StrictMode>
<App />
</React.StrictMode>
);
}