import React, { useEffect, useState } from 'react'; import { getConfig } from '@edx/frontend-platform'; import { FormattedMessage, useIntl } from '@edx/frontend-platform/i18n'; import { Form, Hyperlink } from '@openedx/paragon'; import PropTypes from 'prop-types'; import AppConfigFormDivider from 'CourseAuthoring/pages-and-resources/discussions/app-config-form/apps/shared/AppConfigFormDivider'; import { useModel } from 'CourseAuthoring/generic/model-store'; import { providerNames, bbbPlanTypes } from './constants'; import LiveCommonFields from './LiveCommonFields'; import messages from './messages'; const BbbSettings = ({ values, setFieldValue, }) => { const intl = useIntl(); const [bbbPlan, setBbbPlan] = useState(values.tierType); useEffect(() => { setBbbPlan(values.tierType); }, [values.tierType]); const app = useModel('liveApps', 'big_blue_button'); const isPiiDisabled = !values.piiSharingEnable; function getBbbPlanOptions() { const options = ['Select', bbbPlanTypes.commercial]; if (app.hasFreeTier) { options.push(bbbPlanTypes.free); } return options.map(option => ( )); } const handlePlanChange = (e) => { setBbbPlan(e.target.value); setFieldValue('tierType', e.target.value); }; return ( <> {isPiiDisabled ? (

{intl.formatMessage(messages.requestPiiSharingEnableForBbb, { provider: providerNames[values.provider] })}

) : (

{intl.formatMessage(messages.providerHelperText, { providerName: providerNames[values.provider] })}

)} {getBbbPlanOptions()} { intl.formatMessage(messages.learnMore, { providerName: 'plans' }) } <> {isPiiDisabled ? (

{intl.formatMessage(messages.piiSharingEnableHelpTextBbb)}

) : ( <> {bbbPlan === bbbPlanTypes.commercial && } {bbbPlan === bbbPlanTypes.free && ( {intl.formatMessage(messages.freePlanMessage)} {intl.formatMessage(messages.privacyPolicy)} )} )} ); }; BbbSettings.propTypes = { values: PropTypes.shape({ consumerKey: PropTypes.string, consumerSecret: PropTypes.string, launchUrl: PropTypes.string, launchEmail: PropTypes.string, provider: PropTypes.string, piiSharingEmail: PropTypes.bool, piiSharingUsername: PropTypes.bool, piiSharingEnable: PropTypes.bool, tierType: PropTypes.string, }).isRequired, setFieldValue: PropTypes.func.isRequired, }; export default BbbSettings;