diff --git a/package-lock.json b/package-lock.json index 7184a7e..5d1f45b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3043,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", @@ -3221,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", @@ -3531,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", @@ -8549,6 +8574,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 +8831,30 @@ "object-visit": "^1.0.0" } }, + "markdown-it": { + "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": "~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": { + "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", @@ -9973,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", @@ -10365,6 +10427,23 @@ "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-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", @@ -10411,11 +10490,28 @@ "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-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": { + "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": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/react-native-modalize/-/react-native-modalize-2.0.5.tgz", @@ -11916,6 +12012,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", @@ -12050,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 03f5d98..3599efb 100644 --- a/package.json +++ b/package.json @@ -38,11 +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-display": "^6.1.6", "react-native-modalize": "^2.0.5", "react-native-paper": "^4.0.1", "react-native-permissions": "^2.1.5", @@ -76,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" } } diff --git a/src/navigation/MainNavigator.js b/src/navigation/MainNavigator.js index d06dbf1..ae2c269 100644 --- a/src/navigation/MainNavigator.js +++ b/src/navigation/MainNavigator.js @@ -25,6 +25,8 @@ import { getWebsiteStack, } from '../utils/CollapsibleUtils'; import BugReportScreen from '../screens/Other/FeedbackScreen'; +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'; @@ -214,6 +216,18 @@ function MainStackComponent(props: { BugReportScreen, i18n.t('screens.feedback.title'), )} + {createScreenCollapsibleStack( + 'changelog', + MainStack, + ChangelogScreen, + i18n.t('screens.about.changelog') + )} + {createScreenCollapsibleStack( + 'licence', + MainStack, + LicenceScreen, + i18n.t('screens.about.license') + )} ); } diff --git a/src/screens/About/AboutScreen.js b/src/screens/About/AboutScreen.js index d26253a..f6b90e0 100644 --- a/src/screens/About/AboutScreen.js +++ b/src/screens/About/AboutScreen.js @@ -98,20 +98,22 @@ class AboutScreen extends React.Component { }, { onPressCallback: () => { - openWebLink(links.changelog); + 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, - }, + } ]; /** diff --git a/src/screens/Other/ChangelogScreen.js b/src/screens/Other/ChangelogScreen.js new file mode 100644 index 0000000..92bcaf8 --- /dev/null +++ b/src/screens/Other/ChangelogScreen.js @@ -0,0 +1,248 @@ +// @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 changelog = `# 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 { + render(): React.Node { + return ( + + + + {changelog} + + + + ); + } +} + +export default withTheme(ChangelogScreen); 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);