From 756854b9f91add0c241b724d446ce464f80a78f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 12:21:44 +0200 Subject: [PATCH 1/9] Add changeLog screen --- src/navigation/MainNavigator.js | 7 ++ src/screens/About/AboutScreen.js | 3 +- src/screens/Other/ChangeLogScreen.js | 160 +++++++++++++++++++++++++++ 3 files changed, 169 insertions(+), 1 deletion(-) create mode 100644 src/screens/Other/ChangeLogScreen.js diff --git a/src/navigation/MainNavigator.js b/src/navigation/MainNavigator.js index d06dbf1..97d2628 100644 --- a/src/navigation/MainNavigator.js +++ b/src/navigation/MainNavigator.js @@ -25,6 +25,7 @@ import { getWebsiteStack, } from '../utils/CollapsibleUtils'; import BugReportScreen from '../screens/Other/FeedbackScreen'; +import ChangelogScreen from '../screens/Other/ChangeLogScreen'; import WebsiteScreen from '../screens/Services/WebsiteScreen'; import EquipmentScreen from '../screens/Amicale/Equipment/EquipmentListScreen'; import EquipmentLendScreen from '../screens/Amicale/Equipment/EquipmentRentScreen'; @@ -214,6 +215,12 @@ function MainStackComponent(props: { BugReportScreen, i18n.t('screens.feedback.title'), )} + {createScreenCollapsibleStack( + 'changelog', + MainStack, + ChangelogScreen, + "Jean Yves" + )} ); } diff --git a/src/screens/About/AboutScreen.js b/src/screens/About/AboutScreen.js index d26253a..04fa76d 100644 --- a/src/screens/About/AboutScreen.js +++ b/src/screens/About/AboutScreen.js @@ -98,7 +98,8 @@ class AboutScreen extends React.Component { }, { onPressCallback: () => { - openWebLink(links.changelog); + const {navigation} = this.props; + navigation.navigate('changelog'); }, icon: 'refresh', text: i18n.t('screens.about.changelog'), diff --git a/src/screens/Other/ChangeLogScreen.js b/src/screens/Other/ChangeLogScreen.js new file mode 100644 index 0000000..170b86c --- /dev/null +++ b/src/screens/Other/ChangeLogScreen.js @@ -0,0 +1,160 @@ +// @flow + +import * as React from 'react'; +import {Avatar, Button, Card, Paragraph, withTheme} from 'react-native-paper'; +import i18n from 'i18n-js'; +import {Linking, View} from 'react-native'; +import CollapsibleScrollView from '../../components/Collapsible/CollapsibleScrollView'; +import type {CardTitleIconPropsType} from '../../constants/PaperStyles'; + +const links = { + bugsGit: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/', + trello: 'https://trello.com/b/RMej49Uq/application-campus-insa', + facebook: 'https://www.facebook.com/campus.insat', + feedbackMail: `mailto:app@amicale-insat.fr?subject=[FEEDBACK] Application CAMPUS +&body=Coucou Arnaud j'ai du feedback\n\n\n\nBien cordialement.`, + feedbackDiscord: 'https://discord.gg/W8MeTec', +}; + +class ChangeLogScreen extends React.Component { + /** + * Gets link buttons + * + * @returns {*} + */ + static getButtons(isFeedback: boolean): React.Node { + return ( + + {isFeedback ? ( + + + + + + ) : ( + + + + + )} + + ); + } + + render(): React.Node { + return ( + + + ( + + )} + /> + + + {i18n.t('screens.feedback.feedbackDescription')} + + + {ChangeLogScreen.getButtons(true)} + ( + + )} + /> + + + {i18n.t('screens.feedback.contributeDescription')} + + + {ChangeLogScreen.getButtons(false)} + + + ); + } +} + +export default withTheme(ChangeLogScreen); -- 2.39.5 From a4a62377834a886d418e8cc28d6413e3ca1defa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 13:08:36 +0200 Subject: [PATCH 2/9] Add changelog rendering in new screen --- locales/en.json | 3 + locales/fr.json | 3 + src/navigation/MainNavigator.js | 2 +- src/screens/Other/ChangeLogScreen.js | 368 +++++++++++++++++---------- 4 files changed, 235 insertions(+), 141 deletions(-) diff --git a/locales/en.json b/locales/en.json index ae5ad7b..2930f6a 100644 --- a/locales/en.json +++ b/locales/en.json @@ -353,6 +353,9 @@ "reactNative": "Made with React Native", "libs": "Libraries used" }, + "changelog": { + "title": "Changelog" + }, "feedback": { "title": "Contribute", "feedback": "Contact the dev", diff --git a/locales/fr.json b/locales/fr.json index 163d720..7c990a6 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -352,6 +352,9 @@ "reactNative": "Créé avec React Native", "libs": "Librairies utilisées" }, + "changelog": { + "title": "Changelog" + }, "feedback": { "title": "Participer", "feedback": "Contacte le développeur", diff --git a/src/navigation/MainNavigator.js b/src/navigation/MainNavigator.js index 97d2628..29cbb18 100644 --- a/src/navigation/MainNavigator.js +++ b/src/navigation/MainNavigator.js @@ -219,7 +219,7 @@ function MainStackComponent(props: { 'changelog', MainStack, ChangelogScreen, - "Jean Yves" + i18n.t('screens.changelog.title') )} ); diff --git a/src/screens/Other/ChangeLogScreen.js b/src/screens/Other/ChangeLogScreen.js index 170b86c..19b9060 100644 --- a/src/screens/Other/ChangeLogScreen.js +++ b/src/screens/Other/ChangeLogScreen.js @@ -1,156 +1,244 @@ // @flow import * as React from 'react'; -import {Avatar, Button, Card, Paragraph, withTheme} from 'react-native-paper'; -import i18n from 'i18n-js'; -import {Linking, View} from 'react-native'; +import {Card, withTheme} from 'react-native-paper'; import CollapsibleScrollView from '../../components/Collapsible/CollapsibleScrollView'; -import type {CardTitleIconPropsType} from '../../constants/PaperStyles'; +import Markdown from "react-native-markdown-renderer"; -const links = { - bugsGit: 'https://git.etud.insa-toulouse.fr/vergnet/application-amicale/', - trello: 'https://trello.com/b/RMej49Uq/application-campus-insa', - facebook: 'https://www.facebook.com/campus.insat', - feedbackMail: `mailto:app@amicale-insat.fr?subject=[FEEDBACK] Application CAMPUS -&body=Coucou Arnaud j'ai du feedback\n\n\n\nBien cordialement.`, - feedbackDiscord: 'https://discord.gg/W8MeTec', -}; +const copy = `# Version actuelle - v3.0.7 - 13/06/2020 + +## 🎉 Nouveautés +- 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à + +## 🐛 Corrections de bugs +- Correction de crash au démarrage sur certains appareils +- Correction de l'affichage de certains sites web + +## 🖥️ Notes de développement +- Force soloader 0.8.2 + + +# Prochainement - **v4.0.1** + +
**v4.0.1** + +## 🎉 Nouveautés +- 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 + +## 🐛 Corrections de bugs +- Correction d'un problème de connexion sur certains appareils android +- Correction de l'icône de notification sur Android +- Correction de bugs divers + +## 🖥️ Notes de développement +- Utilisation de prettier +- Utilisation de eslint avec config de airbnb +- Passage de React Native 62.2 à 63.2 + +
+ +# Versions précédentes + +
**v3.0.5** - 28/05/2020 + +## 🎉 Nouveautés +- 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 + +## 🖥️ Notes de développement +- Passage de React Native 61.5 à 62.2 +- Utilisation du moteur JS Hermes et proguard + +
+ + +
**v3.0.0** - 26/05/2020 + +## 🎉 Nouveautés +- 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 + +## 🖥️ Notes de développement +- Migration de Expo Managed Workflow à React Native Bare Workflow + +
+ + +
**v2.0.0** - _12/03/2020_ + +## 🎉 Nouveautés +- Nouvelle interface ! +- Amélioration des performances +- Amélioration de la vitesse de démarrage + +## 🖥️ Notes de développement +- Utilisation de react-native-paper à la place de native base + +
+ + +
**v1.5.2** - _25/02/2020_ + +## 🐛 Corrections de bugs +- Correction d'un problème d'affichage des détail du Proximo + +
+ + +
**v1.5.1** - _24/02/2020_ + +## 🎉 Nouveautés +- Amélioration des performances +- Utilisation d'un tri des catégories du Proximo plus cohérent + +
+ + +
**v1.5.0** - _05/02/2020_ + +## 🎉 Nouveautés +- 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 + +## 🖥️ Notes de développement +- Passage de React Navigation 3 à 4 +- Mise à jour d'autres librairies + +
+ + +
**v1.4.0** - _01/02/2020_ + +## 🎉 Nouveautés +- 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 + +## 🐛 Corrections de bugs +- Correction d'un crash lors du rafraichissement de planex +- Correction de bugs divers + +
+ + +
**v1.3.3** - _29/01/2020_ + +## 🎉 Nouveautés +- 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 + +## 🐛 Corrections de bugs +- Correction d'un problème de Planex mettant des cours sans couleur de fond + +## 🖥️ Notes de développement +- Yohan SIMARD rejoint le projet +- Passage de Expo SDK 33 à SDK 36 +- Passage de React Native 59 à 61 +- Mise à jour d'autres librairies + +
+ + +
**v1.3.0** - _08/11/2019_ + +## 🎉 Nouveautés +- 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 + +## 🐛 Corrections de bugs +- Correction de quelques bugs + +
+ + +
**v1.2.0** - _01/11/2019_ + +## 🎉 Nouveautés +- Ajout d'une dashboard sur la page d'accueil pour un accès rapide aux informations les plus importantes. + +## 🐛 Corrections de bugs +- - Corrections de bugs + +
+ + +
**v1.1.1** - _28/09/2019_ + +## 🎉 Nouveautés +- 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 + +
+ + +
**v1.1.0** - _17/09/2019_ + +## 🎉 Nouveautés +- Améliorations diverses de l'interface +- Ajout de l'écran planning des événements + +
+ + +
**v1.0.3** - _13/09/2019_ + +## 🎉 Nouveautés +- Ajout de la possibilité de choisir un écran de démarrage + +## 🐛 Corrections de bugs +- Correction d'un crash sur l'écran du Proximo si l'utilisateur refuse les notifications + +
+ + +
**v1.0.2** - _12/09/2019_ + +## 🎉 Nouveautés +- Amélioration de l'interface du Proximo +- Ajout de la possibilité de cliquer sur un article du Proximo pour afficher plus de détails + +
+ +
**v1.0.0** - _27/08/2019_ + +- Première version officielle créée par Arnaud VERGNET + +
+`; class ChangeLogScreen extends React.Component { - /** - * Gets link buttons - * - * @returns {*} - */ - static getButtons(isFeedback: boolean): React.Node { - return ( - - {isFeedback ? ( - - - - - - ) : ( - - - - - )} - - ); - } - render(): React.Node { return ( - ( - - )} - /> - - {i18n.t('screens.feedback.feedbackDescription')} - + {copy} - {ChangeLogScreen.getButtons(true)} - ( - - )} - /> - - - {i18n.t('screens.feedback.contributeDescription')} - - - {ChangeLogScreen.getButtons(false)} ); -- 2.39.5 From c97087efff99ae68fe5dee25d9e41cbe260be586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 13:09:02 +0200 Subject: [PATCH 3/9] Add a dependencie to render Mardown from file --- package-lock.json | 82 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 83 insertions(+) diff --git a/package-lock.json b/package-lock.json index 7184a7e..f92e3ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2460,6 +2460,11 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, + "@types/markdown-it": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-0.0.4.tgz", + "integrity": "sha512-FWR7QB7EqBRq1s9BMk0ccOSOuRLfVEWYpHQYpFPaXtCoqN6dJx2ttdsdQbUxLLnAlKpYeVjveGGhQ3583TTa7g==" + }, "@types/node": { "version": "14.0.27", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", @@ -2478,6 +2483,28 @@ "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", "dev": true }, + "@types/prop-types": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", + "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + }, + "@types/react": { + "version": "16.9.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.49.tgz", + "integrity": "sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g==", + "requires": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-native": { + "version": "0.63.12", + "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.12.tgz", + "integrity": "sha512-EPZ4C9OImXDg59entU0wcg/yCelj+XhgvUpPz85VSKia01DULoGwHOyCH3Y3ZdVcijebSR58ekqAz7zHT8o3Tg==", + "requires": { + "@types/react": "*" + } + }, "@types/stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", @@ -3554,6 +3581,11 @@ } } }, + "csstype": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", + "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -8549,6 +8581,14 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, + "linkify-it": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", + "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", + "requires": { + "uc.micro": "^1.0.1" + } + }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -8798,6 +8838,23 @@ "object-visit": "^1.0.0" } }, + "markdown-it": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", + "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "requires": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "^2.0.0", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" + }, "merge-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", @@ -10365,6 +10422,14 @@ "prop-types": "^15.6.2" } }, + "react-native-fit-image": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/react-native-fit-image/-/react-native-fit-image-1.5.5.tgz", + "integrity": "sha512-Wl3Vq2DQzxgsWKuW4USfck9zS7YzhvLNPpkwUUCF90bL32e1a0zOVQ3WsJILJOwzmPdHfzZmWasiiAUNBkhNkg==", + "requires": { + "prop-types": "^15.5.10" + } + }, "react-native-gesture-handler": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.7.0.tgz", @@ -10416,6 +10481,18 @@ "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-1.4.1.tgz", "integrity": "sha512-g1L1au6GtCd0Ci6lQ8JVPYgl7uvEtKY2jeVghJcV6qQEN9+qACyqjOIR8pskUyI+qcSj1z4/nZh3IFxDVu1drw==" }, + "react-native-markdown-renderer": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/react-native-markdown-renderer/-/react-native-markdown-renderer-3.2.8.tgz", + "integrity": "sha512-gDT5r3lwecNsEfpKagSaidEGfmCbpVcmV+HHLjaGYRALJoHkpOFni0rJZW1rCerOR9sjaUNGXE66U7BUrlEw0w==", + "requires": { + "@types/markdown-it": "^0.0.4", + "@types/react-native": ">=0.50.0", + "markdown-it": "^8.4.0", + "prop-types": "^15.5.10", + "react-native-fit-image": "^1.5.2" + } + }, "react-native-modalize": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.0.5.tgz", @@ -11916,6 +11993,11 @@ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==" }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, "uglify-es": { "version": "3.3.9", "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", diff --git a/package.json b/package.json index 03f5d98..bc85ce7 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "react-native-keychain": "^6.1.1", "react-native-linear-gradient": "^2.5.6", "react-native-localize": "^1.4.1", + "react-native-markdown-renderer": "^3.2.8", "react-native-modalize": "^2.0.5", "react-native-paper": "^4.0.1", "react-native-permissions": "^2.1.5", -- 2.39.5 From c8d1d25f248d6e7cf2513b47f30dd4545f5ab3a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 15:50:40 +0200 Subject: [PATCH 4/9] Add licence and changelog screen --- src/screens/About/AboutScreen.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/screens/About/AboutScreen.js b/src/screens/About/AboutScreen.js index 04fa76d..f6b90e0 100644 --- a/src/screens/About/AboutScreen.js +++ b/src/screens/About/AboutScreen.js @@ -101,18 +101,19 @@ class AboutScreen extends React.Component { const {navigation} = this.props; navigation.navigate('changelog'); }, - icon: 'refresh', + icon: 'file-document', text: i18n.t('screens.about.changelog'), showChevron: true, }, { onPressCallback: () => { - openWebLink(links.license); + const {navigation} = this.props; + navigation.navigate('licence'); }, icon: 'file-document', text: i18n.t('screens.about.license'), showChevron: true, - }, + } ]; /** -- 2.39.5 From 1550ce49b58264da1a46543119cf7e892c7fd4c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 15:51:26 +0200 Subject: [PATCH 5/9] Remove duplicated keys --- locales/en.json | 3 --- locales/fr.json | 3 --- 2 files changed, 6 deletions(-) diff --git a/locales/en.json b/locales/en.json index 2930f6a..ae5ad7b 100644 --- a/locales/en.json +++ b/locales/en.json @@ -353,9 +353,6 @@ "reactNative": "Made with React Native", "libs": "Libraries used" }, - "changelog": { - "title": "Changelog" - }, "feedback": { "title": "Contribute", "feedback": "Contact the dev", diff --git a/locales/fr.json b/locales/fr.json index 7c990a6..163d720 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -352,9 +352,6 @@ "reactNative": "Créé avec React Native", "libs": "Librairies utilisées" }, - "changelog": { - "title": "Changelog" - }, "feedback": { "title": "Participer", "feedback": "Contacte le développeur", -- 2.39.5 From d7a269263a7b8defe3019dd60b32dccb7e116975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 15:51:55 +0200 Subject: [PATCH 6/9] Add a dependencie to render the markdown --- package-lock.json | 114 ++++++++++++++++++++++++++++------------------ package.json | 4 +- 2 files changed, 72 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index f92e3ab..5d1f45b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2460,11 +2460,6 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, - "@types/markdown-it": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-0.0.4.tgz", - "integrity": "sha512-FWR7QB7EqBRq1s9BMk0ccOSOuRLfVEWYpHQYpFPaXtCoqN6dJx2ttdsdQbUxLLnAlKpYeVjveGGhQ3583TTa7g==" - }, "@types/node": { "version": "14.0.27", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", @@ -2483,28 +2478,6 @@ "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==", "dev": true }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/react": { - "version": "16.9.49", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.49.tgz", - "integrity": "sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-native": { - "version": "0.63.12", - "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.63.12.tgz", - "integrity": "sha512-EPZ4C9OImXDg59entU0wcg/yCelj+XhgvUpPz85VSKia01DULoGwHOyCH3Y3ZdVcijebSR58ekqAz7zHT8o3Tg==", - "requires": { - "@types/react": "*" - } - }, "@types/stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", @@ -3070,6 +3043,11 @@ } } }, + "base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha1-eAqZyE59YAJgNhURxId2E78k9rs=" + }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", @@ -3248,6 +3226,11 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, "capture-exit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", @@ -3558,6 +3541,21 @@ } } }, + "css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha1-/qJhbcZ2spYmhrOvjb2+GAskTgU=" + }, + "css-to-react-native": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz", + "integrity": "sha512-Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==", + "requires": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -3581,11 +3579,6 @@ } } }, - "csstype": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.3.tgz", - "integrity": "sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag==" - }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -8839,15 +8832,22 @@ } }, "markdown-it": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz", - "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", + "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", "requires": { "argparse": "^1.0.7", - "entities": "~1.1.1", + "entities": "~2.0.0", "linkify-it": "^2.0.0", "mdurl": "^1.0.1", "uc.micro": "^1.0.5" + }, + "dependencies": { + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" + } } }, "mdurl": { @@ -10030,6 +10030,11 @@ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -10430,6 +10435,15 @@ "prop-types": "^15.5.10" } }, + "react-native-fs": { + "version": "2.16.6", + "resolved": "https://registry.npmjs.org/react-native-fs/-/react-native-fs-2.16.6.tgz", + "integrity": "sha512-ZWOooD1AuFoAGY3HS2GY7Qx2LZo4oIg6AK0wbC68detxwvX75R/q9lRqThXNKP6vIo2VHWa0fYUo/SrLw80E8w==", + "requires": { + "base-64": "^0.1.0", + "utf8": "^3.0.0" + } + }, "react-native-gesture-handler": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-1.7.0.tgz", @@ -10476,21 +10490,26 @@ "resolved": "https://registry.npmjs.org/react-native-linear-gradient/-/react-native-linear-gradient-2.5.6.tgz", "integrity": "sha512-HDwEaXcQIuXXCV70O+bK1rizFong3wj+5Q/jSyifKFLg0VWF95xh8XQgfzXwtq0NggL9vNjPKXa016KuFu+VFg==" }, + "react-native-local-resource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/react-native-local-resource/-/react-native-local-resource-0.1.6.tgz", + "integrity": "sha512-uDT6Ig8w6WkmA7ReIUG8soBkWJ94b/d1cnFHnlEMvMPlBf6fhPHh90mVdNTTYf95oT4sL09mBN5MYFDX4hRIiQ==", + "dev": true + }, "react-native-localize": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/react-native-localize/-/react-native-localize-1.4.1.tgz", "integrity": "sha512-g1L1au6GtCd0Ci6lQ8JVPYgl7uvEtKY2jeVghJcV6qQEN9+qACyqjOIR8pskUyI+qcSj1z4/nZh3IFxDVu1drw==" }, - "react-native-markdown-renderer": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/react-native-markdown-renderer/-/react-native-markdown-renderer-3.2.8.tgz", - "integrity": "sha512-gDT5r3lwecNsEfpKagSaidEGfmCbpVcmV+HHLjaGYRALJoHkpOFni0rJZW1rCerOR9sjaUNGXE66U7BUrlEw0w==", + "react-native-markdown-display": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/react-native-markdown-display/-/react-native-markdown-display-6.1.6.tgz", + "integrity": "sha512-B/nHcsJ/lFie/GCmQKU1EJeDNTYRRY/sHMQEC9nzJ5uN8pm5F0KTFfC/UZn/Jb9x8Mi/S0neBw54UL+sygphUg==", "requires": { - "@types/markdown-it": "^0.0.4", - "@types/react-native": ">=0.50.0", - "markdown-it": "^8.4.0", - "prop-types": "^15.5.10", - "react-native-fit-image": "^1.5.2" + "css-to-react-native": "^3.0.0", + "markdown-it": "^10.0.0", + "prop-types": "^15.7.2", + "react-native-fit-image": "^1.5.5" } }, "react-native-modalize": { @@ -12132,6 +12151,11 @@ "object-assign": "^4.1.1" } }, + "utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", + "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index bc85ce7..3599efb 100644 --- a/package.json +++ b/package.json @@ -38,12 +38,13 @@ "react-native-calendars": "^1.308.0", "react-native-camera": "^3.35.0", "react-native-collapsible": "^1.5.3", + "react-native-fs": "^2.16.6", "react-native-gesture-handler": "^1.7.0", "react-native-image-zoom-viewer": "^3.0.1", "react-native-keychain": "^6.1.1", "react-native-linear-gradient": "^2.5.6", "react-native-localize": "^1.4.1", - "react-native-markdown-renderer": "^3.2.8", + "react-native-markdown-display": "^6.1.6", "react-native-modalize": "^2.0.5", "react-native-paper": "^4.0.1", "react-native-permissions": "^2.1.5", @@ -77,6 +78,7 @@ "jest-extended": "^0.11.5", "metro-react-native-babel-preset": "^0.59.0", "prettier": "2.0.5", + "react-native-local-resource": "^0.1.6", "react-test-renderer": "16.13.1" } } -- 2.39.5 From d6ab911ecb4106cd5da1ac2d9d3bb9495edddb9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 15:52:29 +0200 Subject: [PATCH 7/9] Add licence and changelog --- src/navigation/MainNavigator.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/navigation/MainNavigator.js b/src/navigation/MainNavigator.js index 29cbb18..ae2c269 100644 --- a/src/navigation/MainNavigator.js +++ b/src/navigation/MainNavigator.js @@ -25,7 +25,8 @@ import { getWebsiteStack, } from '../utils/CollapsibleUtils'; import BugReportScreen from '../screens/Other/FeedbackScreen'; -import ChangelogScreen from '../screens/Other/ChangeLogScreen'; +import ChangelogScreen from '../screens/Other/ChangelogScreen'; +import LicenceScreen from "../screens/Other/LicenceScreen"; import WebsiteScreen from '../screens/Services/WebsiteScreen'; import EquipmentScreen from '../screens/Amicale/Equipment/EquipmentListScreen'; import EquipmentLendScreen from '../screens/Amicale/Equipment/EquipmentRentScreen'; @@ -215,12 +216,18 @@ function MainStackComponent(props: { BugReportScreen, i18n.t('screens.feedback.title'), )} - {createScreenCollapsibleStack( - 'changelog', - MainStack, - ChangelogScreen, - i18n.t('screens.changelog.title') - )} + {createScreenCollapsibleStack( + 'changelog', + MainStack, + ChangelogScreen, + i18n.t('screens.about.changelog') + )} + {createScreenCollapsibleStack( + 'licence', + MainStack, + LicenceScreen, + i18n.t('screens.about.license') + )} ); } -- 2.39.5 From 55acf8b1682f5227bd2b5ac7f4ce49ea40155853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 15:53:22 +0200 Subject: [PATCH 8/9] add a page to render markdown from string --- .../Other/{ChangeLogScreen.js => ChangelogScreen.js} | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) rename src/screens/Other/{ChangeLogScreen.js => ChangelogScreen.js} (96%) diff --git a/src/screens/Other/ChangeLogScreen.js b/src/screens/Other/ChangelogScreen.js similarity index 96% rename from src/screens/Other/ChangeLogScreen.js rename to src/screens/Other/ChangelogScreen.js index 19b9060..92bcaf8 100644 --- a/src/screens/Other/ChangeLogScreen.js +++ b/src/screens/Other/ChangelogScreen.js @@ -3,9 +3,9 @@ import * as React from 'react'; import {Card, withTheme} from 'react-native-paper'; import CollapsibleScrollView from '../../components/Collapsible/CollapsibleScrollView'; -import Markdown from "react-native-markdown-renderer"; +import Markdown from 'react-native-markdown-display'; -const copy = `# Version actuelle - v3.0.7 - 13/06/2020 +const changelog = `# Version actuelle - v3.0.7 - 13/06/2020 ## 🎉 Nouveautés - Mise à jour des écrans d'intro pour mieux refléter l'appli actuelle @@ -231,13 +231,13 @@ const copy = `# Version actuelle - v3.0.7 - 13/06/2020 `; -class ChangeLogScreen extends React.Component { +class ChangelogScreen extends React.Component { render(): React.Node { return ( - {copy} + {changelog} @@ -245,4 +245,4 @@ class ChangeLogScreen extends React.Component { } } -export default withTheme(ChangeLogScreen); +export default withTheme(ChangelogScreen); -- 2.39.5 From 8174d717a0a6b99dc27df817164fe3cdfe8b6a96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9rald=20L?= Date: Tue, 1 Sep 2020 15:53:48 +0200 Subject: [PATCH 9/9] add a page to show the licence --- src/screens/Other/LicenceScreen.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/screens/Other/LicenceScreen.js diff --git a/src/screens/Other/LicenceScreen.js b/src/screens/Other/LicenceScreen.js new file mode 100644 index 0000000..fe77487 --- /dev/null +++ b/src/screens/Other/LicenceScreen.js @@ -0,0 +1,26 @@ +// @flow + +import * as React from 'react'; +import {Card, withTheme} from 'react-native-paper'; +import CollapsibleScrollView from '../../components/Collapsible/CollapsibleScrollView'; +import Markdown from 'react-native-markdown-display'; + +const licence = "Here comes the licence content" + +class LicenceScreen extends React.Component { + render(): React.Node { + return ( + + + + + {licence} + + + + + ); + } +} + +export default withTheme(LicenceScreen); -- 2.39.5