@kenyaemr/esm-care-panel-app 5.4.4-pre.43 → 5.4.4-pre.430

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/.turbo/turbo-build.log +7 -7
  2. package/currentProphylaxisUsed/fr.json +1 -0
  3. package/dist/1072.js +1 -1
  4. package/dist/1072.js.map +1 -1
  5. package/dist/1278.js +1 -0
  6. package/dist/1278.js.map +1 -0
  7. package/dist/1354.js +1 -0
  8. package/dist/1354.js.map +1 -0
  9. package/dist/1375.js +66 -0
  10. package/dist/1375.js.map +1 -0
  11. package/dist/1442.js +1 -0
  12. package/dist/1442.js.map +1 -0
  13. package/dist/15.js +1 -0
  14. package/dist/15.js.map +1 -0
  15. package/dist/1620.js +1 -0
  16. package/dist/1620.js.map +1 -0
  17. package/dist/1761.js +1 -1
  18. package/dist/1761.js.map +1 -1
  19. package/dist/1789.js +1 -0
  20. package/dist/1789.js.map +1 -0
  21. package/dist/1831.js +1 -0
  22. package/dist/1831.js.map +1 -0
  23. package/dist/1844.js +1 -0
  24. package/dist/1844.js.map +1 -0
  25. package/dist/1854.js +1 -0
  26. package/dist/1854.js.map +1 -0
  27. package/dist/1919.js +1 -0
  28. package/dist/1919.js.map +1 -0
  29. package/dist/1946.js +1 -0
  30. package/dist/1946.js.map +1 -0
  31. package/dist/2007.js +1 -1
  32. package/dist/2007.js.map +1 -1
  33. package/dist/2127.js +1 -0
  34. package/dist/2127.js.map +1 -0
  35. package/dist/2146.js +1 -0
  36. package/dist/2146.js.map +1 -0
  37. package/dist/2152.js +1 -0
  38. package/dist/2152.js.map +1 -0
  39. package/dist/2202.js +1 -0
  40. package/dist/2202.js.map +1 -0
  41. package/dist/2300.js +1 -0
  42. package/dist/2300.js.map +1 -0
  43. package/dist/2394.js +1 -0
  44. package/dist/2394.js.map +1 -0
  45. package/dist/2468.js +1 -0
  46. package/dist/2468.js.map +1 -0
  47. package/dist/2534.js +1 -1
  48. package/dist/2534.js.map +1 -1
  49. package/dist/2556.js +1 -0
  50. package/dist/2556.js.map +1 -0
  51. package/dist/26.js +1 -0
  52. package/dist/26.js.map +1 -0
  53. package/dist/2648.js +1 -0
  54. package/dist/2648.js.map +1 -0
  55. package/dist/2823.js +1 -0
  56. package/dist/2823.js.map +1 -0
  57. package/dist/2840.js +1 -0
  58. package/dist/2840.js.map +1 -0
  59. package/dist/2842.js +1 -0
  60. package/dist/2842.js.map +1 -0
  61. package/dist/2916.js +1 -0
  62. package/dist/2916.js.map +1 -0
  63. package/dist/2924.js +1 -0
  64. package/dist/2924.js.map +1 -0
  65. package/dist/3285.js +1 -0
  66. package/dist/3285.js.map +1 -0
  67. package/dist/3302.js +1 -0
  68. package/dist/3302.js.map +1 -0
  69. package/dist/3321.js +1 -0
  70. package/dist/3321.js.map +1 -0
  71. package/dist/3335.js +1 -0
  72. package/dist/3335.js.map +1 -0
  73. package/dist/3378.js +1 -0
  74. package/dist/3378.js.map +1 -0
  75. package/dist/3504.js +1 -0
  76. package/dist/3504.js.map +1 -0
  77. package/dist/356.js +1 -0
  78. package/dist/356.js.map +1 -0
  79. package/dist/3569.js +1 -0
  80. package/dist/3569.js.map +1 -0
  81. package/dist/3580.js +1 -0
  82. package/dist/3580.js.map +1 -0
  83. package/dist/3690.js +1 -0
  84. package/dist/3690.js.map +1 -0
  85. package/dist/3723.js +1 -0
  86. package/dist/3723.js.map +1 -0
  87. package/dist/3745.js +1 -0
  88. package/dist/3745.js.map +1 -0
  89. package/dist/3796.js +1 -0
  90. package/dist/3796.js.map +1 -0
  91. package/dist/3805.js +1 -0
  92. package/dist/3805.js.map +1 -0
  93. package/dist/3813.js +1 -0
  94. package/dist/3813.js.map +1 -0
  95. package/dist/3847.js +1 -0
  96. package/dist/3847.js.map +1 -0
  97. package/dist/393.js +6 -0
  98. package/dist/393.js.map +1 -0
  99. package/dist/3953.js +1 -0
  100. package/dist/3953.js.map +1 -0
  101. package/dist/3989.js +1 -0
  102. package/dist/3989.js.map +1 -0
  103. package/dist/4178.js +1 -1
  104. package/dist/4178.js.map +1 -1
  105. package/dist/4212.js +1 -0
  106. package/dist/4212.js.map +1 -0
  107. package/dist/4337.js +1 -0
  108. package/dist/4337.js.map +1 -0
  109. package/dist/4405.js +1 -0
  110. package/dist/4405.js.map +1 -0
  111. package/dist/4487.js +11 -0
  112. package/dist/4487.js.map +1 -0
  113. package/dist/4567.js +1 -0
  114. package/dist/4567.js.map +1 -0
  115. package/dist/4588.js +1 -0
  116. package/dist/4588.js.map +1 -0
  117. package/dist/4637.js +1 -1
  118. package/dist/4637.js.map +1 -1
  119. package/dist/466.js +1 -1
  120. package/dist/466.js.map +1 -1
  121. package/dist/4711.js +1 -0
  122. package/dist/4711.js.map +1 -0
  123. package/dist/4759.js +1 -0
  124. package/dist/4759.js.map +1 -0
  125. package/dist/4817.js +1 -0
  126. package/dist/4817.js.map +1 -0
  127. package/dist/4818.js +1 -0
  128. package/dist/4818.js.map +1 -0
  129. package/dist/500.js +1 -0
  130. package/dist/500.js.map +1 -0
  131. package/dist/5086.js +1 -1
  132. package/dist/5086.js.map +1 -1
  133. package/dist/510.js +1 -0
  134. package/dist/510.js.map +1 -0
  135. package/dist/5117.js +1 -0
  136. package/dist/5117.js.map +1 -0
  137. package/dist/5209.js +1 -1
  138. package/dist/5209.js.map +1 -1
  139. package/dist/5279.js +1 -0
  140. package/dist/5279.js.map +1 -0
  141. package/dist/5362.js +1 -0
  142. package/dist/5362.js.map +1 -0
  143. package/dist/5366.js +1 -0
  144. package/dist/5366.js.map +1 -0
  145. package/dist/5567.js +1 -0
  146. package/dist/5567.js.map +1 -0
  147. package/dist/5598.js +1 -0
  148. package/dist/5598.js.map +1 -0
  149. package/dist/5676.js +1 -1
  150. package/dist/5676.js.map +1 -1
  151. package/dist/5731.js +5 -0
  152. package/dist/5731.js.map +1 -0
  153. package/dist/5809.js +1 -1
  154. package/dist/5809.js.map +1 -1
  155. package/dist/5825.js +1 -0
  156. package/dist/5825.js.map +1 -0
  157. package/dist/5932.js +1 -0
  158. package/dist/5932.js.map +1 -0
  159. package/dist/5941.js +1 -0
  160. package/dist/5941.js.map +1 -0
  161. package/dist/6104.js +1 -1
  162. package/dist/6104.js.map +1 -1
  163. package/dist/6273.js +1 -0
  164. package/dist/6273.js.map +1 -0
  165. package/dist/6337.js +1 -0
  166. package/dist/6337.js.map +1 -0
  167. package/dist/6357.js +1 -0
  168. package/dist/6357.js.map +1 -0
  169. package/dist/6427.js +1 -1
  170. package/dist/6427.js.map +1 -1
  171. package/dist/6478.js +7 -0
  172. package/dist/6478.js.map +1 -0
  173. package/dist/65.js +1 -0
  174. package/dist/65.js.map +1 -0
  175. package/dist/6508.js +1 -0
  176. package/dist/6508.js.map +1 -0
  177. package/dist/6567.js +1 -0
  178. package/dist/6567.js.map +1 -0
  179. package/dist/6634.js +1 -0
  180. package/dist/6634.js.map +1 -0
  181. package/dist/6698.js +1 -0
  182. package/dist/6698.js.map +1 -0
  183. package/dist/682.js +1 -0
  184. package/dist/682.js.map +1 -0
  185. package/dist/689.js +1 -1
  186. package/dist/689.js.map +1 -1
  187. package/dist/7126.js +1 -0
  188. package/dist/7126.js.map +1 -0
  189. package/dist/7205.js +1 -0
  190. package/dist/7205.js.map +1 -0
  191. package/dist/7209.js +1 -0
  192. package/dist/7209.js.map +1 -0
  193. package/dist/740.js +1 -0
  194. package/dist/740.js.map +1 -0
  195. package/dist/7478.js +1 -1
  196. package/dist/7478.js.map +1 -1
  197. package/dist/7479.js +1 -0
  198. package/dist/7479.js.map +1 -0
  199. package/dist/7602.js +1 -0
  200. package/dist/7602.js.map +1 -0
  201. package/dist/7686.js +1 -0
  202. package/dist/7686.js.map +1 -0
  203. package/dist/7782.js +1 -0
  204. package/dist/7782.js.map +1 -0
  205. package/dist/7796.js +1 -0
  206. package/dist/7796.js.map +1 -0
  207. package/dist/7808.js +1 -0
  208. package/dist/7808.js.map +1 -0
  209. package/dist/781.js +1 -1
  210. package/dist/781.js.map +1 -1
  211. package/dist/8018.js +1 -0
  212. package/dist/8018.js.map +1 -0
  213. package/dist/8183.js +1 -0
  214. package/dist/8183.js.map +1 -0
  215. package/dist/8196.js +1 -1
  216. package/dist/8196.js.map +1 -1
  217. package/dist/820.js +1 -0
  218. package/dist/820.js.map +1 -0
  219. package/dist/8240.js +1 -1
  220. package/dist/8240.js.map +1 -1
  221. package/dist/8472.js +1 -0
  222. package/dist/8472.js.map +1 -0
  223. package/dist/8521.js +1 -0
  224. package/dist/8521.js.map +1 -0
  225. package/dist/8602.js +1 -0
  226. package/dist/8602.js.map +1 -0
  227. package/dist/8607.js +1 -0
  228. package/dist/8607.js.map +1 -0
  229. package/dist/867.js +1 -0
  230. package/dist/867.js.map +1 -0
  231. package/dist/8743.js +1 -0
  232. package/dist/8743.js.map +1 -0
  233. package/dist/8762.js +1 -0
  234. package/dist/8762.js.map +1 -0
  235. package/dist/8812.js +1 -0
  236. package/dist/8812.js.map +1 -0
  237. package/dist/8860.js +1 -0
  238. package/dist/8860.js.map +1 -0
  239. package/dist/8985.js +1 -0
  240. package/dist/8985.js.map +1 -0
  241. package/dist/8990.js +1 -0
  242. package/dist/8990.js.map +1 -0
  243. package/dist/9011.js +1 -1
  244. package/dist/9011.js.map +1 -1
  245. package/dist/9061.js +1 -0
  246. package/dist/9061.js.map +1 -0
  247. package/dist/9087.js +1 -0
  248. package/dist/9087.js.map +1 -0
  249. package/dist/9134.js +1 -0
  250. package/dist/9134.js.map +1 -0
  251. package/dist/9148.js +1 -0
  252. package/dist/9148.js.map +1 -0
  253. package/dist/9168.js +1 -0
  254. package/dist/9168.js.map +1 -0
  255. package/dist/9197.js +1 -0
  256. package/dist/9197.js.map +1 -0
  257. package/dist/9267.js +1 -0
  258. package/dist/9267.js.map +1 -0
  259. package/dist/935.js +1 -0
  260. package/dist/935.js.map +1 -0
  261. package/dist/9425.js +1 -1
  262. package/dist/9520.js +1 -1
  263. package/dist/9520.js.map +1 -1
  264. package/dist/9547.js +1 -0
  265. package/dist/9547.js.map +1 -0
  266. package/dist/9549.js +1 -0
  267. package/dist/9549.js.map +1 -0
  268. package/dist/9612.js +1 -0
  269. package/dist/9612.js.map +1 -0
  270. package/dist/9621.js +1 -0
  271. package/dist/9621.js.map +1 -0
  272. package/dist/9771.js +1 -0
  273. package/dist/9771.js.map +1 -0
  274. package/dist/9774.js +1 -0
  275. package/dist/9774.js.map +1 -0
  276. package/dist/9800.js +1 -0
  277. package/dist/9800.js.map +1 -0
  278. package/dist/9806.js +1 -0
  279. package/dist/9806.js.map +1 -0
  280. package/dist/9885.js +1 -0
  281. package/dist/9885.js.map +1 -0
  282. package/dist/992.js +1 -0
  283. package/dist/992.js.map +1 -0
  284. package/dist/995.js +1 -0
  285. package/dist/995.js.map +1 -0
  286. package/dist/kenyaemr-esm-care-panel-app.js +6 -5
  287. package/dist/kenyaemr-esm-care-panel-app.js.buildmanifest.json +1573 -672
  288. package/dist/kenyaemr-esm-care-panel-app.js.map +1 -1
  289. package/dist/main.js +6 -5
  290. package/dist/main.js.map +1 -1
  291. package/dist/routes.json +1 -1
  292. package/hivStatus/fr.json +1 -0
  293. package/package.json +4 -6
  294. package/src/care-panel/care-panel.component.tsx +1 -1
  295. package/src/care-panel-dashboard/care-panel-dashboard.component.tsx +8 -4
  296. package/src/care-programs/care-program-form-translation-keys.ts +121 -0
  297. package/src/care-programs/care-program.resource.ts +12 -6
  298. package/src/care-programs/care-programs.component.tsx +66 -31
  299. package/src/care-programs/link-patient-to-peer-action.component.tsx +38 -26
  300. package/src/care-programs/program-form-overflow-menu-item.component.tsx +40 -12
  301. package/src/care-programs/program.workspace.tsx +108 -96
  302. package/src/config-schema.ts +90 -14
  303. package/src/iit-risk-score/iit-risk-score-plot.tsx +5 -4
  304. package/src/index.ts +0 -4
  305. package/src/patient-discharge/patient-discharge.workspace.test.tsx +5 -10
  306. package/src/patient-discharge/patient-discharge.workspace.tsx +2 -2
  307. package/src/program-enrollment/program-enrollment.component.tsx +75 -67
  308. package/src/regimen-editor/regimen-button.component.tsx +12 -7
  309. package/src/regimen-editor/regimen-form.component.tsx +111 -107
  310. package/src/routes.json +19 -22
  311. package/translations/am.json +137 -0
  312. package/translations/en.json +137 -0
  313. package/translations/fr.json +138 -0
  314. package/translations/sw.json +272 -135
  315. package/treatmentNumber/fr.json +1 -0
  316. package/tsconfig.json +1 -1
  317. package/dist/1091.js +0 -1
  318. package/dist/1091.js.map +0 -1
  319. package/dist/1172.js +0 -1
  320. package/dist/1172.js.map +0 -1
  321. package/dist/121.js +0 -1
  322. package/dist/121.js.map +0 -1
  323. package/dist/132.js +0 -1
  324. package/dist/132.js.map +0 -1
  325. package/dist/1525.js +0 -1
  326. package/dist/1525.js.map +0 -1
  327. package/dist/1660.js +0 -1
  328. package/dist/1660.js.map +0 -1
  329. package/dist/1729.js +0 -17
  330. package/dist/1729.js.map +0 -1
  331. package/dist/1809.js +0 -7
  332. package/dist/1809.js.map +0 -1
  333. package/dist/1866.js +0 -1
  334. package/dist/1866.js.map +0 -1
  335. package/dist/1881.js +0 -1
  336. package/dist/1881.js.map +0 -1
  337. package/dist/1962.js +0 -1
  338. package/dist/1962.js.map +0 -1
  339. package/dist/1978.js +0 -1
  340. package/dist/1978.js.map +0 -1
  341. package/dist/2045.js +0 -1
  342. package/dist/2045.js.map +0 -1
  343. package/dist/2163.js +0 -1
  344. package/dist/2163.js.map +0 -1
  345. package/dist/2267.js +0 -1
  346. package/dist/2267.js.map +0 -1
  347. package/dist/2398.js +0 -1
  348. package/dist/2398.js.map +0 -1
  349. package/dist/2561.js +0 -1
  350. package/dist/2561.js.map +0 -1
  351. package/dist/2564.js +0 -1
  352. package/dist/2564.js.map +0 -1
  353. package/dist/2810.js +0 -2
  354. package/dist/2810.js.map +0 -1
  355. package/dist/2867.js +0 -1
  356. package/dist/2867.js.map +0 -1
  357. package/dist/3040.js +0 -1
  358. package/dist/3228.js +0 -1
  359. package/dist/3228.js.map +0 -1
  360. package/dist/3472.js +0 -1
  361. package/dist/3472.js.map +0 -1
  362. package/dist/3491.js +0 -1
  363. package/dist/3491.js.map +0 -1
  364. package/dist/3509.js +0 -1
  365. package/dist/3509.js.map +0 -1
  366. package/dist/3576.js +0 -1
  367. package/dist/3576.js.map +0 -1
  368. package/dist/3901.js +0 -1
  369. package/dist/3901.js.map +0 -1
  370. package/dist/399.js +0 -1
  371. package/dist/399.js.map +0 -1
  372. package/dist/4007.js +0 -66
  373. package/dist/4007.js.map +0 -1
  374. package/dist/4146.js +0 -1
  375. package/dist/4146.js.map +0 -1
  376. package/dist/4187.js +0 -1
  377. package/dist/4187.js.map +0 -1
  378. package/dist/4224.js +0 -1
  379. package/dist/4224.js.map +0 -1
  380. package/dist/4280.js +0 -1
  381. package/dist/4280.js.map +0 -1
  382. package/dist/4308.js +0 -1
  383. package/dist/4308.js.map +0 -1
  384. package/dist/4335.js +0 -1
  385. package/dist/4335.js.map +0 -1
  386. package/dist/4402.js +0 -1
  387. package/dist/4402.js.map +0 -1
  388. package/dist/4539.js +0 -1
  389. package/dist/4539.js.map +0 -1
  390. package/dist/4619.js +0 -1
  391. package/dist/4619.js.map +0 -1
  392. package/dist/4717.js +0 -1
  393. package/dist/4717.js.map +0 -1
  394. package/dist/4724.js +0 -1
  395. package/dist/4724.js.map +0 -1
  396. package/dist/4972.js +0 -1
  397. package/dist/4972.js.map +0 -1
  398. package/dist/509.js +0 -1
  399. package/dist/509.js.map +0 -1
  400. package/dist/5096.js +0 -1
  401. package/dist/5096.js.map +0 -1
  402. package/dist/5119.js +0 -1
  403. package/dist/5119.js.map +0 -1
  404. package/dist/5159.js +0 -13
  405. package/dist/5159.js.map +0 -1
  406. package/dist/5341.js +0 -1
  407. package/dist/5341.js.map +0 -1
  408. package/dist/5361.js +0 -1
  409. package/dist/5361.js.map +0 -1
  410. package/dist/5733.js +0 -1
  411. package/dist/5733.js.map +0 -1
  412. package/dist/5882.js +0 -1
  413. package/dist/5939.js +0 -5
  414. package/dist/5939.js.map +0 -1
  415. package/dist/6004.js +0 -1
  416. package/dist/6004.js.map +0 -1
  417. package/dist/6121.js +0 -3
  418. package/dist/6121.js.map +0 -1
  419. package/dist/6137.js +0 -1
  420. package/dist/6137.js.map +0 -1
  421. package/dist/623.js +0 -1
  422. package/dist/623.js.map +0 -1
  423. package/dist/6232.js +0 -1
  424. package/dist/6232.js.map +0 -1
  425. package/dist/6356.js +0 -1
  426. package/dist/6356.js.map +0 -1
  427. package/dist/6479.js +0 -1
  428. package/dist/6479.js.map +0 -1
  429. package/dist/6548.js +0 -1
  430. package/dist/6548.js.map +0 -1
  431. package/dist/6571.js +0 -1
  432. package/dist/6571.js.map +0 -1
  433. package/dist/6626.js +0 -1
  434. package/dist/6626.js.map +0 -1
  435. package/dist/6643.js +0 -1
  436. package/dist/6643.js.map +0 -1
  437. package/dist/6721.js +0 -1
  438. package/dist/6721.js.map +0 -1
  439. package/dist/6868.js +0 -1
  440. package/dist/6868.js.map +0 -1
  441. package/dist/6925.js +0 -1
  442. package/dist/6925.js.map +0 -1
  443. package/dist/7085.js +0 -1
  444. package/dist/7085.js.map +0 -1
  445. package/dist/7091.js +0 -1
  446. package/dist/7091.js.map +0 -1
  447. package/dist/7127.js +0 -1
  448. package/dist/7329.js +0 -1
  449. package/dist/7329.js.map +0 -1
  450. package/dist/7419.js +0 -1
  451. package/dist/7419.js.map +0 -1
  452. package/dist/7428.js +0 -1
  453. package/dist/7428.js.map +0 -1
  454. package/dist/7544.js +0 -1
  455. package/dist/7544.js.map +0 -1
  456. package/dist/7560.js +0 -1
  457. package/dist/7560.js.map +0 -1
  458. package/dist/774.js +0 -1
  459. package/dist/774.js.map +0 -1
  460. package/dist/8179.js +0 -6
  461. package/dist/8179.js.map +0 -1
  462. package/dist/8189.js +0 -1
  463. package/dist/8189.js.map +0 -1
  464. package/dist/8249.js +0 -1
  465. package/dist/8249.js.map +0 -1
  466. package/dist/8470.js +0 -1
  467. package/dist/8470.js.map +0 -1
  468. package/dist/8488.js +0 -1
  469. package/dist/8488.js.map +0 -1
  470. package/dist/8502.js +0 -1
  471. package/dist/8502.js.map +0 -1
  472. package/dist/8522.js +0 -1
  473. package/dist/8522.js.map +0 -1
  474. package/dist/8775.js +0 -11
  475. package/dist/8775.js.map +0 -1
  476. package/dist/887.js +0 -1
  477. package/dist/887.js.map +0 -1
  478. package/dist/916.js +0 -1
  479. package/dist/9466.js +0 -1
  480. package/dist/9466.js.map +0 -1
  481. package/dist/9675.js +0 -1
  482. package/dist/9675.js.map +0 -1
  483. package/dist/982.js +0 -1
  484. package/dist/982.js.map +0 -1
  485. package/dist/9931.js +0 -1
  486. package/dist/9931.js.map +0 -1
  487. package/jest.config.js +0 -3
