import { Box, Button, ButtonGroup, Throbber, Callout } from '@rocket.chat/fuselage'; import { useSafely } from '@rocket.chat/fuselage-hooks'; import React, { useState } from 'react'; import Subtitle from '../../components/basic/Subtitle'; import { useTranslation } from '../../contexts/TranslationContext'; import { useMethod } from '../../contexts/ServerContext'; import { useSetting } from '../../contexts/SettingsContext'; import { useToastMessageDispatch } from '../../contexts/ToastMessagesContext'; function ConnectToCloudSection({ onRegisterStatusChange, ...props }) { const t = useTranslation(); const dispatchToastMessage = useToastMessageDispatch(); const [isConnecting, setConnecting] = useSafely(useState(false)); const registerWorkspace = useMethod('cloud:registerWorkspace'); const syncWorkspace = useMethod('cloud:syncWorkspace'); const hasAcceptedTerms = useSetting('Cloud_Service_Agree_PrivacyTerms'); const handleRegisterButtonClick = async () => { setConnecting(true); try { const isRegistered = await registerWorkspace(); if (!isRegistered) { throw Error(t('An error occured')); } const isSynced = await syncWorkspace(); if (!isSynced) { throw Error(t('An error occured syncing')); } dispatchToastMessage({ type: 'success', message: t('Sync Complete') }); } catch (error) { dispatchToastMessage({ type: 'error', message: error }); } finally { await (onRegisterStatusChange && onRegisterStatusChange()); setConnecting(false); } }; return {t('Cloud_registration_required')}

{t('Cloud_registration_required_description')}

{!hasAcceptedTerms && {t('Cloud_Service_Agree_PrivacyTerms_Login_Disabled_Warning')} }
; } export default ConnectToCloudSection;