Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(refactor) O3-4145: Break question modal into individual components #359

Open
wants to merge 29 commits into
base: main
Choose a base branch
from

Conversation

NethmiRodrigo
Copy link
Collaborator

@NethmiRodrigo NethmiRodrigo commented Nov 25, 2024

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. If there is a ticket, make sure your PR title includes a conventional commit label. See existing PR titles for inspiration.
  • My work conforms to the OpenMRS 3.0 Styleguide and design documentation.
  • My work includes tests or is validated by existing tests.

Summary

This PR aims to refactor the question modal and organize the code structure.

1. Refactor to the question modal

Why we need this?
The existing implementation had a major problem - there were two separate components (AddQuestionModal and EditQuestionModal) to support creating and editing a question. This meant that

  • a large amount of functionality was duplicated in the two components
  • the two components weren't similar in functionality, some things that you could do when creating a question couldn't be done when editing a question (EditQuestionModal was missing functionality that the AddQuestionModal had)
  • if we wanted to add more functionality, we'd have to keep on duplicating it
  • the way the component was structured made it difficult to add support for ObsGroup questions because in ObsGroup you'd have a question within a question and since we had everything bundled together in either AddQuestionModal or EditQuestionModal, this would require an unnecessarily complicated (and very inefficient) solution
  • we didn't have unit tests (because of the lack of units, lol)

Solution implemented
Question modal refactor
For both creating and editing a question, the same question modal will be used. All components introduced have at least basic unit tests introduced.

  1. Question Modal - contains all the modal content, along with being the parent component for the Question component. If the main question is an ObsGroup, it will render an option to create a grouped question that will render the Question component again.
    Adding support for ObsGroup wasn't meant to be a part of the refactor, but I included it to make sure that the refactor was done in a way that would support this
Screenshot 2025-01-08 at 5 58 45 PM Screenshot 2025-01-08 at 5 59 11 PM
  1. Question - houses all the input fields that are common to all questions (e.g. - question id) in addition to RenderingType component and QuestionType component.
  2. QuestionType - each question type has its own component (e.g - obs) . This makes it easier to add support to new question types without making a singular component too big or complicated. There is a parent QuestionType component that has a component map which renders the respective component based on the question type set in the question object.
  3. RenderingType - similar to QuestionType except for rendering types (e.g. -date, number, text).
  4. FormFieldContext - Since all the components above need to make changes to the same question (or formfield) object, a context is used that is provided in the QuestionModal and used in all the children components. A context was used because otherwise I would have prop drilled down a state.
  • Separate from the component refactor, the types were updated to use the ones imported from the form-engine-lib and not the ones typed within the form builder itself.

2. Adjust the code structure

  1. All components relevant to the interactive-builder were moved into the interactive-builder folder.
  2. All modals used were moved into interactive-builder/modal
  3. All tools were moved into /tools

3. Additional changes

Added aliases to the folders hooks, resources, and tools and to the types and constants file to avoid long relative paths - these were added to the webpack config and jest config.

Screenshots

Related Issue

https://issues.openmrs.org/browse/O3-4145
https://issues.openmrs.org/browse/O3-3950

Other

Work left to do:

  1. Remove usage of explicit types that are defined in form-engine-lib. Most types were re-defined within form builder, and are heavily outdated. We should change it to directly import the types from there instead.
  2. The unit tests could probably be better written according to standards, and could cover more scenarios.
  3. Add support for deleting a sub question of an ObsGroup type question.

Copy link
Contributor

github-actions bot commented Nov 25, 2024

Size Change: +7.52 kB (+0.19%)

Total Size: 3.9 MB