@@ -1,4 +1,4 @@
1
- import React, { FC } from 'react';
1
+ import React, { useEffect, useState } from 'react';
2
2
  import styles from './care-programs.scss';
3
3
  import {
4
4
  Button,
@@ -12,7 +12,14 @@ import {
12
12
  TextInput,
13
13
  } from '@carbon/react';
14
14
  import { Controller, useForm } from 'react-hook-form';
15
- import { DefaultWorkspaceProps, ErrorState, LocationPicker, showSnackbar, useSession } from '@openmrs/esm-framework';
15
+ import {
16
+ ErrorState,
17
+ LocationPicker,
18
+ showSnackbar,
19
+ useSession,
20
+ type Workspace2DefinitionProps,
21
+ Workspace2,
22
+ } from '@openmrs/esm-framework';
16
23
  import { zodResolver } from '@hookform/resolvers/zod';
17
24
  import { useTranslation } from 'react-i18next';
18
25
  import {
@@ -24,20 +31,18 @@ import {
24
31
  useProgramDetail,
25
32
  } from './care-program.resource';
26
33
 
27
- type ProgramFormProps = DefaultWorkspaceProps & {
34
+ type ProgramFormProps = {
28
35
  enrollment?: Enrollment;
29
36
  patientUuid: string;
30
37
  programUuid: string;
31
38
  onSubmitSuccess?: () => void;
32
39
  };
33
40
 
34
- const ProgramForm: FC<ProgramFormProps> = ({
35
- patientUuid,
36
- programUuid,
37
- enrollment,
41
+ const ProgramForm: React.FC<Workspace2DefinitionProps<ProgramFormProps, {}, {}>> = ({
42
+ workspaceProps: { patientUuid, programUuid, enrollment, onSubmitSuccess },
38
43
  closeWorkspace,
39
- onSubmitSuccess,
40
44
  }) => {
45
+ const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);
41
46
  const getLocationUuid = () => {
42
47
  if (!enrollment?.location?.uuid && session?.sessionLocation?.uuid) {
43
48
  return session?.sessionLocation?.uuid;
@@ -78,6 +83,11 @@ const ProgramForm: FC<ProgramFormProps> = ({
78
83
  console.error(e);
79
84
  }
80
85
  };
86
+
87
+ useEffect(() => {
88
+ setHasUnsavedChanges(form.formState.isDirty);
89
+ }, [form.formState.isDirty, setHasUnsavedChanges]);
90
+
81
91
  if (isLoadingProgram) {
82
92
  return <InlineLoading />;
83
93
  }
@@ -85,96 +95,98 @@ const ProgramForm: FC<ProgramFormProps> = ({
85
95
  return <ErrorState headerTitle={t('error', 'Error')} error={programError} />;
86
96
  }
87
97
  return (
88
- <form className={styles.form} onSubmit={form.handleSubmit(onSubmit)}>
89
- <Stack gap={4} className={styles.grid}>
90
- <Column>
91
- <TextInput
92
- readOnly
93
- value={program?.name}
94
- title={t('program', 'Program')}
95
- id={'program'}
96
- labelText={t('program', 'Program')}
97
- />
98
- </Column>
99
- <Column>
100
- <Controller
101
- control={form.control}
102
- name="dateEnrolled"
103
- render={({ field, fieldState: { error } }) => (
104
- <DatePicker
105
- className={styles.datePickerInput}
106
- dateFormat="d/m/Y"
107
- datePickerType="single"
108
- value={field.value}
109
- onChange={(dates) => field.onChange(dates?.[0] ?? undefined)}
110
- invalid={!!error?.message}
111
- invalidText={error?.message}>
112
- <DatePickerInput
113
- id={`startdate-input`}
98
+ <Workspace2 hasUnsavedChanges={hasUnsavedChanges} title={t('programForm', 'Program Form')}>
99
+ <form className={styles.form} onSubmit={form.handleSubmit(onSubmit)}>
100
+ <Stack gap={4} className={styles.grid}>
101
+ <Column>
102
+ <TextInput
103
+ readOnly
104
+ value={program?.name}
105
+ title={t('program', 'Program')}
106
+ id={'program'}
107
+ labelText={t('program', 'Program')}
108
+ />
109
+ </Column>
110
+ <Column>
111
+ <Controller
112
+ control={form.control}
113
+ name="dateEnrolled"
114
+ render={({ field, fieldState: { error } }) => (
115
+ <DatePicker
116
+ className={styles.datePickerInput}
117
+ dateFormat="d/m/Y"
118
+ datePickerType="single"
119
+ value={field.value}
120
+ onChange={(dates) => field.onChange(dates?.[0] ?? undefined)}
114
121
  invalid={!!error?.message}
115
- invalidText={error?.message}
116
- placeholder="mm/dd/yyyy"
117
- labelText={t('startDate', 'Start Date')}
118
- size="lg"
119
- />
120
- </DatePicker>
121
- )}
122
- />
123
- </Column>
124
- <Column>
125
- <Controller
126
- control={form.control}
127
- name="dateCompleted"
128
- render={({ field, fieldState: { error } }) => (
129
- <DatePicker
130
- className={styles.datePickerInput}
131
- dateFormat="d/m/Y"
132
- value={field.value}
133
- datePickerType="single"
134
- onChange={(dates) => field.onChange(dates?.[0] ?? undefined)}
135
- invalid={!!error?.message}
136
- invalidText={error?.message}>
137
- <DatePickerInput
138
- id="endDate"
122
+ invalidText={error?.message}>
123
+ <DatePickerInput
124
+ id={`startdate-input`}
125
+ invalid={!!error?.message}
126
+ invalidText={error?.message}
127
+ placeholder="mm/dd/yyyy"
128
+ labelText={t('startDate', 'Start Date')}
129
+ size="lg"
130
+ />
131
+ </DatePicker>
132
+ )}
133
+ />
134
+ </Column>
135
+ <Column>
136
+ <Controller
137
+ control={form.control}
138
+ name="dateCompleted"
139
+ render={({ field, fieldState: { error } }) => (
140
+ <DatePicker
141
+ className={styles.datePickerInput}
142
+ dateFormat="d/m/Y"
143
+ value={field.value}
144
+ datePickerType="single"
145
+ onChange={(dates) => field.onChange(dates?.[0] ?? undefined)}
139
146
  invalid={!!error?.message}
140
- invalidText={error?.message}
141
- placeholder="mm/dd/yyyy"
142
- labelText={t('endDate', 'End Date')}
143
- size="lg"
144
- />
145
- </DatePicker>
146
- )}
147
- />
148
- </Column>
149
- <Column>
150
- <Controller
151
- control={form.control}
152
- name="location"
153
- render={({ field: { value, onChange }, fieldState: { error } }) => (
154
- <React.Fragment>
155
- <FormLabel className={`${styles.locationLabel} cds--label`}>
156
- {t('enrollmentLocation', 'Enrollment location')}
157
- </FormLabel>
158
- <LocationPicker
159
- selectedLocationUuid={value}
160
- defaultLocationUuid={session?.sessionLocation?.uuid}
161
- locationTag="Login Location"
162
- onChange={(locationUuid) => onChange(locationUuid)}
163
- />
164
- </React.Fragment>
165
- )}
166
- />
167
- </Column>
168
- </Stack>
169
- <ButtonSet className={styles.buttonSet}>
170
- <Button className={styles.button} kind="secondary" onClick={() => closeWorkspace()}>
171
- {t('discard', 'Discard')}
172
- </Button>
173
- <Button className={styles.button} kind="primary" type="submit" disabled={form.formState.isSubmitting}>
174
- {t('submit', 'Submit')}
175
- </Button>
176
- </ButtonSet>
177
- </form>
147
+ invalidText={error?.message}>
148
+ <DatePickerInput
149
+ id="endDate"
150
+ invalid={!!error?.message}
151
+ invalidText={error?.message}
152
+ placeholder="mm/dd/yyyy"
153
+ labelText={t('endDate', 'End Date')}
154
+ size="lg"
155
+ />
156
+ </DatePicker>
157
+ )}
158
+ />
159
+ </Column>
160
+ <Column>
161
+ <Controller
162
+ control={form.control}
163
+ name="location"
164
+ render={({ field: { value, onChange }, fieldState: { error } }) => (
165
+ <React.Fragment>
166
+ <FormLabel className={`${styles.locationLabel} cds--label`}>
167
+ {t('enrollmentLocation', 'Enrollment location')}
168
+ </FormLabel>
169
+ <LocationPicker
170
+ selectedLocationUuid={value}
171
+ defaultLocationUuid={session?.sessionLocation?.uuid}
172
+ locationTag="Login Location"
173
+ onChange={(locationUuid) => onChange(locationUuid)}
174
+ />
175
+ </React.Fragment>
176
+ )}
177
+ />
178
+ </Column>
179
+ </Stack>
180
+ <ButtonSet className={styles.buttonSet}>
181
+ <Button className={styles.button} kind="secondary" onClick={() => closeWorkspace()}>
182
+ {t('discard', 'Discard')}
183
+ </Button>
184
+ <Button className={styles.button} kind="primary" type="submit" disabled={form.formState.isSubmitting}>
185
+ {t('submit', 'Submit')}
186
+ </Button>
187
+ </ButtonSet>
188
+ </form>
189
+ </Workspace2>
178
190
  );
179
191
  };
180
192