From 41497dccace7e25be7cb5d11d30e27b15bf6063d Mon Sep 17 00:00:00 2001 From: Pouya Mozaffar Magham Date: Sun, 26 Mar 2023 08:12:41 +0330 Subject: [PATCH 1/3] Add share manager feature --- locales.js | 18 +++ .../Collabora/Iframe/LoaderForm.js} | 2 +- src/components/main/Collabora/Iframe/index.js | 24 ++++ .../ShareAccessManager/Modal/index.js | 45 ++++++++ .../ShareAccessManager/Modal/style.scss | 75 ++++++++++++ .../ShareAccessManager/assets/end.png | Bin 0 -> 519 bytes .../ShareAccessManager/assets/share.png | Bin 0 -> 523 bytes .../Collabora/ShareAccessManager/index.js | 107 ++++++++++++++++++ .../Collabora/ShareAccessManager/style.scss | 4 + src/components/main/Collabora/index.js | 11 ++ .../shared/collaboraIframeHandler.js | 50 ++++++++ src/components/main/index.js | 23 +--- src/index.js | 2 + src/styles/_variables.scss | 23 +--- src/styles/fonts.scss | 21 ++++ 15 files changed, 364 insertions(+), 41 deletions(-) rename src/components/{loaderForm/index.js => main/Collabora/Iframe/LoaderForm.js} (98%) create mode 100644 src/components/main/Collabora/Iframe/index.js create mode 100644 src/components/main/Collabora/ShareAccessManager/Modal/index.js create mode 100644 src/components/main/Collabora/ShareAccessManager/Modal/style.scss create mode 100644 src/components/main/Collabora/ShareAccessManager/assets/end.png create mode 100644 src/components/main/Collabora/ShareAccessManager/assets/share.png create mode 100644 src/components/main/Collabora/ShareAccessManager/index.js create mode 100644 src/components/main/Collabora/ShareAccessManager/style.scss create mode 100644 src/components/main/Collabora/index.js create mode 100644 src/components/main/Collabora/shared/collaboraIframeHandler.js create mode 100644 src/styles/fonts.scss diff --git a/locales.js b/locales.js index 20e6d11..9fcd0c1 100644 --- a/locales.js +++ b/locales.js @@ -7,6 +7,15 @@ export const en_EN = { LBL_SHOW_HIDE: 'Show/Hide', LBL_OPEN_FILE: 'Open File', LBL_QUIT: 'Quit', + + LBL_SHARING_MODAL_TITLE: 'Share', + LBL_SHARING_MODAL_EMAIL_INPUT_LABEL: 'Enter the email(s) of the individuals you want to share the text with (separate each email with ,)', + LBL_SHARING_MODAL_SUBMIT_ACTION: 'Share', + LBL_SHARING_MODAL_CANCEL_ACTION: 'Cancel', + LBL_SHARING_START_SHARING_BUTTON: 'Start Sharing', + LBL_SHARING_END_SHARING_BUTTON: 'End Sharing', + LBL_SHARING_START_SHARING_ERROR: 'First end the current sharing.', + LBL_SHARING_END_SHARING_ERROR: 'First start.', }; export const fa_FA = { @@ -18,4 +27,13 @@ export const fa_FA = { LBL_SHOW_HIDE: 'نمایش/ پنهان', LBL_OPEN_FILE: 'باز کردن فایل', LBL_QUIT: 'خروج', + + LBL_SHARING_MODAL_TITLE: 'اشتراک گذاری<', + LBL_SHARING_MODAL_EMAIL_INPUT_LABEL: 'ایمیل/ایمیل‌هایی که می‌خواهید متن با آنان به اشتراک گذاشته شود را وارد کنید. (برای جدا سازی چندین ایمیل از , استفاده کنید.)', + LBL_SHARING_MODAL_SUBMIT_ACTION: 'اشتراک گذاری', + LBL_SHARING_MODAL_CANCEL_ACTION: 'انصراف', + LBL_SHARING_START_SHARING_BUTTON: 'شروع اشتراک گذاری', + LBL_SHARING_END_SHARING_BUTTON: 'اتمام اشتراک گذاری', + LBL_SHARING_START_SHARING_ERROR: 'ابتدا اشتراک گذاری قبلی را پایان دهید', + LBL_SHARING_END_SHARING_ERROR: 'ابتدا اشتراک گذاری را شروع کنید.', }; diff --git a/src/components/loaderForm/index.js b/src/components/main/Collabora/Iframe/LoaderForm.js similarity index 98% rename from src/components/loaderForm/index.js rename to src/components/main/Collabora/Iframe/LoaderForm.js index 289812a..7e1eb59 100644 --- a/src/components/loaderForm/index.js +++ b/src/components/main/Collabora/Iframe/LoaderForm.js @@ -5,7 +5,7 @@ export default function LoaderForm(props) { useEffect(() => { formElem.current.submit(); - }); + }, []); return (
diff --git a/src/components/main/Collabora/Iframe/index.js b/src/components/main/Collabora/Iframe/index.js new file mode 100644 index 0000000..0e439de --- /dev/null +++ b/src/components/main/Collabora/Iframe/index.js @@ -0,0 +1,24 @@ +import React, {forwardRef, useEffect} from 'react'; +import collaboraIframeHandler from '../shared/collaboraIframeHandler'; +import LoaderForm from './LoaderForm'; + +// eslint-disable-next-line react/display-name +export default forwardRef(({wopiUrl, accessToken}, ref) => { + useEffect(() => { + collaboraIframeHandler.initialize(ref.current); + }, []); + + return ( +
+
+ +