From 8bf82c1cf3456287c3d0141b84b14ed2ef02d46d Mon Sep 17 00:00:00 2001 From: csuadev <72958726+csuadev@users.noreply.github.com> Date: Tue, 21 Mar 2023 14:52:19 -0500 Subject: [PATCH] fix: Offline register option (#28467) * Chore: bring back the register on cloud option to CS * refactor: move top option buttons to avoid repeat code --------- Co-authored-by: Gabriel Casals <83978645+casalsgh@users.noreply.github.com> --- ...s => ManualWorkspaceRegistrationModal.tsx} | 8 +++-- .../views/admin/cloud/RegisterWorkspace.tsx | 10 ++++++ .../components/RegisterWorkspaceMenu.tsx | 34 +++++++++++++------ .../rocketchat-i18n/i18n/en.i18n.json | 2 +- 4 files changed, 40 insertions(+), 14 deletions(-) rename apps/meteor/client/views/admin/cloud/{ManualWorkspaceRegistrationModal.js => ManualWorkspaceRegistrationModal.tsx} (83%) diff --git a/apps/meteor/client/views/admin/cloud/ManualWorkspaceRegistrationModal.js b/apps/meteor/client/views/admin/cloud/ManualWorkspaceRegistrationModal.tsx similarity index 83% rename from apps/meteor/client/views/admin/cloud/ManualWorkspaceRegistrationModal.js rename to apps/meteor/client/views/admin/cloud/ManualWorkspaceRegistrationModal.tsx index 8b8c8d4bc6a..44e5e9f436a 100644 --- a/apps/meteor/client/views/admin/cloud/ManualWorkspaceRegistrationModal.js +++ b/apps/meteor/client/views/admin/cloud/ManualWorkspaceRegistrationModal.tsx @@ -10,7 +10,11 @@ const Steps = { PASTE: 'paste', }; -function ManualWorkspaceRegistrationModal({ onClose, ...props }) { +type ManualWorkspaceRegistrationModalProps = { + onClose: () => void; +}; + +const ManualWorkspaceRegistrationModal = ({ onClose, ...props }: ManualWorkspaceRegistrationModalProps) => { const t = useTranslation(); const [step, setStep] = useState(Steps.COPY); @@ -33,6 +37,6 @@ function ManualWorkspaceRegistrationModal({ onClose, ...props }) { (step === Steps.PASTE && )} ); -} +}; export default ManualWorkspaceRegistrationModal; diff --git a/apps/meteor/client/views/admin/cloud/RegisterWorkspace.tsx b/apps/meteor/client/views/admin/cloud/RegisterWorkspace.tsx index 242e23e38bf..392a656d43e 100644 --- a/apps/meteor/client/views/admin/cloud/RegisterWorkspace.tsx +++ b/apps/meteor/client/views/admin/cloud/RegisterWorkspace.tsx @@ -6,6 +6,7 @@ import type { ReactNode } from 'react'; import React from 'react'; import Page from '../../../components/Page'; +import ManualWorkspaceRegistrationModal from './ManualWorkspaceRegistrationModal'; import RegisterWorkspaceCards from './components/RegisterWorkspaceCards'; import RegisterWorkspaceMenu from './components/RegisterWorkspaceMenu'; import ConnectWorkspaceModal from './modals/ConnectWorkspaceModal'; @@ -35,6 +36,14 @@ const RegisterWorkspace = (): ReactNode => { } else setModal(); }; + const handleManualWorkspaceRegistrationButton = (): void => { + const handleModalClose = (): void => { + setModal(null); + reload(); + }; + setModal(); + }; + const handleRegistrationTag = () => { if (!isWorkspaceRegistered && !isConnectedToCloud) { return {t('RegisterWorkspace_NotRegistered_Title')}; @@ -63,6 +72,7 @@ const RegisterWorkspace = (): ReactNode => { isConnectedToCloud={isConnectedToCloud} onClick={handleRegisterWorkspaceClick} onStatusChange={reload} + onClickOfflineRegistration={handleManualWorkspaceRegistrationButton} /> diff --git a/apps/meteor/client/views/admin/cloud/components/RegisterWorkspaceMenu.tsx b/apps/meteor/client/views/admin/cloud/components/RegisterWorkspaceMenu.tsx index ce14fc3016c..3b41630afb2 100644 --- a/apps/meteor/client/views/admin/cloud/components/RegisterWorkspaceMenu.tsx +++ b/apps/meteor/client/views/admin/cloud/components/RegisterWorkspaceMenu.tsx @@ -9,10 +9,17 @@ type RegisterWorkspaceMenuProps = { isWorkspaceRegistered: boolean | string; isConnectedToCloud: boolean | string; onClick: () => void; + onClickOfflineRegistration: () => void; onStatusChange?: () => void; }; -const RegisterWorkspaceMenu = ({ isWorkspaceRegistered, isConnectedToCloud, onClick, onStatusChange }: RegisterWorkspaceMenuProps) => { +const RegisterWorkspaceMenu = ({ + isWorkspaceRegistered, + isConnectedToCloud, + onClick, + onClickOfflineRegistration, + onStatusChange, +}: RegisterWorkspaceMenuProps) => { const t = useTranslation(); const setModal = useSetModal(); @@ -21,6 +28,19 @@ const RegisterWorkspaceMenu = ({ isWorkspaceRegistered, isConnectedToCloud, onCl setModal(); }; + const renderTopOptionButtons = () => { + const title = isWorkspaceRegistered ? t('ConnectWorkspace_Button') : t('RegisterWorkspace_Button'); + + return ( + + + + + ); + }; + return ( {isWorkspaceRegistered && isConnectedToCloud && ( @@ -35,16 +55,8 @@ const RegisterWorkspaceMenu = ({ isWorkspaceRegistered, isConnectedToCloud, onCl )} - {isWorkspaceRegistered && !isConnectedToCloud && ( - - )} - {!isWorkspaceRegistered && ( - - )} + {isWorkspaceRegistered && !isConnectedToCloud && renderTopOptionButtons()} + {!isWorkspaceRegistered && renderTopOptionButtons()} ); }; diff --git a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json index 736ce48a4c0..70821c3cc79 100644 --- a/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/apps/meteor/packages/rocketchat-i18n/i18n/en.i18n.json @@ -990,7 +990,7 @@ "Cloud_Apply_license": "Apply license", "Cloud_connectivity": "Cloud Connectivity", "Cloud_address_to_send_registration_to": "The address to send your Cloud registration email to.", - "Cloud_click_here": "After copy the text, go to [cloud console (click here)](__cloudConsoleUrl__).", + "Cloud_click_here": "After copying the text, go to [cloud console (click here)](__cloudConsoleUrl__).", "Cloud_console": "Cloud Console", "Cloud_error_code": "Code: __errorCode__", "Cloud_error_in_authenticating": "Error received while authenticating",