Filename Size Change
dist/3739.js 0 B -537 kB (removed) 🏆
dist/8443.js 0 B -84.6 kB (removed) 🏆
dist/9130.js 0 B -20.2 kB (removed) 🏆
dist/4290.js 84.6 kB +84.6 kB (new file) 🆕
dist/4710.js 537 kB +537 kB (new file) 🆕
dist/9976.js 34.5 kB +34.5 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size Change
dist/003671ee2a876e7614cd94390e2255b3.js 268 B 0 B
dist/0078b630bed2938ce03f618c2bcd1363.js 2.49 kB 0 B
dist/0144de97a3c256f81447e7e7135780e5.js 486 B 0 B
dist/019e34e85139cfc611bf23efa096c980.js 1.19 kB 0 B
dist/02174460fe8ff6a6bc19db86543b9600.js 652 B 0 B
dist/029ed9161a8d24a9c2ba97124020989d.js 118 B 0 B
dist/029f5ee0420883bc3c38a7f143fd174a.js 2.78 kB 0 B
dist/03980cb12dacd26148c22bb61fce440f.js 119 B 0 B
dist/03a5f5b2b97a8fc289399d92fba810d0.js 2.43 kB 0 B
dist/03aae8272914723a7bf85b984385032c.js 116 B 0 B
dist/03cecfc674939048da99384e68631f13.js 20.6 kB 0 B
dist/0416c21cfe088739209926632a360e3b.js 1.13 kB 0 B
dist/05922e9c75ebd5e5ccf6f4dc59320e0d.js 22.1 kB 0 B
dist/069a0d6b093e73e820f6a60a91fa614b.js 2.59 kB 0 B
dist/06d958315fc6cdbb28576b03e43203aa.js 122 B 0 B
dist/07397bd479cbc34bc04576b4f15bdf18.js 2.17 kB 0 B
dist/07567125b93045706d81f17f7d04e262.js 932 B 0 B
dist/078dd0bd08c93b1512e3d1b777591b21.js 116 B 0 B
dist/0972f21af3e75388ef55435c0b3b831d.js 4.59 kB 0 B
dist/0973bb38b2e3efd2a879fd8e81d50fce.js 1 kB 0 B
dist/0a1d9862d917663419ac2dd2e8193267.js 119 B 0 B
dist/0b06cbc7edf78b6f2810187262e7630b.js 2.56 kB 0 B
dist/0bd45b2d490c48c31619072a4fb0eaea.js 1.2 kB 0 B
dist/0d5aa4cf4cd6ced22d689adc35468925.js 19.9 kB 0 B
dist/0e67325b9a04863301e36c0c37947069.js 2.1 kB 0 B
dist/0f147528a6f36ca40c8b3ec796429f58.js 284 B 0 B
dist/0f597c46aa1bfb6f44556f8907f2d88a.js 6.53 kB 0 B
dist/0fa30731c46fe8b6a54f9752ad0ed7e0.js 1.18 kB 0 B
dist/10132993df2cf9c9423b53a8a44379ab.js 115 B 0 B
dist/1034e3807d1bcf55cb564491950237ab.js 119 B 0 B
dist/10c464f3f882bfeeefbc0934c2ee9fbe.js 2.5 kB 0 B
dist/111d9fdb9864abba36298d1a0807fe6d.js 1.79 kB 0 B
dist/118fa9ea46f9ba830cd0e843f4d3385a.js 3.06 kB 0 B
dist/1195816afa4a5e8183857be16a04ae6f.js 3.54 kB 0 B
dist/1197.js 4.01 kB 0 B
dist/119f6c45ea400e3c27e1ce172e4c881d.js 224 B 0 B
dist/11e3a2a8fb5bcb9d19298a80cafd3f5a.js 1.48 kB 0 B
dist/130340e2c62b9e858f186dab5f491e55.js 117 B 0 B
dist/135747176621bcc94e9edd0323a81d3c.js 2.15 kB 0 B
dist/1383530217ac0068c844902d24e18e08.js 2.32 kB 0 B
dist/13eda3507db9cbfb400f46b9b3ff6553.js 118 B 0 B
dist/1458.js 0 B -3.22 kB (removed) 🏆
dist/1495a3d68b15b8622c53f6688b64809f.js 1.61 kB 0 B
dist/1533058f0ce13acdaa8d5bdc7d147bef.js 119 B 0 B
dist/15deb9e34e10dc53410fddda6ef1d48c.js 9.46 kB 0 B
dist/15f3800d33b854ba476c9daf1b9e0326.js 122 B 0 B
dist/16c2e1b50af4ba05edaa03c8c9e9d18c.js 1.72 kB 0 B
dist/170487867de05784a96608617bdd544d.js 117 B 0 B
dist/1736cea368ae85240f34289307fdf67f.js 857 B 0 B
dist/17632e1e19e438f431784dfd77e01773.js 244 B 0 B
dist/17dc98279d24649d3ca77cbce8c44e83.js 115 B 0 B
dist/1875ecdf54e78b5f07ff1bd944cf794b.js 607 B 0 B
dist/18a469a2f11af88696d750921e25192a.js 2.61 kB 0 B
dist/191feb6103c36b202bc01ba262916cdf.js 115 B 0 B
dist/1b15b9f88acaf59b96e59c6b5f32da12.js 121 B 0 B
dist/1b1f88760dcd93a8245478a6151d5eed.js 10.6 kB 0 B
dist/1c24a68cb472146022d0806ea2505cfb.js 2.39 kB 0 B
dist/1c57b3481f295105588972ffa1305521.js 118 B 0 B
dist/1cc6fc3772824e2f87f10a9c3fad2dae.js 903 B 0 B
dist/1ce14f2cad9f3c122cb5ccfcd485ffb4.js 999 B 0 B
dist/1d3796180f854b5d8ab435ab0a1c2c11.js 914 B 0 B
dist/1ff1389501159e4846a5133e3b8992d8.js 1.19 kB 0 B
dist/20545e6680e996248f667158904a6a9b.js 2.87 kB 0 B
dist/210aec2722e6416a0349a987260e14a3.js 1.14 kB 0 B
dist/211511e7b374f57ad31acaf49dbdccb1.js 115 B 0 B
dist/2146.js 4.01 kB 0 B
dist/21ce36baab7df3edd2c728ac1a6776b7.js 19 kB 0 B
dist/2272c6632c52c3e402ab27b8045ab8f1.js 118 B 0 B
dist/2287e0a9970175f8e26f811b688d2d36.js 2.65 kB 0 B
dist/228ca80abf1ae030cbfe7faaec61913f.js 1.1 kB 0 B
dist/2302902e10c4afab56e1b864c96070cb.js 2.06 kB 0 B
dist/2348c5ed0da81c27fa889f56e43f91a1.js 11.8 kB 0 B
dist/23602ad4c88f0f19e7a0a12454ebf556.js 2.22 kB 0 B
dist/237d897892d45083fa60f6b81d5254ee.js 126 kB 0 B
dist/23bb1a9f279e7a732bfd405350aab114.js 118 B 0 B
dist/2413.js 14.6 kB 0 B
dist/24a3ff38afde257888d755ece9bfd704.js 115 B 0 B
dist/24f97ddd76026815674affbc50ad6169.js 962 B 0 B
dist/25718a469574ade47e23567d8c543169.js 112 B 0 B
dist/25be9f866b93e4ffa34f07a4fde632d4.js 2.79 kB 0 B
dist/25eda4bb98e40a82cfd5b4bf9fbc06ec.js 127 B 0 B
dist/2690.js 4.02 kB 0 B
dist/269732f4c5f6e82ea3246548a9631b47.js 2.63 kB 0 B
dist/27730a0bdc6f430cc85049a46a73a029.js 118 B 0 B
dist/27846e85433e54a3ec0ab34d62233dc5.js 1.23 kB 0 B
dist/283970c76db99e2d0d90f0e7c45494f9.js 1.37 kB 0 B
dist/28785bea435918d49b290d27bf660baa.js 119 B 0 B
dist/29c12604c7db4a1ad67ed4d7cdb4f4ed.js 14.5 kB 0 B
dist/2a8394955e047270a2a965ec67843989.js 1.08 kB 0 B
dist/2aa392a501973ebfcea38239a45ed8e7.js 1.83 kB 0 B
dist/2ad349208b3a727abb3c9f943865a27c.js 2.07 kB 0 B
dist/2b1b8f8b9e8f1e423a69afd121fd7da9.js 852 B 0 B
dist/2b5729e073775b8fb827fc8e4725e48a.js 1.43 kB 0 B
dist/2b89e20071dd734f42b8694d7a84c264.js 4.8 kB 0 B
dist/2cfc7330425be8d26b1ca0fa500c90b7.js 19.9 kB 0 B
dist/2d2a75e3d01a74b93d07db04df8abe5e.js 767 B 0 B
dist/2dd82c65030101b60dffccedd8741c6e.js 119 B 0 B
dist/2e841e8b77c2a2c00fd71940632bc1e1.js 117 B 0 B
dist/2f055ac4066041b9008dd6aebf9df34b.js 116 B 0 B
dist/2f25a4dc442bc9aebc58cae30c50c3e2.js 1.4 kB 0 B
dist/2f55cddc8eb85b63ee5b4ce0e5488230.js 641 B 0 B
dist/2fc0239242a898632ca8aa451cb930c2.js 119 B 0 B
dist/2fe2904fc024afaf81732563cb83e547.js 895 B 0 B
dist/3099.js 4.01 kB 0 B
dist/311.js 0 B -3.12 kB (removed) 🏆
dist/3184.js 11.2 kB 0 B
dist/318dcae1cdcd4733986a93e7a5fab7b8.js 3.27 kB 0 B
dist/31c610efb1d25afc90853b52ba4cb089.js 6.21 kB 0 B
dist/328cbf598e9711b0a87c19437b02f80d.js 1.09 kB 0 B
dist/33062102a809cea705ff3056240885a2.js 127 kB 0 B
dist/33b4e371d4983ab56f4db08627119f0b.js 420 B 0 B
dist/33d17d2cf6a71b82afeedb48f7928e56.js 19.6 kB 0 B
dist/349237ad9565dc823ce7bcb7527ba7ee.js 2.49 kB 0 B
dist/34f99cce131bd7aa65e7a924e2456006.js 2.68 kB 0 B
dist/3524.js 645 B 0 B
dist/3567d1ea443427e944a6f189a0898819.js 124 B 0 B
dist/3584.js 4.02 kB 0 B
dist/363d3bac8dcd9a83332c3758185ce080.js 1.36 kB 0 B
dist/367def81f25c0a08527f9a4e86e70c56.js 2.09 kB 0 B
dist/37172facd8a534a38f378ca2a9c7c11b.js 118 B 0 B
dist/37ee3b5201ae2e2dc5dc8b1b20ad900e.js 121 B 0 B
dist/38105097fc2497d628f398be7db5f6e8.js 126 B 0 B
dist/38b1d18836e38ee7b4deaeba0c35f7b8.js 369 B 0 B
dist/393edb0552508a3e36dd3922b33fe642.js 22 kB 0 B
dist/39fea85ed7dd99d7c6c9e59b7040523f.js 4.49 kB 0 B
dist/3a6ca6958d003ae67bb7fefc8713ee93.js 2 kB 0 B
dist/3ac8c7749734990e2d9f81eeca219886.js 1.01 kB 0 B
dist/3b02cca9e95276a74f3ed2bbc7a64ce6.js 1.88 kB 0 B
dist/3b190e5159c72fb7e27271956772bcba.js 117 B 0 B
dist/3b544bb2c5a4e7b225a4b50235a0fd6d.js 118 B 0 B
dist/3b6e7dc98c47eeafd851ca5072db4be6.js 116 B 0 B
dist/3bf96f8eb1859e2724a4b769af3b5f1e.js 3 kB 0 B
dist/3c5b59a666c5d39d9ba9cc054d36a410.js 122 B 0 B
dist/3ea020c57c2bbf457a8497df313b2e5c.js 463 B 0 B
dist/3eefbe1c009cfd730b2ca6f834367c45.js 1.37 kB 0 B
dist/3f896944a97f002f2146e028ff2eac63.js 117 B 0 B
dist/4055.js 4.21 kB 0 B
dist/4132.js 4.01 kB 0 B
dist/41ae585cdbb9c2e8eefff5d30193029f.js 4.45 kB 0 B
dist/41e8a86a20df71cb48a373b096c06cd1.js 2.4 kB 0 B
dist/4279.js 0 B -3.45 kB (removed) 🏆
dist/42a2f2dc50a6025bb5f910ee11c6acc0.js 9.45 kB 0 B
dist/42e0ea6351d45d342caab13cb12f9ea4.js 1.1 kB 0 B
dist/4300.js 3.97 kB -49 B (-1.22%)
dist/43139bfbcbce9de597b4985dc1e6a03b.js 950 B 0 B
dist/432a5982ba3ddf958381d780e1e9a8e2.js 118 B 0 B
dist/432aff60ba31a74d2120031fdc894775.js 661 B 0 B
dist/433.js 0 B -3.6 kB (removed) 🏆
dist/4335.js 4.01 kB 0 B
dist/4422.js 6.83 kB 0 B
dist/4430c55f023b72fb5e389cee9351b38c.js 2.51 kB 0 B
dist/44599d9b6202ebebfcdd073edf3562e3.js 892 B 0 B
dist/44efcea2f84e80cc4092a89796afe886.js 14.2 kB 0 B
dist/4502463be1912caf44ea4cb0af02b944.js 19.7 kB 0 B
dist/454.js 415 B 0 B
dist/4618.js 4.02 kB 0 B
dist/4652.js 4.01 kB 0 B
dist/46ed21c8fbddeefacaf10d78887aa22a.js 3.42 kB 0 B
dist/472ba8f81bf8cac86027cb1be4e3b9cd.js 2.96 kB 0 B
dist/47e5776dff3b80ed69ab5947dba33c76.js 315 B 0 B
dist/48827a80c9c8a8b394a208065231dabb.js 14.2 kB 0 B
dist/48e9351c5623d4da657ce7d5d0267ea6.js 122 B 0 B
dist/4944.js 4.27 kB 0 B
dist/49582665262ff6179b9f3a98adf7ed5c.js 1.03 kB 0 B
dist/4b692785a8a6340a89e6067274a7583c.js 1.91 kB 0 B
dist/4bee3a46b8378a7b4ef84492f08abd22.js 987 B 0 B
dist/4bf3bc1fbdd26ac698fef1bdf26e3ff4.js 118 B 0 B
dist/4c1bdecbedd36a5765de184ac056822a.js 3.22 kB 0 B
dist/4d0ebf4c528cee9b0cdd3e076e06570b.js 6.08 kB 0 B
dist/4d156ee0485ab4b40b090a3cd7b995a9.js 1.06 kB 0 B
dist/4d6d9020e7e5c8d8dee7a5e374355f05.js 4.79 kB 0 B
dist/4d8cb7033879cb7fcc7a43798e2bde22.js 117 B 0 B
dist/4db989de49617370db449991af03f578.js 1.19 kB 0 B
dist/4e389cce6fb8f78845fab249bce43c0b.js 116 B 0 B
dist/4ef80ee74467e0297eec3cc03092da01.js 115 B 0 B
dist/4f03709d8b1d52a622f0676f7a299510.js 6.42 kB 0 B
dist/4f683c6881e9f8740f5516a85b9eb9da.js 1.07 kB 0 B
dist/5106411f7468a5ee5b1ee77aed12c0c7.js 3.03 kB 0 B
dist/5151.js 396 kB +626 B (+0.16%)
dist/5152.js 0 B -3.23 kB (removed) 🏆
dist/5173.js 4.01 kB 0 B
dist/51f903c5ce5284a63196247cffb5ca40.js 121 B 0 B
dist/5241.js 4.01 kB 0 B
dist/5247.js 760 B 0 B
dist/52fd09d1713345d9ee64dc7daea9fd6f.js 1.69 kB 0 B
dist/5348f3cfbe5a63954e7d984f197bbddb.js 1.3 kB 0 B
dist/5352ecd8e5f1a2637b48e18cc406edb1.js 119 B 0 B
dist/5398e3b596fa15df4d84b2aa0464e5c4.js 249 kB 0 B
dist/53e3600928916423671f3388e2d67844.js 118 B 0 B
dist/5442.js 4.01 kB 0 B
dist/54560f13b36626237959e93b7771a484.js 117 B 0 B
dist/54a10f3bddad1e6da452fee7124fe846.js 5.98 kB 0 B
dist/5661.js 4.01 kB 0 B
dist/57e14488b13e50ebdb5fdfc7880da683.js 4.41 kB 0 B
dist/57f4109bd1f06be4dc2bcb8ff7eaf1e5.js 123 B 0 B
dist/582e24f5ba929e358fadfc7be4c18025.js 117 B 0 B
dist/58598705e7012f4ca1eb1dd21d3c59a5.js 118 B 0 B
dist/5861dfe4f2c7823623e82d0619c5bf06.js 117 B 0 B
dist/58aab872dbdb5e1607076e1935130e03.js 122 B 0 B
dist/58c35e5c73bbc1664bbd67c570342aa0.js 119 B 0 B
dist/59cc05504a1c823b6d4796bf6b430822.js 117 B 0 B
dist/5a496ae20cc576bef1d35972548207cf.js 120 B 0 B
dist/5a741aab715866cb4d9a55e89dfc8420.js 2.73 kB 0 B
dist/5a8ead0357e5029a2518959423dc29f3.js 3.41 kB 0 B
dist/5b6a626249d0bc43e412fffa6a9ee177.js 117 B 0 B
dist/5cab33610b8d9c1aee4db4672811cb5f.js 1.55 kB 0 B
dist/5cd4e1282f4409600b942819b7aa4f21.js 4.74 kB 0 B
dist/5ce650c06c385f9d15621e54c60457c0.js 118 B 0 B
dist/5cebfc2c3495b6294dcb2a99e5174872.js 921 B 0 B
dist/5d312b184c1f4565f51247d3c6dbba90.js 2.51 kB 0 B
dist/5d3314103b00c8ea165c6f9f6757f794.js 120 B 0 B
dist/5df362c9904925cdf574d9506e4be76d.js 3.83 kB 0 B
dist/5e55b301888460bd06c8e26d1011e01a.js 119 B 0 B
dist/5e8a4f4320a07ae4bb1d8a5cd621d955.js 569 B 0 B
dist/5f3ce6efab3c679ec1ad25ab0b3f6b2f.js 119 B 0 B
dist/5f5a93ab1249b7cbdb13d9466febd3a0.js 1.87 kB 0 B
dist/5fedbf948ed123687f77167fac1faf8b.js 118 B 0 B
dist/60190285b6c2243e14184b9e57d48dbb.js 1.5 kB 0 B
dist/6077.js 1.74 kB -27 B (-1.53%)
dist/60d2bacc2e51eabc2bb0afa982fffb56.js 34.4 kB 0 B
dist/60ede8d7ffdf4c05f2ce51b6d8d2be68.js 1.98 kB 0 B
dist/617ddc517c704963dc032140e80151d5.js 11.3 kB 0 B
dist/622e27eec5f26148f51ccc30315a3deb.js 2.67 kB 0 B
dist/6250c7594cd66ca91184b5beca293e06.js 1.01 kB 0 B
dist/62a96977e725e8bc809dc80afe0fedf1.js 1.61 kB 0 B
dist/63596b4896732fb322ab0496b4be1e74.js 120 B 0 B
dist/6398.js 0 B -3.56 kB (removed) 🏆
dist/6468.js 4.62 kB 0 B
dist/6490772da5aecc6cb9e4c625abc74a96.js 943 B 0 B
dist/64a5f4d62507d032038dcd76d15188e1.js 119 B 0 B
dist/64d6924350bd7706850cdc0dcc76ccf6.js 123 B 0 B
dist/6540.js 2.63 kB 0 B
dist/656927386f77b2620f35af391f59d5ab.js 3.05 kB 0 B
dist/65abcd8e99a385bcd8f1776f160040a9.js 7.11 kB 0 B
dist/65e7cf62ca9df32c18b630f31025a401.js 5.61 kB 0 B
dist/663ffb67b9683a2126410325d1a5a152.js 799 B 0 B
dist/6679.js 4.03 kB 0 B
dist/66de33ceb67bd8224ff4bc0775e880b1.js 26 kB 0 B
dist/6735.js 0 B -7.69 kB (removed) 🏆
dist/678f5201c1917429f334b88078ca4174.js 1.06 kB 0 B
dist/68323711e75444195e7eb950af2af177.js 1.15 kB 0 B
dist/6840.js 4.02 kB 0 B
dist/6859.js 4.02 kB 0 B
dist/6a1c347ab79a93f3ac01b08c8ccfc827.js 122 B 0 B
dist/6a851f05f1f4a974e02fe23eac2bad4e.js 10.6 kB 0 B
dist/6b09edfd49172cff5174b710ba90a2e5.js 21.5 kB 0 B
dist/6b4b87a54f673cfbb82be45329441bef.js 1.13 kB 0 B
dist/6bed1b724e74e6bc80688f42bc824d70.js 1.01 kB 0 B
dist/6c0a75dc5671c3f237a79f6e45b9891c.js 114 B 0 B
dist/6c67587c2093ac3a19da9f2196e040b7.js 122 B 0 B
dist/6c6d192b6860b4508a14c2d04769a35e.js 180 kB 0 B
dist/6d38cef4a006e6cfe54a6117aba7b600.js 115 B 0 B
dist/6e40b726d91e9138d9eaef6fd012c740.js 6.16 kB 0 B
dist/6faa9e5f2a0122d2333fa450337a09b0.js 121 B 0 B
dist/70074e0c785c9a808dea76c7c7d17af3.js 113 B 0 B
dist/70286c33cab463fd576766adecd2d5d9.js 120 B 0 B
dist/7080d2a1db1608264a6d9d9fbaf2cce8.js 121 B 0 B
dist/70efbabef77fb217f904f41dbf7fe8bf.js 2.73 kB 0 B
dist/714763ddd9bd466c95df7b042900bb87.js 935 B 0 B
dist/7159.js 4.01 kB 0 B
dist/7222998c10fabd9c824cf8cf540b3b74.js 2.04 kB 0 B
dist/723.js 4.02 kB 0 B
dist/724a16861717b5b4f786d24b56b62614.js 293 B 0 B
dist/7259bceba25ac1476fc775122a63d249.js 3.32 kB 0 B
dist/725da29f1643c2263a437c08a1454aea.js 122 B 0 B
dist/73cfa70f37190781e3fb6f3542574b91.js 20.2 kB 0 B
dist/755114145e5b97e5571a160a39e716db.js 116 B 0 B
dist/764b59bdd3a89e14f88c9d63020551a1.js 2.58 kB 0 B
dist/77aaca51c1c32acaf32656d45f4dc017.js 117 B 0 B
dist/77d2c612b57621e7c723a71cce67cbfc.js 9.23 kB 0 B
dist/7821.js 0 B -3.64 kB (removed) 🏆
dist/7879.js 968 B 0 B
dist/7901.js 1.82 kB 0 B
dist/79241f85b016a7332f85bb66667459c2.js 1.22 kB 0 B
dist/79455ab9a6cd507f5314141cc965093a.js 2.15 kB 0 B
dist/7b839a5c1f6d89538928c8a29003bbda.js 7.04 kB 0 B
dist/7c488184a1ff274206e8af2c3aeeb2f6.js 3.31 kB 0 B
dist/7cec85e554cfaf2464511da505025098.js 737 B 0 B
dist/7d64980faff5b041a461fd0ba3e2f3f5.js 1.76 kB 0 B
dist/7e4099fc2d04c7c1cf96892b962ba4ec.js 119 B 0 B
dist/7e7131507a20f96834597eb2de3e880a.js 8.03 kB 0 B
dist/7f007f3f67d9c856e727cec1369f8cba.js 5.04 kB 0 B
dist/7f79d4bde67c8013b187889b63e25bce.js 2.53 kB 0 B
dist/7f9a9efc9ab681fcbf6400e2adb368a9.js 3.89 kB 0 B
dist/805cb6232d7a9fa46025d48a43622ecf.js 117 B 0 B
dist/8065.js 0 B -3.71 kB (removed) 🏆
dist/80ddbf4f0fdde4ddba57130e61043017.js 644 B 0 B
dist/81318a3530fb35d5178eb7a4a13a606f.js 944 B 0 B
dist/814b9f8056e54d372eefebdae282728e.js 21.8 kB 0 B
dist/817edb0c6f9d66f9c0027762edb1d797.js 1.57 kB 0 B
dist/83387cb17a7680f59240e7b399e3ac2b.js 121 B 0 B
dist/834d28f1d0979e2614f1e8643f0b7211.js 14.7 kB 0 B
dist/839e3594798c1942d3c92f9acfaa5f0b.js 932 B 0 B
dist/83bd353f98aa901411c82b8af58d1296.js 1.98 kB 0 B
dist/84270e22d4439d15b0d8f392d1338d8e.js 9.03 kB 0 B
dist/843c762c24f7fac628d8c62519a7b308.js 331 B 0 B
dist/84abf03cc94d264bb38020b4ac5f76e1.js 1.72 kB 0 B
dist/8504.js 84.4 kB 0 B
dist/852f0ecd7b17e3bfd700a821ff438f7e.js 1.89 kB 0 B
dist/8618.js 4.01 kB 0 B
dist/875ae58e8015a6d08dbc9d0c04e24638.js 8.08 kB 0 B
dist/879d6bc1ca1dde95a9a98dc7a2ab0d06.js 496 B 0 B
dist/87bce6f50196688852142c679227b1b9.js 799 B 0 B
dist/880ae94877022f7fb0458ced0825eb4c.js 590 B 0 B
dist/8827.js 0 B -3.46 kB (removed) 🏆
dist/88730abfeb4a23e692ac7933882f12eb.js 1.43 kB 0 B
dist/88e2feda80ac8cfb28f1dc0ec833b40d.js 118 B 0 B
dist/894052ca1f8f35cc1cf7cfb29ef75027.js 1.31 kB 0 B
dist/894edcaf39c3c95818e3949d737ed459.js 119 B 0 B
dist/8a31266178067a316bb2503147cdb5cb.js 1.56 kB 0 B
dist/8a5127228870aafabfff6111d29313d6.js 842 B 0 B
dist/8b8336037f074d9dcbd20eab535b803f.js 1.46 kB 0 B
dist/8c7616f0adba6a5ac0d2f06ba4ebd696.js 1.9 kB 0 B
dist/8d9bb1799d9b98db107e84f10132e17f.js 118 B 0 B
dist/8ed58ed9c7e1cb1ae1f2830d29011ffb.js 115 B 0 B
dist/8ed5aba33ead1f94e97d5c35a5e93434.js 1.06 kB 0 B
dist/8eede17ae9e4d25c3c17b8a8a7fc3c3d.js 461 B 0 B
dist/8f3d1d788bae00d28b3f3faa4e0dc8e7.js 20.9 kB 0 B
dist/8f9ce72eeabbf31f2d51f4bcfc66d3b0.js 1.02 kB 0 B
dist/90812d89181b698975cbb081adcbbcb0.js 1.31 kB 0 B
dist/90f3dc3c18d447104b63c156cb7fddb5.js 1.02 kB 0 B
dist/915.js 695 B 0 B
dist/91beb08737a1bbf071f351fb0acdbf3c.js 1 kB 0 B
dist/9214.js 4.02 kB 0 B
dist/922.js 40.8 kB 0 B
dist/92f4aab5c66f6269c7054c8fbcb3de13.js 118 B 0 B
dist/947d538f92dd1e146e4a3c41e4eacb92.js 2.55 kB 0 B
dist/950a205e91da7e78226dd785fd6d34db.js 2.32 kB 0 B
dist/9538.js 4.01 kB 0 B
dist/953c932d71a79a72673405ec103b5739.js 3.43 kB 0 B
dist/961.js 42.8 kB 0 B
dist/962969a46fefcace3305abd4d6e14a2e.js 117 B 0 B
dist/9696a4229fb787eeb25b26f1274b75ee.js 118 B 0 B
dist/96b8d8b5efd11741639659c63a485c27.js 1.35 kB 0 B
dist/9807cf1e443a7440371904b6525f37eb.js 115 B 0 B
dist/981bd23edacd811f9e4a583d89b544ee.js 958 B 0 B
dist/9827973b533de05b338533a0211d97d9.js 118 B 0 B
dist/983fccb9f00748c487e889f6c83aa367.js 1.04 kB 0 B
dist/986.js 4.02 kB 0 B
dist/9879.js 4.62 kB 0 B
dist/9900.js 4.01 kB 0 B
dist/9913.js 4.01 kB 0 B
dist/9920e03a65566d728a73c7bf18bc5741.js 941 B 0 B
dist/9a1770fb5ef173575790243507a91740.js 12.9 kB 0 B
dist/9b1fd9cf4206cc32e84150c49707d811.js 116 B 0 B
dist/9b4de1346c73ba258736f1a3f00fdc14.js 940 B 0 B
dist/9b5a6ec07bb0a2daade10189696fc399.js 7.11 kB 0 B
dist/9b80d1a12acd18c90e41ca92073122a7.js 664 B 0 B
dist/9b9578869f378f8e2afbf85a76c0ac72.js 3.5 kB 0 B
dist/9d5bba46df7fb1577fec6cb90f1bb2a7.js 5.19 kB 0 B
dist/9ebb9ac2c9c875649c72722bc585d445.js 66.8 kB 0 B
dist/9ed8c3550b5c3c1e878d0692f0338cb7.js 982 B 0 B
dist/9fd3f255cfd09016ec7f4896bc51864c.js 939 B 0 B
dist/a0e32ba94aa4384823d768802b9486e1.js 1.61 kB 0 B
dist/a1bb5b3f6078f04941c00f87171dc0ae.js 7.49 kB 0 B
dist/a1c8660c5bcc6b6a43a7fb3c351174d9.js 119 B 0 B
dist/a223748cd69094dd12b486353b22f479.js 1.69 kB 0 B
dist/a2746fc96d535b19c120d4b87dc86ef1.js 1.01 kB 0 B
dist/a39d18e77a42bed1605d9b8760a065cf.js 19.9 kB 0 B
dist/a3a941911290b143d26ceb5e776e1d18.js 2.39 kB 0 B
dist/a3dfa410d90c00078f4b015410048f34.js 19.1 kB 0 B
dist/a3f2f385174625bc7046e29bf9d8c904.js 19.3 kB 0 B
dist/a41ce517e26d17d855b7224af9ee433b.js 116 B 0 B
dist/a496f663a8cf2dc047e12d8a80d76510.js 4.1 kB 0 B
dist/a4bedde07e392f8ebf64341b61f75df2.js 122 B 0 B
dist/a4d0588d199cb1afffb42e57ea40fa86.js 5.12 kB 0 B
dist/a4d638b976f02f35740be031f996e088.js 119 B 0 B
dist/a4e021a4b5d5d65cc87fee17c1886c3f.js 1.72 kB 0 B
dist/a52f9ac0e3d582ed7e488aa1dfc33eda.js 1.73 kB 0 B
dist/a533e643002830be2da76c9527265860.js 114 B 0 B
dist/a53ca23c172b4fa25b041ddd880555d8.js 19.9 kB 0 B
dist/a569591af2f834ec4b58f43ab7742186.js 115 B 0 B
dist/a6eb87af5cd7ae7e4fcba8ec606ec4ba.js 7.32 kB 0 B
dist/a709bba98acec5da3ea6258e245514cb.js 2.12 kB 0 B
dist/a83211eadd86ef80416334e72774ab11.js 5.53 kB 0 B
dist/a8c8aa148991e4ca35ed78cd5ccfcc03.js 6.75 kB 0 B
dist/a9cb92db2399f7ac97ad55fe79fe5c20.js 115 B 0 B
dist/aa0eee504d52a12d3a30bbd523afcc34.js 118 B 0 B
dist/aa5623ec68d23fedb9c9c115c7d99063.js 119 B 0 B
dist/aa973685905798627140a5159a35b395.js 19.3 kB 0 B
dist/aacdaa55e7b7626a9b15f52be049079d.js 32.1 kB 0 B
dist/ab0128ab12bcb8729032421b40f5f8dd.js 1.2 kB 0 B
dist/ab237eed5fd16ab99c06f0d28d465edb.js 4.22 kB 0 B
dist/af1635b600efd13f6059eb6ac9deae12.js 14.1 kB 0 B
dist/af6fdb556ee3f9065578bb01f81f6216.js 47.3 kB 0 B
dist/afba1f28f2baa29eae717d6cb03f5464.js 711 B 0 B
dist/b02d982ccb1011197a5a24800b178a0a.js 117 B 0 B
dist/b10accbff47791a59b8494225af07025.js 2.07 kB 0 B
dist/b1170472ae4b50e3b0070eb991e502fe.js 115 B 0 B
dist/b13d991d1e4a016abea3fe5837261690.js 2.85 kB 0 B
dist/b1e349371cb9c226905c846706ad8b93.js 810 B 0 B
dist/b1f3f77a9279cdb38846ebe13c3438bc.js 116 B 0 B
dist/b20cd9acf45420fcacfd923754185663.js 117 B 0 B
dist/b306285dfd802d091e788de0f96b8cb2.js 273 B 0 B
dist/b33ef9b4202539d3690251cb8213a034.js 123 B 0 B
dist/b3f1431b9e6d9e6632a93c2cd89f945b.js 118 B 0 B
dist/b60ba1535a60c18ce97b4e7f53ddbe67.js 8.92 kB 0 B
dist/b808fb222140a85b23ebbe0fffa906d9.js 116 B 0 B
dist/b881dca9d9a80f61d87374b4bd5a2dd5.js 117 B 0 B
dist/b8b6bd460e7da0ba8f3b2218327966ee.js 1.29 kB 0 B
dist/b934b22e8f8a8b1ba81dbc2cf058b0cd.js 847 B 0 B
dist/b953ce2f19e7291598cd9c05128133c1.js 2.8 kB 0 B
dist/b992b348ffb6453e4a02a60e71c5304e.js 1.89 kB 0 B
dist/ba6b8b3e06cd9d0aee9c69278ee84647.js 115 B 0 B
dist/bb1365c0983ce5ad50060b24788b9630.js 3.52 kB 0 B
dist/bb5bab7a675544fe31ddb7f4a77dffb9.js 121 B 0 B
dist/bd309bb3f23f2bfbcf914f2e71474ab5.js 1.14 kB 0 B
dist/be75b76e74c78535966ec8aaa7d46bec.js 1.01 kB 0 B
dist/bf37de323316c6ae5745fc11fd576b1c.js 1.7 kB 0 B
dist/bfae1ca81a1ee3b319b4562b0e40c591.js 1.21 kB 0 B
dist/bfbf008c2d6aebaec1764670826893bb.js 19.5 kB 0 B
dist/c1a1f4ba29aa2d9a0b1a1abe5cfee0c6.js 9.05 kB 0 B
dist/c3832579be376308fa819b04e7b0c66f.js 21.1 kB 0 B
dist/c3f345c994392d97785925e790513a9f.js 306 B 0 B
dist/c4c991b8f5eb242f1e220e5f568fdfbc.js 2.24 kB 0 B
dist/c4e58637b4d14c303e29d3ce4b4a210f.js 661 B 0 B
dist/c51840077c684be0e7e13339f85cd4a9.js 114 B 0 B
dist/c530988d2b1966fd10a4d99fa3877e1b.js 120 B 0 B
dist/c57f41cfe19507d8b44502752396695a.js 20 kB 0 B
dist/c64d6e1e72024bb5d3d3e9bfc19d183d.js 342 B 0 B
dist/c7b15736f0a5f688545ac278ce1f3366.js 20.5 kB 0 B
dist/c80e89199aef31e48addb2b35ea96365.js 117 B 0 B
dist/c8230f96396f0378d032dce2be3dce66.js 434 B 0 B
dist/c8acc93023012737a3bf8fb767b66838.js 8.34 kB 0 B
dist/caf0856934a6dcba7b4a70fb5897a4c9.js 11.2 kB 0 B
dist/cb0d121a88477f943960f5ad60602c22.js 3.01 kB 0 B
dist/cb4bb785934eeca9b408e892ae6b73b7.js 19.4 kB 0 B
dist/cb5746e29527a2fdb9f857a121e086ed.js 1.94 kB 0 B
dist/cb622c2d49403c3f56e333bc41a9b89c.js 16.1 kB 0 B
dist/cb652f200fc3dd740b2e7f678a9272ea.js 120 B 0 B
dist/cb9910e014b468ada91393696fcad206.js 3.66 kB 0 B
dist/cbdbd623038183a8c068dd24ecd90682.js 117 B 0 B
dist/cbdc4ca43a8c940a6c3f59a8b6f17df5.js 122 B 0 B
dist/cc65d108f0e7cfb200de1d0bcf115005.js 967 B 0 B
dist/cc715c90d57b30965fc297a12746d6b5.js 4.74 kB 0 B
dist/cd9a17f94a922c7c88000b1b3cdd67df.js 121 B 0 B
dist/ceecba6f637fcd258c33ac42d59c3166.js 20.2 kB 0 B
dist/cf188b3f83735389d47bb12fc9f7069a.js 115 B 0 B
dist/cf26dd07f19bcb5b7efbf057a6cfeb8f.js 118 B 0 B
dist/cf3f6b1c74c72cb5d02870022dbc9f94.js 116 B 0 B
dist/cf909ad6e321c2f98750f5c3581556f8.js 1.07 kB 0 B
dist/cf9c7cbfc2b609b9ae59daeab82719c4.js 117 B 0 B
dist/d0415105402964718010284fcfa8b2ea.js 582 B 0 B
dist/d09463c099fb2c44719380623a5c68fb.js 35.8 kB 0 B
dist/d170a98bf11efc613399814ca6b8f410.js 10.3 kB 0 B
dist/d188c3ef36e0a991304717ef4bf0b118.js 19.1 kB 0 B
dist/d1907231dc06c32481fefd6d47da973b.js 3.79 kB 0 B
dist/d1db2c4677dd2ee7a0c690c58798a013.js 2.37 kB 0 B
dist/d2242507bff41457eace047e5b93394e.js 9.32 kB 0 B
dist/d43ad5f9bad9a042b49b2592c7639c28.js 121 B 0 B
dist/d4b890206d2316955676dd69ef0f2779.js 3.16 kB 0 B
dist/d4cd33f4e9d3f931c0cd936e01b290af.js 6.67 kB 0 B
dist/d4f1a314cb3668f8e17f24bccf0229b6.js 1.74 kB 0 B
dist/d4f5981ee5a73d8a6e19112f2ffcb72c.js 1.14 kB 0 B
dist/d542dda7308361c34af2afb9b70d755a.js 117 B 0 B
dist/d5999827bd3af6b813a871de344b109a.js 4.09 kB 0 B
dist/d5a6140d581e5c4eb200259ce372f40b.js 117 B 0 B
dist/d5f79987405c2169278f8de37bcc9d05.js 120 B 0 B
dist/d7340300249ab98bd9b3f538a767106e.js 1.72 kB 0 B
dist/d76046afaf4d32b0f0afb63b4fabc680.js 3.3 kB 0 B
dist/d78d3b050ea95b068380d975fd413fd7.js 117 B 0 B
dist/d7d616d4aa8fd3f51d681242853dcde9.js 117 B 0 B
dist/d83cda12aee0c87c8b381a1234bf7798.js 480 B 0 B
dist/d85853bab3b213652aee023adecfb690.js 116 B 0 B
dist/da740c1b29a85b999a6874b59a1baeef.js 236 B 0 B
dist/db8ca5cfb6fe4aaef215f116f6991784.js 116 B 0 B
dist/dc8240db39815020378555a4d80571c3.js 737 B 0 B
dist/dc83a73f0eb89665520bbb6672dfa3cb.js 3.28 kB 0 B
dist/dc932cde2fbfca8e2901fb693968b131.js 1.01 kB 0 B
dist/dd6d3e34e82e105b85f3dc94c559c131.js 24.4 kB 0 B
dist/dd95c7ba45d24f75fd2ec04726836339.js 10.1 kB 0 B
dist/ddbc961769cd2ff4d4a7a136168ebf4c.js 123 B 0 B
dist/de0fd4fd7c2d7a4887cbc99eed91f797.js 118 B 0 B
dist/de73b4d2a9ed4bcb851f9141e303636d.js 866 B 0 B
dist/e00b330413304d60c26e164da7f9fe0c.js 1.71 kB 0 B
dist/e0adad8a8579bf99f3e22f7c214a5c64.js 117 B 0 B
dist/e0c565aadda4787ba4ef4456c0a7ee29.js 347 B 0 B
dist/e0fa6a4fe8bff90d50ce812e666957ca.js 1.93 kB 0 B
dist/e2b38a8393be2cf23f3894ace3efb1c3.js 117 B 0 B
dist/e2fe8f0d4fd950b20b30fabaea96b3f8.js 939 B 0 B
dist/e37ac12436bcd0536ec98ae8470a1228.js 2.59 kB 0 B
dist/e4917fa7632b01d28e99304d32d989f7.js 120 B 0 B
dist/e5dec17f3116be7e2b2307e43cd14e86.js 21 kB 0 B
dist/e61779df91186b23e7adf2d1968b2708.js 121 B 0 B
dist/e63fce237243190962fcc3b12b387e1b.js 4.84 kB 0 B
dist/e6ad50b520736b595970c9e07029c3f1.js 121 B 0 B
dist/e7e1a807af3160b342e0a3550cf8f7c5.js 122 B 0 B
dist/e7f37e0f2b6113039c45a326264c4d36.js 1.16 kB 0 B
dist/e874d975c9128dc6eb9a513d088bed9f.js 125 B 0 B
dist/e9382a0e67b22188c75e9418de1c9295.js 4.09 kB 0 B
dist/e9c8f7e13e00284ce126890bf7ac46fd.js 114 B 0 B
dist/eaa55a522fb2cb2f0287711f42344984.js 120 B 0 B
dist/eb0b62e1895dcf7491419aa728f00c38.js 1.02 kB 0 B
dist/ec7b3f184238605a5239da7559e6cff9.js 34.9 kB 0 B
dist/ec901efce9bc8572f27155236a447e62.js 2.99 kB 0 B
dist/ecdb4966f685f3e44b1f28fae46827a3.js 119 B 0 B
dist/ecff3d4bbf59ef41230960af46098e74.js 1.01 kB 0 B
dist/ee41eb1fd1d1c87c45e818b5a8a65cf8.js 992 B 0 B
dist/ee5d36473f84db2af26d82efd69a38ec.js 990 B 0 B
dist/ef87482c92662e8b69a21f47588474ea.js 422 B 0 B
dist/efc14cdf19554635e477781704353ec2.js 116 B 0 B
dist/eff4371180dfac54de25ed3a0105d82f.js 1.39 kB 0 B
dist/f13b8474637a47ca4401e1674e391466.js 10.2 kB 0 B
dist/f15362a7feef894b2e7f706252e6c510.js 474 B 0 B
dist/f15cbf0d23cba4a313f3f2acfef5370c.js 1.02 kB 0 B
dist/f326f2f263b1498fedbe1d07d7254d10.js 120 B 0 B
dist/f666b5647087bcfdf6623f8b14d56657.js 1.6 kB 0 B
dist/f6b33aded7ae7504bfcc4550925cccb0.js 1.37 kB 0 B
dist/f6d7091e70dee6c74956acfef2464d08.js 1.31 kB 0 B
dist/f9a0bb7f948ede9bf3f34989aef482db.js 19 kB 0 B
dist/f9bfa6a6410f75b5729fee89b56e3a86.js 24.9 kB 0 B
dist/fa0c561bb37040fc8145e5c70ea64912.js 16.9 kB 0 B
dist/fac0ce75e0690947a9e9e6f5b35c1ea8.js 7.08 kB 0 B
dist/fb393a7455b47f3d4fc30cf219d5145c.js 40 kB 0 B
dist/fb5080213f065f82f0391c551c864434.js 2.49 kB 0 B
dist/fcdcf2096a3f2854ee4323211e0dd89d.js 19.8 kB 0 B
dist/fd3859a700b456e06c65c0cf6b0af05c.js 1.02 kB 0 B
dist/fd39a83fd8083f7924f23beb597cb741.js 8.86 kB 0 B
dist/fd5bc50b18c9f46380cbe5ec1ac2127b.js 117 B 0 B
dist/fd9645aaf1f70c8abc562be41bee25fc.js 4.47 kB 0 B
dist/fd98f0e48b18e1de428edd5174539c2a.js 22.5 kB 0 B
dist/fe9499c0a5444f7f42843fa00fb355cb.js 4.04 kB 0 B
dist/fec23c6964d6cf25681d1f3e24b076a4.js 443 B 0 B
dist/ffd3b83e8b5878f4785591ff54b1dfff.js 115 B 0 B
dist/main.js 4.13 kB -16 B (-0.39%)
dist/openmrs-esm-form-builder-app.js 3.59 kB 0 B
dist/2100.js 3.24 kB +3.24 kB (new file) 🆕
dist/2649.js 3.24 kB +3.24 kB (new file) 🆕
dist/3050.js 3.58 kB +3.58 kB (new file) 🆕
dist/3358.js 3.46 kB +3.46 kB (new file) 🆕
dist/4674.js 3.73 kB +3.73 kB (new file) 🆕
dist/7095.js 3.62 kB +3.62 kB (new file) 🆕
dist/7366.js 3.14 kB +3.14 kB (new file) 🆕
dist/7554.js 3.48 kB +3.48 kB (new file) 🆕
dist/9551.js 3.65 kB +3.65 kB (new file) 🆕

