aec97816fb4643c4751acbc8f7775c361514a590
The various form states were getting mixed up during error handling, which lead to some strange situations where the cancel button was appearing when it shouldnt have been. This PR centralizes all of the form state changes into a useEffect hook to handle any and all state changes throughout the form. This approach not only centralizes the fragmented code, but prevents the state mixups that were happening previously. It also has the added benefit if down the line more state changes need to be added, the changes are all happening in one place.
|Codecov| |license|
.. |codecov| image:: https://codecov.io/gh/edx/frontend-app-learning/branch/master/graph/badge.svg?token=3z7XvuzTq3
:target: https://codecov.io/gh/edx/frontend-app-communications
.. |license| image:: https://img.shields.io/badge/license-AGPL-informational
:target: https://github.com/edx/frontend-app-account/blob/master/LICENSE
frontend-app-communications
==============================
Please tag **edx-aperture** on any PRs or issues. Thanks!
Introduction
------------
A tool used by course teams to communicate with thier learners. The interface for anything related to instructor to learner communications. Instructor bulk email, for example.
Getting started
------------
For now, this repo is not intergrated with devstack. You'll be running the app locally and not through docker. This does make setup a little easier.
1. Clone the repo into your usual workspace
.. code-block::
mkdir -p ~/workspace/
cd ~/workspace/
git clone https://github.com/edx/frontend-app-communications.git
2. Install frontend dependencies
.. code-block::
npm i
3. Start the devserver. The app will be running at ``localhost:1984``, or whatever port you change it too.
.. code-block::
npm start
Environment Variables/Setup Notes
---------------------------------
If you wish to add new environment varibles for local testing, they should be listed in 2 places:
1. In ``.env.development``
2. Added to the ``mergeConfig`` found in ``src/index.jsx``
.. code-block::
initialize({
config: () => {
mergeConfig({
EXAMPLE_VALUE: true,
}, 'CommuncationsAppConfig');
Running Tests
---------------------------
Tests use `jest` and `react-test-library`. To run all the tests for this repo:
.. code-block::
npm test
Languages
JavaScript
98.1%
Makefile
1.1%
SCSS
0.5%
HTML
0.3%