rag-mcp-server / App.tsx
mostasheer's picture
Upload 12 files
4d39b50 verified
raw
history blame
1.95 kB
/**
* @license
* SPDX-License-Identifier: Apache-2.0
*/
import React, { useState } from 'react';
import LoginScreen from './components/LoginScreen';
import AppLayout from './components/AppLayout';
import DoctorRegistration from './components/DoctorRegistration';
import { users as mockUsers } from './data/mockData';
import type { User } from './types';
// In a real app, this would be managed in a global state (Context, Redux, etc.)
let users = [...mockUsers];
const App: React.FC = () => {
const [currentUser, setCurrentUser] = useState<User | null>(null);
const [isCompletingDoctorProfile, setIsCompletingDoctorProfile] = useState(false);
const handleLoginSuccess = (user: User) => {
setCurrentUser(user);
if (user.role === 'doctor') {
// This is a simplification. In a real app, you'd check if their profile is complete.
// For the demo, we assume if they log in, their profile is complete.
setIsCompletingDoctorProfile(false);
}
};
const handleLogout = () => {
setCurrentUser(null);
setIsCompletingDoctorProfile(false);
};
const handleRegisterSuccess = (newUser: User) => {
// In a real app, you would add the user to the database.
// Here, we'll just log them in directly.
users.push(newUser); // Simulate adding to DB
setCurrentUser(newUser);
if (newUser.role === 'doctor') {
setIsCompletingDoctorProfile(true);
}
};
const handleDoctorRegistrationComplete = () => {
setIsCompletingDoctorProfile(false);
};
if (currentUser && currentUser.role === 'doctor' && isCompletingDoctorProfile) {
return <DoctorRegistration user={currentUser} onRegistrationComplete={handleDoctorRegistrationComplete} />;
}
if (!currentUser) {
return <LoginScreen onLoginSuccess={handleLoginSuccess} onRegisterSuccess={handleRegisterSuccess} />;
}
return <AppLayout currentUser={currentUser} onLogout={handleLogout} />;
};
export default App;