From 7e47e6395853626ffd9357ce5a0246961906a03d Mon Sep 17 00:00:00 2001 From: Thomas Chazot Date: Wed, 22 Nov 2023 09:04:56 +0100 Subject: [PATCH] Exportation en .TEX fini --- cryptide_project/package-lock.json | 13 +++++++++++++ cryptide_project/package.json | 2 ++ cryptide_project/src/Pages/InGame.tsx | 7 ++++++- cryptide_project/src/Script/LatexScript.tsx | 4 ++-- cryptide_project/yarn.lock | 10 ++++++++++ 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/cryptide_project/package-lock.json b/cryptide_project/package-lock.json index 833af40..c6528d2 100644 --- a/cryptide_project/package-lock.json +++ b/cryptide_project/package-lock.json @@ -19,6 +19,7 @@ "bootstrap": "^5.3.2", "cors": "^2.8.5", "express": "^4.18.2", + "file-saver": "^2.0.5", "lodash": "^4.17.21", "react": "^18.2.0", "react-bootstrap": "^2.9.1", @@ -37,6 +38,7 @@ "web-vitals": "^2.1.4" }, "devDependencies": { + "@types/file-saver": "^2.0.7", "@types/react-router-hash-link": "^2.4.9", "@types/uuid": "^9.0.7" } @@ -4277,6 +4279,12 @@ "@types/send": "*" } }, + "node_modules/@types/file-saver": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz", + "integrity": "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==", + "dev": true + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -8456,6 +8464,11 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", diff --git a/cryptide_project/package.json b/cryptide_project/package.json index 7417321..429ebd2 100644 --- a/cryptide_project/package.json +++ b/cryptide_project/package.json @@ -13,6 +13,7 @@ "bootstrap": "^5.3.2", "cors": "^2.8.5", "express": "^4.18.2", + "file-saver": "^2.0.5", "lodash": "^4.17.21", "react": "^18.2.0", "react-bootstrap": "^2.9.1", @@ -55,6 +56,7 @@ ] }, "devDependencies": { + "@types/file-saver": "^2.0.7", "@types/react-router-hash-link": "^2.4.9", "@types/uuid": "^9.0.7" } diff --git a/cryptide_project/src/Pages/InGame.tsx b/cryptide_project/src/Pages/InGame.tsx index 4b54565..06bba52 100644 --- a/cryptide_project/src/Pages/InGame.tsx +++ b/cryptide_project/src/Pages/InGame.tsx @@ -1,5 +1,6 @@ import React, { useState, useEffect } from 'react'; import Switch from "react-switch"; +import {saveAs} from "file-saver" /* Style */ import "./InGame.css" @@ -103,7 +104,11 @@ const InGame = ({locale, changeLocale}) => { const generateTEX = () => { if (network != null && personNetwork != null && person != null){ - generateLatexCode(personNetwork, person, indices, network) + const tex = generateLatexCode(personNetwork, person, indices, network) + const blob = new Blob([tex], { type: 'application/x-latex;charset=utf-8' }); + + // Utiliser FileSaver pour télécharger le fichier + saveAs(blob, 'socialGraph.tex'); } } diff --git a/cryptide_project/src/Script/LatexScript.tsx b/cryptide_project/src/Script/LatexScript.tsx index dbd7352..cca2c12 100644 --- a/cryptide_project/src/Script/LatexScript.tsx +++ b/cryptide_project/src/Script/LatexScript.tsx @@ -11,7 +11,7 @@ import { ColorToString, SportToString } from "../model/EnumExtender"; import GraphCreator from "../model/Graph/GraphCreator"; import { DataSet, Network } from "vis-network"; -function generateLatexCode(personsNet : PersonNetwork, choosenPerson : Person, choosenIndices : Indice[], network: Network) { +function generateLatexCode(personsNet : PersonNetwork, choosenPerson : Person, choosenIndices : Indice[], network: Network): string { let latexCode = ""; @@ -89,7 +89,7 @@ function generateLatexCode(personsNet : PersonNetwork, choosenPerson : Person, c latexCode += "\\end{document}\n" - console.log(latexCode) + return latexCode } export default generateLatexCode \ No newline at end of file diff --git a/cryptide_project/yarn.lock b/cryptide_project/yarn.lock index e14bbd0..35af1a2 100644 --- a/cryptide_project/yarn.lock +++ b/cryptide_project/yarn.lock @@ -2189,6 +2189,11 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/file-saver@^2.0.7": + "integrity" "sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==" + "resolved" "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.7.tgz" + "version" "2.0.7" + "@types/graceful-fs@^4.1.2": "integrity" "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==" "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" @@ -4976,6 +4981,11 @@ "loader-utils" "^2.0.0" "schema-utils" "^3.0.0" +"file-saver@^2.0.5": + "integrity" "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + "resolved" "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz" + "version" "2.0.5" + "filelist@^1.0.4": "integrity" "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==" "resolved" "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz"