diff --git a/src/components/Screens/MarkdownRenderScreen.js b/src/components/Screens/MarkdownRenderScreen.js index 3ba65fc..b698eec 100644 --- a/src/components/Screens/MarkdownRenderScreen.js +++ b/src/components/Screens/MarkdownRenderScreen.js @@ -1,47 +1,381 @@ -import React from 'react'; -import Markdown from "react-native-markdown-display"; -import {withTheme} from "react-native-paper"; +// @flow + +import * as React from 'react'; +import {Card, Text, Title, withTheme} from 'react-native-paper'; +import {FlatList, StyleSheet} from "react-native"; +import {View} from "react-native-animatable"; + +type PropsType = {}; + +type VersionType = { + bug_fix: Array, + dev_notes: Array, + news: Array, + version: string, + releaseDate: string, +}; + +type JsonResponseType = { + currentVersion: VersionType, + nextVersion: VersionType, + previousVersions: Array, +} + +type StateType = { + text: JsonResponseType, +} + +const styles = StyleSheet.create({ + title: { + fontSize: 20, + fontWeight: "bold", + textAlign: "center", + } +}) + /** * Read a text file and output the content * * Example Usage: - * var myTxt = require("./myTxt.txt"); - * ... - * + * */ -class TextFileReader extends React.Component { - constructor(props) { - super(props); - this.state = { - text: "" - }; - } +class MarkdownRender extends React.Component { - componentDidMount() { - this.readTextFile(this.props.text); - } - readTextFile = file => { - let xhr = new XMLHttpRequest(); - xhr.open("GET", file, true); - xhr.onreadystatechange = () => { - if(xhr.readyState === 4 && xhr.status === 200){ - const allText = xhr.responseText; - this.setState({ - text: allText - }); + text: JsonResponseType = { + "currentVersion": { + "bug_fix": [ + "- Correction de crash au démarrage sur certains appareils", + "- Correction de l'affichage de certains sites web" + ], + "dev_notes": [ + "- Force soloader 0.8.2" + ], + "news": [ + "- Mise à jour des écrans d'intro pour mieux refléter l'appli actuelle", + "- Déplacement du bouton *À propos* dans les paramètres", + "- Mode sombre par défaut parce que voilà" + ], + "releaseData": "13/06/2020", + "version": "v3.0.7" + }, + "nextVersion": { + "bug_fix": [ + "- Correction d'un problème de connexion sur certains appareils android", + "- Correction de l'icône de notification sur Android", + "- Correction de bugs divers" + ], + "dev_notes": [ + "- Utilisation de prettier", + "- Utilisation de eslint avec config de airbnb", + "- Passage de React Native 62.2 à 63.2" + ], + "news": [ + "- Ajout d'une mascotte !", + "- Ajout de la sauvegarde des scores pour le jeu", + "- Ajout de la personnalisation de la dashboard", + "- Amélioration de l'intro", + "- Amélioration de la page du jeu", + "- Amélioration du visionnement des images", + "- Amélioration des traductions", + "- Amélioration des informations données par proxiwash", + "- Amélioration de la visibilité des services Amicale sans compte", + "- Améliorations générales de l'interface" + ], + "releaseDate": "N/A", + "version": "v4.0.1" + }, + "previousVersions": [ + { + "bug_fix": [ + + ], + "dev_notes": [ + "- Passage de React Native 61.5 à 62.2", + "- Utilisation du moteur JS Hermes et proguard" + ], + "news": [ + "- Importante amélioration de la vitesse de démarrage et des performances", + "- Nouvelle réduction importante de la taille de l'application à télécharger et une fois installée" + ], + "releaseDate": "28/05/2020", + "version": "v3.0.5" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + "- Migration de Expo Managed Workflow à React Native Bare Workflow " + ], + "news": [ + "- Nouvelle barre de navigation !", + "- Nouveau planex tout beau tout neuf !", + "- Suppression du menu déroulant gauche", + "- Création d'une nouvelle catégorie dans la barre de navigation pour regrouper tous les services", + "- Ajout d'animations un peu partout parce que c'est joli et j'ai compris comment faire :D", + "- Ajout de la connexion au compte Amicale", + "- Ajout de la liste des clubs, des élections et du profil utilisateur à travers son compte Amicale", + "- Amélioration de la vitesse de démarrage et des performances", + "- Réduction importante de la taille de l'application à télécharger et une fois installée" + ], + "releaseDate": "26/05/2020", + "version": "v3.0.0" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + "- Utilisation de react-native-paper à la place de native base" + ], + "news": [ + "- Nouvelle interface !", + "- Amélioration des performances", + "- Amélioration de la vitesse de démarrage" + ], + "releaseDate": "12/03/2020", + "version": "v2.0.0" + }, + { + "bug_fix": [ + "- Correction d'un problème d'affichage des détail du Proximo" + ], + "dev_notes": [ + + ], + "news": [ + + ], + "releaseDate": "25/02/2020", + "version": "v1.5.2" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + + ], + "news": [ + "- Amélioration des performances", + "- Utilisation d'un tri des catégories du Proximo plus cohérent" + ], + "releaseDate": "24/02/2020", + "version": "v1.5.1" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + "- Passage de React Navigation 3 à 4", + "- Mise à jour d'autres librairies" + ], + "news": [ + "- Amélioration des performances de l'application", + "- Amélioration du menu gauche", + "- Ajout d'animations au changement d'écran", + "- Affichage de l'événement de l'accueil directement au clic, au lieu de juste amener sur la liste" + ], + "releaseDate": "05/02/2020", + "version": "v1.5.0" + }, + { + "bug_fix": [ + "- Correction d'un crash lors du rafraichissement de planex", + "- Correction de bugs divers" + ], + "dev_notes": [ + + ], + "news": [ + "- Ajout d'un accès rapide à BlueMind et l'ENT", + "- Amélioration de l'apparence du menu gauche", + "- Amélioration de l'affichage de Planex" + ], + "releaseDate": "01/02/2020", + "version": "v1.4.0" + }, + { + "bug_fix": [ + "- Correction d'un problème de Planex mettant des cours sans couleur de fond" + ], + "dev_notes": [ + "- Yohan SIMARD rejoint le projet", + "- Passage de Expo SDK 33 à SDK 36", + "- Passage de React Native 59 à 61", + "- Mise à jour d'autres librairies" + ], + "news": [ + "- Ajout d'une barre de recherche dans Proximo", + "- Amélioration de l'interface Proximo", + "- Ajout d'un accès rapide au site des Élus Étudiants", + "- Amélioration du mode plein écran de Planex" + ], + "releaseDate": "29/01/2020", + "version": "v1.3.3" + }, + { + "bug_fix": [ + "- Correction de quelques bugs" + ], + "dev_notes": [ + + ], + "news": [ + "- Ajout du support du mode paysage dans l'écran Planex pour une vue de la semaine entière", + "- Ajout d'une page pour visualiser les salles en libre accès et réserver une Bib'Box", + "- Ajout de Tutor'INSA sur la dashboard pour un accès rapide", + "- Ouverture des sites web dans l'appli a la place d'utiliser le navigateur externe" + ], + "releaseDate": "08/11/2019", + "version": "v1.3.0" + }, + { + "bug_fix": [ + "- - Corrections de bugs" + ], + "dev_notes": [ + + ], + "news": [ + "- Ajout d'une dashboard sur la page d'accueil pour un accès rapide aux informations les plus importantes." + ], + "releaseDate": "01/11/2019", + "version": "v1.2.0" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + + ], + "news": [ + "- Amélioration de la page Menu du RU", + "- Suppression de l'affichage des articles en rupture de stock dans la page Proximo", + "- Ajout de fonctionnalités de debug" + ], + "releaseDate": "28/09/2019", + "version": "v1.1.1" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + + ], + "news": [ + "- Améliorations diverses de l'interface", + "- Ajout de l'écran planning des événements" + ], + "releaseDate": "17/09/2019 ", + "version": "v1.1.0" + }, + { + "bug_fix": [ + "- Correction d'un crash sur l'écran du Proximo si l'utilisateur refuse les notifications" + ], + "dev_notes": [ + + ], + "news": [ + "- Ajout de la possibilité de choisir un écran de démarrage" + ], + "releaseDate": "13/09/2019", + "version": "v1.0.3" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + + ], + "news": [ + "- Amélioration de l'interface du Proximo", + "- Ajout de la possibilité de cliquer sur un article du Proximo pour afficher plus de détails" + ], + "releaseDate": "12/09/2019", + "version": "v1.0.2" + }, + { + "bug_fix": [ + + ], + "dev_notes": [ + + ], + "news": [ + "- Première version officielle créée par Arnaud VERGNET" + ], + "releaseDate": "27/08/2019", + "version": "v1.0.0" } - }; - xhr.send(null); + ] + } + + /** + * Render json data inside a card + * + * @returns {*} + */ + getCardItemNews = ({item}: {item: VersionType}): React.Node => { + return ( + + ( + + )} + */ + /> + + Nouveautés + + {item.news.map((txt: string): string => `${txt}\n`)} + + Correction des bugs + + {item.bug_fix.map((txt: string): string => `${txt}\n`)} + + + + ); }; - render(){ + /** + * Extracts a key from the given item + * + * @param item The item to extract the key from + * @return {string} The extracted key + */ + keyExtractor = (item: VersionType): string => item.version; + + render(): React.Node { return ( - {this.state.text} + + + Version actuelle + + {this.getCardItemNews({item: this.text.currentVersion})} + + Versions précédentes + + + ) } } -export default withTheme(TextFileReader); \ No newline at end of file +export default withTheme(MarkdownRender); \ No newline at end of file