From 6c984e91be96bd734cda2f92dd4649c51bfbea8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Poizat?= Date: Mon, 3 Jul 2023 12:18:12 +0200 Subject: [PATCH] feat(InstallFlagshipAppDialog): Add InstallFlagshipAppDialog new component Displays a dialog with a QR code to install the flagship app --- docs/styleguide.config.js | 1 + .../InstallFlagshipAppDialog.jsx | 80 ++++++++++++++++++ react/CozyDialogs/SpecificDialogs/Readme.md | 23 +++++ .../assets/QRCodeInstallFlagshipAppDialog.png | Bin 0 -> 15336 bytes .../SpecificDialogs/assets/appstore.png | Bin 0 -> 301 bytes .../SpecificDialogs/assets/playstore.png | Bin 0 -> 298 bytes react/CozyDialogs/SpecificDialogs/index.jsx | 1 + .../SpecificDialogs/locales/en.json | 7 ++ .../SpecificDialogs/locales/fr.json | 7 ++ .../withSpecificDialogsLocales.jsx | 11 +++ react/CozyDialogs/index.jsx | 1 + 11 files changed, 131 insertions(+) create mode 100644 react/CozyDialogs/SpecificDialogs/InstallFlagshipAppDialog.jsx create mode 100644 react/CozyDialogs/SpecificDialogs/Readme.md create mode 100644 react/CozyDialogs/SpecificDialogs/assets/QRCodeInstallFlagshipAppDialog.png create mode 100644 react/CozyDialogs/SpecificDialogs/assets/appstore.png create mode 100644 react/CozyDialogs/SpecificDialogs/assets/playstore.png create mode 100644 react/CozyDialogs/SpecificDialogs/index.jsx create mode 100644 react/CozyDialogs/SpecificDialogs/locales/en.json create mode 100644 react/CozyDialogs/SpecificDialogs/locales/fr.json create mode 100644 react/CozyDialogs/SpecificDialogs/withSpecificDialogsLocales.jsx diff --git a/docs/styleguide.config.js b/docs/styleguide.config.js index 7286295ed7..3438bd63b6 100644 --- a/docs/styleguide.config.js +++ b/docs/styleguide.config.js @@ -139,6 +139,7 @@ module.exports = { '../react/ContactsListModal', '../react/ContactPicker', '../react/CozyDialogs', + '../react/CozyDialogs/SpecificDialogs', '../react/CozyTheme', '../react/FileImageLoader', '../react/FilePicker', diff --git a/react/CozyDialogs/SpecificDialogs/InstallFlagshipAppDialog.jsx b/react/CozyDialogs/SpecificDialogs/InstallFlagshipAppDialog.jsx new file mode 100644 index 0000000000..30d827dd45 --- /dev/null +++ b/react/CozyDialogs/SpecificDialogs/InstallFlagshipAppDialog.jsx @@ -0,0 +1,80 @@ +import React, { forwardRef } from 'react' +import PropTypes from 'prop-types' + +import { IllustrationDialog } from '..' +import { useI18n } from '../../I18n' +import Link from '../../Link' +import Typography from '../../Typography' + +import DefaultQRCode from './assets/QRCodeInstallFlagshipAppDialog.png' +import appStoreIcon from './assets/appstore.png' +import playStoreIcon from './assets/playstore.png' +import withSpecificDialogsLocales from './withSpecificDialogsLocales' + +const InstallFlagshipAppDialog = forwardRef( + ({ onClose, playStoreUrl, appStoreUrl, QRCode }, ref) => { + const { t } = useI18n() + + return ( + + + + {t('install-flagship-app-dialog.a11n')} + + + } + content={ +
+ + {t('install-flagship-app-dialog.title')} + + +
+ } + /> + ) + } +) + +InstallFlagshipAppDialog.propTypes = { + onClose: PropTypes.func, + /** Url to the Play Store link in the dialog description */ + playStoreUrl: PropTypes.string, + /** Url to the App Store link in the dialog description */ + appStoreUrl: PropTypes.string, + /** An image representing a QR code to a link where you can download the flagship app */ + QRCode: PropTypes.any +} + +InstallFlagshipAppDialog.defaultProps = { + playStoreUrl: + 'https://play.google.com/store/apps/details?id=io.cozy.flagship.mobile', + appStoreUrl: 'https://apps.apple.com/app/my-cozy/id1600636174', + QRCode: DefaultQRCode +} + +InstallFlagshipAppDialog.displayName = 'InstallFlagshipAppDialog' + +export default withSpecificDialogsLocales(InstallFlagshipAppDialog) diff --git a/react/CozyDialogs/SpecificDialogs/Readme.md b/react/CozyDialogs/SpecificDialogs/Readme.md new file mode 100644 index 0000000000..c7c5f0691b --- /dev/null +++ b/react/CozyDialogs/SpecificDialogs/Readme.md @@ -0,0 +1,23 @@ +### InstallFlagshipApp dialog + +You can customize links and image with `playStoreUrl`, `appStoreUrl` and `QRCode` props. + +```jsx +import { useState } from 'react'; + +import DemoProvider from 'cozy-ui/docs/components/DemoProvider'; +import { InstallFlagshipAppDialog } from 'cozy-ui/transpiled/react/CozyDialogs'; +import Buttons from 'cozy-ui/transpiled/react/Buttons'; + +const [open, setOpen] = useState(isTesting()); + + + + { open && ( + { setOpen(false)}} + /> + )} + { setOpen(true) }} label="Open InstallFlagshipAppDialog" /> + +``` diff --git a/react/CozyDialogs/SpecificDialogs/assets/QRCodeInstallFlagshipAppDialog.png b/react/CozyDialogs/SpecificDialogs/assets/QRCodeInstallFlagshipAppDialog.png new file mode 100644 index 0000000000000000000000000000000000000000..f6fb371da4bdb1fa365c824d2d0f30879075b22f GIT binary patch literal 15336 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 literal 0 HcmV?d00001 diff --git a/react/CozyDialogs/SpecificDialogs/assets/playstore.png b/react/CozyDialogs/SpecificDialogs/assets/playstore.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5761bceb6c950f104aae423776eddd7033f6f8 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$3?vg*uel1OG6Q@!Ef0F>Z1#IM zi^1{$r`9h(jjx>erjTjnes0pu9b#^d!(SiIO0{V1@?@ z_v;1Tzkl%H{{8a@<^w@PK|+9o!ds?RUZ9!?PZ!4!j_bB(+?g5_cw7RH+^hCfig;J= z(JA;p>t5QFt_6`(^_e}C`V-h2l74O2xZo1gwZxUzd6r)m3e+$#|7*}89=KeRE%xgt nxet2jJI@JTRt&q;v35ScWfpq^cTUhppdAdJu6{1-oD!M App Store
or Play Store to install the Cozy Cloud app", + "a11n": "Go to the Cozy Cloud application download page" + } +} diff --git a/react/CozyDialogs/SpecificDialogs/locales/fr.json b/react/CozyDialogs/SpecificDialogs/locales/fr.json new file mode 100644 index 0000000000..b72053df60 --- /dev/null +++ b/react/CozyDialogs/SpecificDialogs/locales/fr.json @@ -0,0 +1,7 @@ +{ + "install-flagship-app-dialog": { + "title": "Scannez le QR Code", + "text": "ou rendez vous directement sur l’App Store
ou sur le Play Store pour installer l’app Cloud Personnel Cozy", + "a11n": "Aller sur la page de téléchargement de l'application Cloud Personnel Cozy" + } +} diff --git a/react/CozyDialogs/SpecificDialogs/withSpecificDialogsLocales.jsx b/react/CozyDialogs/SpecificDialogs/withSpecificDialogsLocales.jsx new file mode 100644 index 0000000000..2f8e19ad73 --- /dev/null +++ b/react/CozyDialogs/SpecificDialogs/withSpecificDialogsLocales.jsx @@ -0,0 +1,11 @@ +import withOnlyLocales from '../../I18n/withOnlyLocales' + +import en from './locales/en.json' +import fr from './locales/fr.json' + +export const locales = { + en, + fr +} + +export default withOnlyLocales(locales) diff --git a/react/CozyDialogs/index.jsx b/react/CozyDialogs/index.jsx index b0ddfe03f0..c73231b028 100644 --- a/react/CozyDialogs/index.jsx +++ b/react/CozyDialogs/index.jsx @@ -8,3 +8,4 @@ export { default as FixedDialog } from './FixedDialog' export { default as IllustrationDialog } from './IllustrationDialog' export { default as useCozyDialog } from './useCozyDialog' export { default as TopAnchoredDialog } from './TopAnchoredDialog' +export { InstallFlagshipAppDialog } from './SpecificDialogs'