Skip to content

(feat) O3-3230: Add rule builder to interactive builder #450

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

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

Conversation

NethmiRodrigo
Copy link
Collaborator

@NethmiRodrigo NethmiRodrigo commented Apr 9, 2025

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 integrates rule builder component into form builder, which provides an user-interface rule builder to build conditional logic for the forms in the form builder. Basically the PR #279, I've made a new PR because I worked off a new branch.
This feature is not under a feature flag, because I'd like us to get feedback on this.

Screenshots

Related Issue

https://issues.openmrs.org/browse/O3-3230

Other

Copy link
Contributor

github-actions bot commented Apr 9, 2025

Size Change: +43.9 kB (+1.11%)

Total Size: 4.02 MB

Filename Size Change
dist/2819.js 0 B -547 kB (removed) 🏆
dist/3207.js 0 B -78.2 kB (removed) 🏆
dist/4780.js 0 B -100 kB (removed) 🏆
dist/9976.js 0 B -30.5 kB (removed) 🏆
dist/1305.js 90 kB +90 kB (new file) 🆕
dist/1866.js 134 kB +134 kB (new file) 🆕
dist/276.js 31.2 kB +31.2 kB (new file) 🆕
dist/8967.js 548 kB +548 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.08 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/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/2100.js 645 B -1 B (-0.15%)
dist/210aec2722e6416a0349a987260e14a3.js 1.14 kB 0 B
dist/211511e7b374f57ad31acaf49dbdccb1.js 115 B 0 B
dist/2146.js 4.08 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/2649.js 3.26 kB -1 B (-0.03%)
dist/2690.js 4.08 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/3050.js 1.04 kB -2 B (-0.19%)
dist/3099.js 4.58 kB 0 B
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/3358.js 923 B -3 B (-0.32%)
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/3567d1ea443427e944a6f189a0898819.js 124 B 0 B
dist/3584.js 4.08 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.28 kB 0 B
dist/4132.js 4.08 kB 0 B
dist/41ae585cdbb9c2e8eefff5d30193029f.js 4.45 kB 0 B
dist/41e8a86a20df71cb48a373b096c06cd1.js 2.4 kB 0 B
dist/42a2f2dc50a6025bb5f910ee11c6acc0.js 9.45 kB 0 B
dist/42e0ea6351d45d342caab13cb12f9ea4.js 1.1 kB 0 B
dist/4300.js 4.57 kB +484 B (+11.86%) ⚠️
dist/43139bfbcbce9de597b4985dc1e6a03b.js 950 B 0 B
dist/432a5982ba3ddf958381d780e1e9a8e2.js 118 B 0 B
dist/432aff60ba31a74d2120031fdc894775.js 661 B 0 B
dist/4335.js 4.08 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 413 B -2 B (-0.48%)
dist/4618.js 4.08 kB 0 B
dist/4652.js 4.08 kB 0 B
dist/4674.js 1.54 kB -2 B (-0.13%)
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.33 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/5074.js 1.68 kB -2 B (-0.12%)
dist/5106411f7468a5ee5b1ee77aed12c0c7.js 3.03 kB 0 B
dist/5151.js 458 kB -392 B (-0.09%)
dist/5173.js 4.08 kB 0 B
dist/51f903c5ce5284a63196247cffb5ca40.js 121 B 0 B
dist/5241.js 4.08 kB 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.08 kB 0 B
dist/54560f13b36626237959e93b7771a484.js 117 B 0 B
dist/54a10f3bddad1e6da452fee7124fe846.js 5.98 kB 0 B
dist/5661.js 4.08 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.82 kB +48 B (+2.7%)
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/6468.js 4.7 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.08 kB 0 B
dist/66de33ceb67bd8224ff4bc0775e880b1.js 26 kB 0 B
dist/678f5201c1917429f334b88078ca4174.js 1.06 kB 0 B
dist/68323711e75444195e7eb950af2af177.js 1.15 kB 0 B
dist/6840.js 4.08 kB 0 B
dist/6859.js 4.08 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/7095.js 1.43 kB -3 B (-0.21%)
dist/70efbabef77fb217f904f41dbf7fe8bf.js 2.73 kB 0 B
dist/714763ddd9bd466c95df7b042900bb87.js 935 B 0 B
dist/7159.js 4.32 kB 0 B
dist/7222998c10fabd9c824cf8cf540b3b74.js 2.04 kB 0 B
dist/723.js 4.08 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/7366.js 534 B -2 B (-0.37%)
dist/73cfa70f37190781e3fb6f3542574b91.js 20.2 kB 0 B
dist/755114145e5b97e5571a160a39e716db.js 116 B 0 B
dist/7554.js 937 B -3 B (-0.32%)
dist/764b59bdd3a89e14f88c9d63020551a1.js 2.58 kB 0 B
dist/77aaca51c1c32acaf32656d45f4dc017.js 117 B 0 B
dist/77d2c612b57621e7c723a71cce67cbfc.js 9.23 kB 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/80ddbf4f0fdde4ddba57130e61043017.js 644 B 0 B
dist/81318a3530fb35d5178eb7a4a13a606f.js 944 B 0 B
dist/814b9f8056e54d372eefebdae282728e.js 21.8 kB 0 B
dist/8163.js 4.08 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/852f0ecd7b17e3bfd700a821ff438f7e.js 1.89 kB 0 B
dist/8581.js 0 B -7.05 kB (removed) 🏆
dist/8618.js 4.08 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/88730abfeb4a23e692ac7933882f12eb.js 1.43 kB 0 B
dist/88e2feda80ac8cfb28f1dc0ec833b40d.js 118 B 0 B
dist/890.js 4.08 kB 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/91beb08737a1bbf071f351fb0acdbf3c.js 1 kB 0 B
dist/9214.js 4.08 kB 0 B
dist/922.js 40.5 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.51 kB 0 B
dist/953c932d71a79a72673405ec103b5739.js 3.43 kB 0 B
dist/961.js 42.8 kB 0 B
dist/962.js 0 B -6.99 kB (removed) 🏆
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.08 kB 0 B
dist/9879.js 4.75 kB 0 B
dist/9895.js 4.08 kB 0 B
dist/9900.js 4.08 kB 0 B
dist/9913.js 4.08 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.18 kB +17 B (+0.41%)
dist/openmrs-esm-form-builder-app.js 3.59 kB -4 B (-0.11%)
dist/4422.js 6.83 kB +6.83 kB (new file) 🆕
dist/6500.js 1.08 kB +1.08 kB (new file) 🆕
dist/9871.js 2.72 kB +2.72 kB (new file) 🆕

