Skip to content

Commit

Permalink
refactor: removing unnecessary bulk email form and changing paragon d…
Browse files Browse the repository at this point in the history
…ependency
  • Loading branch information
johnvente committed Mar 7, 2024
1 parent f2716f0 commit e3e2ce8
Show file tree
Hide file tree
Showing 25 changed files with 57 additions and 928 deletions.
2 changes: 1 addition & 1 deletion plugins/communications-app/BodyForm/index.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { Form } from '@edx/paragon';
import { Form } from '@openedx/paragon';
import { useIntl } from '@edx/frontend-platform/i18n';
import TextEditor from '@communications-app/src/components/bulk-email-tool/text-editor/TextEditor';
import { useSelector, useDispatch } from '@communications-app/src/components/bulk-email-tool/bulk-email-form/BuildEmailFormExtensible/context';
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/BodyForm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/CheckBoxForm/index.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import PropTypes from 'prop-types';
import { Form, Container } from '@edx/paragon';
import { Form, Container } from '@openedx/paragon';

const CheckBoxForm = ({ isChecked, handleChange, label }) => (
<Container className="my-4 border border-success-300 p-4">
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/CheckBoxForm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/InputForm/index.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import PropTypes from 'prop-types';
import { Form, Container } from '@edx/paragon';
import { Form, Container } from '@openedx/paragon';

const InputForm = ({
isValid,
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/InputForm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
30 changes: 28 additions & 2 deletions plugins/communications-app/RecipientsForm/index.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { Form } from '@edx/paragon';
import { Form } from '@openedx/paragon';
import { FormattedMessage } from '@edx/frontend-platform/i18n';
import { useSelector, useDispatch } from '@communications-app/src/components/bulk-email-tool/bulk-email-form/BuildEmailFormExtensible/context';
import { actionCreators as formActions } from '@communications-app/src/components/bulk-email-tool/bulk-email-form/BuildEmailFormExtensible/context/reducer';
Expand All @@ -10,10 +10,11 @@ import './styles.scss';
const disableIsHasLearners = ['track', 'cohort'];
const recipientsFormDescription = 'A selectable choice from a list of potential email recipients';

const RecipientsForm = ({ cohorts: additionalCohorts }) => {
const RecipientsForm = ({ cohorts: additionalCohorts, courseModes }) => {
const formData = useSelector((state) => state.form);
const dispatch = useDispatch();
const { isEditMode, emailRecipients, isFormSubmitted } = formData;
const hasCourseModes = courseModes.length > 1;

const [selectedGroups, setSelectedGroups] = useState([]);
const hasAllLearnersSelected = selectedGroups.some((group) => group === 'learners');
Expand Down Expand Up @@ -91,6 +92,24 @@ const RecipientsForm = ({ cohorts: additionalCohorts }) => {
description={recipientsFormDescription}
/>
</Form.Checkbox>
{
// additional modes
hasCourseModes
&& courseModes.map((courseMode) => (
<Form.Checkbox
key={`track:${courseMode.slug}`}
value={`track:${courseMode.slug}`}
disabled={hasAllLearnersSelected}
className="col col-lg-4 col-sm-6 col-12"
>
<FormattedMessage
id="bulk.email.form.mode.label"
defaultMessage="Learners in the {courseModeName} Track"
values={{ courseModeName: courseMode.name }}
/>
</Form.Checkbox>
))
}
{
// additional cohorts
additionalCohorts
Expand Down Expand Up @@ -152,10 +171,17 @@ const RecipientsForm = ({ cohorts: additionalCohorts }) => {

RecipientsForm.defaultProps = {
cohorts: [],
courseModes: [],
};

RecipientsForm.propTypes = {
cohorts: PropTypes.arrayOf(PropTypes.string),
courseModes: PropTypes.arrayOf(
PropTypes.shape({
slug: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
}),
),
};

export default RecipientsForm;
2 changes: 1 addition & 1 deletion plugins/communications-app/RecipientsForm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
4 changes: 2 additions & 2 deletions plugins/communications-app/ScheduleSection/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import {
Form,
Icon,
Toast,
} from '@edx/paragon';
} from '@openedx/paragon';
import {
SpinnerSimple,
Cancel,
Send,
Event,
Check,
} from '@edx/paragon/icons';
} from '@openedx/paragon/icons';
import { getConfig } from '@edx/frontend-platform';
import { useIntl } from '@edx/frontend-platform/i18n';
import ScheduleEmailForm from '@communications-app/src/components/bulk-email-tool/bulk-email-form/ScheduleEmailForm';
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/ScheduleSection/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/SubjectForm/index.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react';
import { Form } from '@edx/paragon';
import { Form } from '@openedx/paragon';
import { useIntl } from '@edx/frontend-platform/i18n';
import { useSelector, useDispatch } from '@communications-app/src/components/bulk-email-tool/bulk-email-form/BuildEmailFormExtensible/context';
import { actionCreators as formActions } from '@communications-app/src/components/bulk-email-tool/bulk-email-form/BuildEmailFormExtensible/context/reducer';
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/SubjectForm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/TaskAlertModalForm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
2 changes: 1 addition & 1 deletion plugins/communications-app/TestComponent/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"peerDependencies": {
"@edx/frontend-app-communications": "*",
"@edx/frontend-platform": "*",
"@edx/paragon": "*",
"@openedx/paragon": "*",
"prop-types": "*",
"react": "*"
},
Expand Down
6 changes: 3 additions & 3 deletions src/components/bulk-email-tool/BulkEmailTool.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ export default function BulkEmailTool() {
</h1>
</div>
<div className="row">
<BuildEmailFormExtensible
courseId={courseId}
cohorts={courseMetadata.cohorts}
<BuildEmailFormExtensible
courseId={courseId}
cohorts={courseMetadata.cohorts}
courseModes={courseMetadata.courseModes}
/>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,22 @@ import {
Form,
Spinner,
useToggle,
} from '@edx/paragon';
} from '@openedx/paragon';
import { BulkEmailContext } from '../../bulk-email-context';
import useMobileResponsive from '../../../../utils/useMobileResponsive';
import PluggableComponent from '../../../PluggableComponent';

import { withContextProvider, useDispatch } from './context';
import { actionCreators as formActions } from './context/reducer';

const BuildEmailFormExtensible = ({ courseId, cohorts }) => {
const BuildEmailFormExtensible = ({ courseId, cohorts, courseModes }) => {
const isMobile = useMobileResponsive();
const [{ editor }] = useContext(BulkEmailContext);
const [isTaskAlertOpen, openTaskAlert, closeTaskAlert] = useToggle(false);
const dispatch = useDispatch();

useDeepCompareEffect(() => {
/* istanbul ignore next */
if (editor.editMode) {
const newRecipientsValue = editor.emailRecipients;
const newSubjectValue = editor.emailSubject;
Expand Down Expand Up @@ -61,6 +62,7 @@ const BuildEmailFormExtensible = ({ courseId, cohorts }) => {
as="communications-app-recipients-checks"
cohorts={cohorts}
courseId={courseId}
courseModes={courseModes}
/>

<PluggableComponent
Expand Down Expand Up @@ -103,11 +105,18 @@ const BuildEmailFormExtensible = ({ courseId, cohorts }) => {

BuildEmailFormExtensible.defaultProps = {
cohorts: [],
courseModes: [],
};

BuildEmailFormExtensible.propTypes = {
courseId: PropTypes.string.isRequired,
cohorts: PropTypes.arrayOf(PropTypes.string),
courseModes: PropTypes.arrayOf(
PropTypes.shape({
slug: PropTypes.string.isRequired,
name: PropTypes.string.isRequired,
}),
),
};

export default withContextProvider(BuildEmailFormExtensible);
Loading

0 comments on commit e3e2ce8

Please sign in to comment.