compressed-size-action

@NethmiRodrigo NethmiRodrigo force-pushed the refactor/question-modal branch 7 times, most recently from 79f4893 to 3e36049 Compare November 29, 2024 11:23
@NethmiRodrigo NethmiRodrigo force-pushed the refactor/question-modal branch 2 times, most recently from 96f7b4c to a111ba5 Compare December 9, 2024 16:36
@NethmiRodrigo NethmiRodrigo force-pushed the refactor/question-modal branch from 7a2c23e to d76aad3 Compare December 19, 2024 08:04
src/constants.ts Outdated
Comment on lines 3 to 14
export const questionTypes = [
'control',
'encounterDatetime',
'encounterLocation',
'encounterProvider',
'encounterRole',
'obs',
'obsGroup',
'patientIdentifier',
'testOrder',
'programState',
];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can get better types this way, I think:

export const questionTypes = [
  'control',
  'encounterDatetime',
  'encounterLocation',
  'encounterProvider',
  'encounterRole',
  'obs',
  'obsGroup',
  'patientIdentifier',
  'testOrder',
  'programState',
] as const;

export type QuestionType = typeof questionTypes[number];

export const renderTypeOptions: Record<Exclude<QuestionType, 'obs'>, Array<RenderType>> = {
  control: ['text', 'markdown'],
  encounterDatetime: ['date', 'datetime'],
  encounterLocation: ['ui-select-extended'],
  encounterProvider: ['ui-select-extended'],
  encounterRole: ['ui-select-extended'],
  obsGroup: ['group', 'repeating'],
  testOrder: ['group', 'repeating'],
  patientIdentifier: ['text'],
  programState: ['select'],
};

Now QuestionType can be used where you need to reference a member of questionTypes and will be kept in sync with that list.

@NethmiRodrigo NethmiRodrigo force-pushed the refactor/question-modal branch from ff38986 to a79e1a3 Compare January 8, 2025 10:44
@NethmiRodrigo NethmiRodrigo marked this pull request as ready for review January 8, 2025 12:52
@NethmiRodrigo NethmiRodrigo force-pushed the refactor/question-modal branch from 594195c to cf23597 Compare January 10, 2025 06:42
@NethmiRodrigo NethmiRodrigo force-pushed the refactor/question-modal branch from 10b842f to c80da17 Compare January 17, 2025 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants