Render changelog.md instead of opening a webview using fetch #12
1 changed files with 366 additions and 32 deletions
|
@ -1,47 +1,381 @@
|
||||||
import React from 'react';
|
// @flow
|
||||||
import Markdown from "react-native-markdown-display";
|
|
||||||
import {withTheme} from "react-native-paper";
|
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<string>,
|
||||||
|
dev_notes: Array<string>,
|
||||||
|
news: Array<string>,
|
||||||
|
version: string,
|
||||||
|
releaseDate: string,
|
||||||
|
};
|
||||||
|
|
||||||
|
type JsonResponseType = {
|
||||||
|
currentVersion: VersionType,
|
||||||
|
nextVersion: VersionType,
|
||||||
|
previousVersions: Array<VersionType>,
|
||||||
|
}
|
||||||
|
|
||||||
|
type StateType = {
|
||||||
|
text: JsonResponseType,
|
||||||
|
}
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
title: {
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: "bold",
|
||||||
|
textAlign: "center",
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read a text file and output the content
|
* Read a text file and output the content
|
||||||
*
|
*
|
||||||
* Example Usage:
|
* Example Usage:
|
||||||
* var myTxt = require("./myTxt.txt");
|
* <MarkdownRender
|
||||||
* ...
|
txt={url_to_file}
|
||||||
* <TextFileReader
|
/>
|
||||||
txt={myTxt}
|
|
||||||
/>
|
|
||||||
*/
|
*/
|
||||||
class TextFileReader extends React.Component {
|
class MarkdownRender extends React.Component<PropsType, StateType> {
|
||||||
constructor(props) {
|
|
||||||
super(props);
|
|
||||||
this.state = {
|
|
||||||
text: ""
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
componentDidMount() {
|
|
||||||
this.readTextFile(this.props.text);
|
|
||||||
}
|
|
||||||
|
|
||||||
readTextFile = file => {
|
text: JsonResponseType = {
|
||||||
let xhr = new XMLHttpRequest();
|
"currentVersion": {
|
||||||
xhr.open("GET", file, true);
|
"bug_fix": [
|
||||||
xhr.onreadystatechange = () => {
|
"- Correction de crash au démarrage sur certains appareils",
|
||||||
if(xhr.readyState === 4 && xhr.status === 200){
|
"- Correction de l'affichage de certains sites web"
|
||||||
const allText = xhr.responseText;
|
],
|
||||||
this.setState({
|
"dev_notes": [
|
||||||
text: allText
|
"- 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 (
|
||||||
|
<Card style={{ margin: 5}}>
|
||||||
|
<Card.Title
|
||||||
|
title={item.version}
|
||||||
|
subtitle={item.releaseDate}
|
||||||
|
/*
|
||||||
|
left={(iconProps: CardTitleIconPropsType): React.Node => (
|
||||||
|
<Avatar.Icon size={iconProps.size} icon="podium-gold"/>
|
||||||
|
)}
|
||||||
|
*/
|
||||||
|
/>
|
||||||
|
<Card.Content>
|
||||||
|
<Title>Nouveautés</Title>
|
||||||
|
<Text>
|
||||||
|
{item.news.map((txt: string): string => `${txt}\n`)}
|
||||||
|
</Text>
|
||||||
|
<Title>Correction des bugs</Title>
|
||||||
|
<Text>
|
||||||
|
{item.bug_fix.map((txt: string): string => `${txt}\n`)}
|
||||||
|
</Text>
|
||||||
|
</Card.Content>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
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 (
|
return (
|
||||||
<Markdown>{this.state.text}</Markdown>
|
<View style={{padding: 5}}>
|
||||||
|
<Text style={styles.title}>
|
||||||
|
Version actuelle
|
||||||
|
</Text>
|
||||||
|
{this.getCardItemNews({item: this.text.currentVersion})}
|
||||||
|
<Text style={styles.title}>
|
||||||
|
Versions précédentes
|
||||||
|
</Text>
|
||||||
|
<FlatList
|
||||||
|
data={this.text.previousVersions}
|
||||||
|
keyExtractor={this.keyExtractor}
|
||||||
|
renderItem={this.getCardItemNews}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default withTheme(TextFileReader);
|
export default withTheme(MarkdownRender);
|
Loading…
Reference in a new issue