import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { ChatComponent } from './chat/chat.component'; import { HomeComponent } from './home/home.component'; import { ListenComponent } from './listen/listen.component'; import { GenerateQuestionsComponent } from './generate-questions/generate-questions.component'; import { VoiceComponent } from './voice/voice.component'; import { WritingComponent } from './writing/writing.component'; import { VocabularyBuilderComponent } from './vocabulary-builder/vocabulary-builder.component'; import { FindwordComponent } from './findword/findword.component'; import { ReadingComponent } from './reading/reading.component'; import { AuthenticationComponent } from './authentication/authentication.component'; import { authenticationGuard } from './authentication/authentication.guard'; // Use correct import import { AuthComponent } from './auth/auth.component'; import { authGuard } from './auth/auth.guard'; import { rootRedirectGuard } from './auth/root-redirect.guard'; import { RootRedirectComponent } from './root-redirect/root-redirect.component'; import { SignInComponent } from './sign-in/sign-in.component'; // Define and export routes export const routes: Routes = [ // Default public home page { path: '', component: HomeComponent, pathMatch: 'full' }, // Public home route (no guard) { path: 'home', component: HomeComponent }, // Protected module routes { path: 'chat', component: ChatComponent, canActivate: [authGuard] }, { path: 'generate-questions', component: GenerateQuestionsComponent, canActivate: [authGuard] }, { path: 'voice', component: VoiceComponent, canActivate: [authGuard] }, { path: 'listen', component: ListenComponent, canActivate: [authGuard] }, { path: 'writing', component: WritingComponent, canActivate: [authGuard] }, { path: 'vocabulary-builder', component: VocabularyBuilderComponent, canActivate: [authGuard] }, { path: 'findword', component: FindwordComponent, canActivate: [authGuard] }, { path: 'reading', component: ReadingComponent, canActivate: [authGuard] }, // Auth routes { path: 'authentication', component: AuthenticationComponent }, // Use integrated SignIn (with embedded SignUp) for auth and login aliases { path: 'auth', component: SignInComponent }, { path: 'login', component: SignInComponent }, // Fallback { path: '**', redirectTo: '' }, ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }