import { FC, useState, useEffect } from 'react';
import { Redirect, Route, Switch } from 'react-router-dom';
import { Loading } from './components/common';
import Nav from './components/nav';
import useCurrentUser from './hooks/CurrentUser';
import Camera from './components/camera';
import Register from './components/register';
import Facilities from './components/facilities';
import EndUser from './components/enduser';
// Amplify ライブラリ関連
import Amplify from 'aws-amplify';
import awsconfig from './aws-exports';
import { AmazonAIPredictionsProvider } from '@aws-amplify/predictions';
import { AuthState, onAuthUIStateChange } from '@aws-amplify/ui-components';
import { AmplifyAuthenticator, AmplifySignUp } from '@aws-amplify/ui-react';
// aws-exports.jsの読み込みを行う
Amplify.configure(awsconfig);
// AmplifyライブラリにAmazonAIPredictionProviderの機能を拡張する
Amplify.addPluggable(new AmazonAIPredictionsProvider());
const Admin: FC = () => {
return (
);
};
type CognitoUser = {
CognitoUser: {
username: string;
};
};
const App: FC = () => {
const { loading, group } = useCurrentUser();
const [authState, setAuthState] = useState();
const [user, setUser] = useState();
useEffect(() => {
onAuthUIStateChange((nextAuthState, authData) => {
setAuthState(nextAuthState);
setUser(authData as CognitoUser);
});
}, []);
const Main = () => {
return group === 'admin' ? (
) : (
);
};
return authState === AuthState.SignedIn && user ? (
<>
{/* 認証済みの場合はメインのコンポーネントを表示 */}
>
) : (
<>
{/* 未認証の場合はメインのコンポーネントを表示 */}
>
);
};
export default App;