compressed-size-action

@NethmiRodrigo
Copy link
Collaborator Author

I swear to god, this e2e test passes locally
Screenshot 2025-04-09 at 9 59 15 PM
Screenshot 2025-04-09 at 10 00 11 PM

Copy link
Member

@ibacher ibacher left a comment

Choose a reason for hiding this comment

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

Thanks @NethmiRodrigo! I realize a bunch of these are nit-picky, but I think one or two of these really need to be addressed.

@@ -21,6 +21,7 @@ module.exports = {
'^dexie$': '<rootDir>/node_modules/dexie',
'^react-i18next$': '<rootDir>/__mocks__/react-i18next.js',
'react-markdown': '<rootDir>/__mocks__/react-markdown.tsx',
'^uuid$': '<rootDir>/node_modules/uuid',
Copy link
Member

Choose a reason for hiding this comment

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

I'd probably prefer either 'uuid' or 'require.resolve('uuid')' here rather than hard-coding a path in node_modules.

@@ -88,6 +88,7 @@
"@typescript-eslint/eslint-plugin": "^7.9.0",
"@typescript-eslint/parser": "^7.9.0",
"css-loader": "^6.11.0",
"dayjs": "^1.11.11",
Copy link
Member

Choose a reason for hiding this comment

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

IIRC, dayjs should be parked as a peer dep.


export const RuleProvider: React.FC<RuleProviderProps> = ({ children }) => {
const [rules, setRules] = useState<Array<FormRule>>();
const cachedRules = useMemo(() => rules, [rules]);
Copy link
Member

Choose a reason for hiding this comment

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

I don't think there's a good reason to use useMemo() on a result from useState(). This seems like pure overhead.

export const RuleProvider: React.FC<RuleProviderProps> = ({ children }) => {
const [rules, setRules] = useState<Array<FormRule>>();
const cachedRules = useMemo(() => rules, [rules]);
const updateRules = useCallback((newRules: Array<FormRule>) => setRules(newRules), [setRules]);
Copy link
Member

Choose a reason for hiding this comment

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

Ditto here. Instead of wrapping in a callback, just pass setRules from useState()

Comment on lines +27 to +31
const rulesForQuestionIndex = rules?.findIndex((rule: FormRule) => rule?.question === question?.id);
const rulesForQuestion =
rulesForQuestionIndex !== -1 && rulesForQuestionIndex !== undefined
? rules?.filter((rule: FormRule) => rule?.question === question?.id)
: [{ id: uuidv4(), isNewRule: false, question: question?.id }];
Copy link
Member

Choose a reason for hiding this comment

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

This seems like it could be re-written to be much simpler:

Suggested change
const rulesForQuestionIndex = rules?.findIndex((rule: FormRule) => rule?.question === question?.id);
const rulesForQuestion =
rulesForQuestionIndex !== -1 && rulesForQuestionIndex !== undefined
? rules?.filter((rule: FormRule) => rule?.question === question?.id)
: [{ id: uuidv4(), isNewRule: false, question: question?.id }];
const rulesForQuestion = rules?.filter((rule: FormRule) => rule?.question === question?.id) ??
[{ id: uuidv4(), isNewRule: false, question: question?.id }];


interface CustomComboBoxProps {
id: string;
items: Array<Record<string, string>>;
Copy link
Member

Choose a reason for hiding this comment

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

Shouldn't the type here be a little more specific? I.e., we require a label property for this to work and it seems like we also expect a concept property... and ignore anything else.

}
.combobox .multiSelect {
position: relative;
bottom: 8px;// Adjust the z-index to a higher value to ensure it's on top
Copy link
Member

Choose a reason for hiding this comment

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

  1. There are a bunch of rules here specified using px. All of these should be changed to rem measurements.
  2. The comment here is, um... ???

Comment on lines +130 to +132
const prevPageIndex = useRef(-1);
const prevSectionIndex = useRef(-1);
const prevQuestionIndex = useRef(-1);
Copy link
Member

Choose a reason for hiding this comment

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

I'm a little concerned that these are really intended to be states rather than refs.

* Generates the condition expression based on the provided parameters.
*/
const getSchemaCondition = (
condition: string,
Copy link
Member

Choose a reason for hiding this comment

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

Shouldn't condition here have a stricter type, i.e., to correspond to the set of known conditions?

*/
const getArguments = useCallback((expression: string) => {
switch (expression) {
case 'BMI':
Copy link
Member

Choose a reason for hiding this comment

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

In general, we seem to have a lot of these that switch on labels rather than some sort of language-independent key, which means that this makes it harder to (eventually) translate this part of the app.

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.

3 participants