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;