import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { CodeExecutionService } from 'src/app/services/codeExecution.service'; // Exemple de code pour chaque langage const defaults = { markdown: '# Sankasten\n\nProjet **SAE 3A** par _FRIZOT, MAZINGUE, OLLIER, FREVILLE ET PRADIER_ text\nGit [Sankasten WEB](https://codefirst.iut.uca.fr/git/sandkasten/sandkasten-web.git)', 'text/typescript': `const component = { name: "@exemple/Typescript", author: "Sandkasten", repo: "https://codefirst.iut.uca.fr/git/sandkasten/sandkasten-web.git" }; const hello: string = 'Bonjour ceci est un test de code en typescript';` }; @Component({ selector: 'app-editor', templateUrl: './editor.component.html', styleUrls: ['./editor.component.scss'] }) export class EditorComponent implements OnInit{ loadingProgress: number = 0; // Pour suivre la progression du chargement isLoaded: boolean = false; // Pour vérifier si le chargement est terminé // Mode par défaut mode: keyof typeof defaults = 'text/typescript'; options = { lineNumbers: true, mode: this.mode, }; defaults = defaults; // Contenu de l'éditeur que l'on passera au serveur editorContent: string = defaults[this.mode]; constructor(private router: Router, private codeExecutionService: CodeExecutionService) {} ngOnInit(): void { } // Change le langage de l'éditeur changeMode(): void { this.options = { ...this.options, mode: this.mode, }; } // Affiche le contenu de l'éditeur handleChange($event: Event): void { console.log('ngModelChange', $event); } // Efface le contenu de l'éditeur clear(): void { this.defaults[this.mode] = ''; } onRunButtonClicked() { // Le code à exécuter est le contenu de l'éditeur const codeToExecute = this.editorContent; this.codeExecutionService.executeCode(codeToExecute, this.mode).subscribe( (response) => { console.log('Réponse du serveur:', response); console.log('Code qui va être exécuté:', codeToExecute); // Redirigez vers une autre page (par exemple, 'output') this.router.navigate(['/output']); }, (error) => { console.error('Erreur lors de l\'exécution du code:', error); } ); } }