File size: 2,562 Bytes
e4ab6d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f8794d4
e4ab6d0
 
 
 
f8794d4
 
e4ab6d0
f8794d4
 
 
 
e4ab6d0
 
 
 
 
 
 
 
f8794d4
 
e4ab6d0
f8794d4
 
 
e4ab6d0
f8794d4
 
e4ab6d0
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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 { }