dce-reactkit 3.2.2-beta.47 → 3.2.2-beta.49

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dce-reactkit",
3
- "version": "3.2.2-beta.47",
3
+ "version": "3.2.2-beta.49",
4
4
  "description": "Shared components for Harvard DCE apps",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -719,8 +719,8 @@ const LogReviewer: React.FC<Props> = (props) => {
719
719
  [
720
720
  (LogMetadata.Context ?? {}),
721
721
  LogBuiltInMetadata.Context,
722
- ].forEach((contextMap) => {
723
- Object.keys(contextMap).forEach((context) => {
722
+ ].forEach((partialContextMap) => {
723
+ Object.keys(partialContextMap).forEach((context) => {
724
724
  // Add context
725
725
  contextMap[context] = context;
726
726
 
@@ -738,8 +738,8 @@ const LogReviewer: React.FC<Props> = (props) => {
738
738
  [
739
739
  (LogMetadata.Target ?? {}),
740
740
  LogBuiltInMetadata.Target,
741
- ].forEach((targetMap) => {
742
- Object.keys(targetMap).forEach((target) => {
741
+ ].forEach((partialTargetMap) => {
742
+ Object.keys(partialTargetMap).forEach((target) => {
743
743
  targetMap[target] = target;
744
744
  });
745
745
  });
@@ -1128,6 +1128,10 @@ const LogReviewer: React.FC<Props> = (props) => {
1128
1128
  });
1129
1129
  }}
1130
1130
  >
1131
+ <FontAwesomeIcon
1132
+ icon={faTimes}
1133
+ />
1134
+ {' '}
1131
1135
  Reset
1132
1136
  </button>
1133
1137
  </div>
@@ -1388,58 +1392,61 @@ const LogReviewer: React.FC<Props> = (props) => {
1388
1392
  label="Action"
1389
1393
  className="mb-2"
1390
1394
  >
1391
- {
1392
- Object.keys(LogAction)
1393
- .map((action, i) => {
1394
- const description = genHumanReadableName(action);
1395
- return (
1396
- <CheckboxButton
1397
- key={action}
1398
- id={`LogReviewer-action-${action}-checkbox`}
1399
- text={description}
1400
- ariaLabel={`include logs with action type "${description}" in results`}
1401
- noMarginOnRight={i === Object.keys(LogAction).length - 1}
1402
- checked={actionErrorFilterState.action[action]}
1403
- onChanged={(checked) => {
1404
- actionErrorFilterState.action[action] = checked;
1405
- console.log(actionErrorFilterState, action, checked);
1406
- dispatch({
1407
- type: ActionType.UpdateActionErrorFilterState,
1408
- actionErrorFilterState,
1409
- });
1410
- }}
1411
- />
1412
- );
1413
- })
1414
- }
1395
+ <div className="d-flex gap-1 flex-wrap">
1396
+ {
1397
+ Object.keys(LogAction)
1398
+ .map((action) => {
1399
+ const description = genHumanReadableName(action);
1400
+ return (
1401
+ <CheckboxButton
1402
+ key={action}
1403
+ id={`LogReviewer-action-${action}-checkbox`}
1404
+ text={description}
1405
+ ariaLabel={`include logs with action type "${description}" in results`}
1406
+ noMarginOnRight
1407
+ checked={actionErrorFilterState.action[action]}
1408
+ onChanged={(checked) => {
1409
+ actionErrorFilterState.action[action] = checked;
1410
+ console.log(actionErrorFilterState, action, checked);
1411
+ dispatch({
1412
+ type: ActionType.UpdateActionErrorFilterState,
1413
+ actionErrorFilterState,
1414
+ });
1415
+ }}
1416
+ />
1417
+ );
1418
+ })
1419
+ }
1420
+ </div>
1415
1421
  </ButtonInputGroup>
1416
1422
  {/* Target */}
1417
1423
  <ButtonInputGroup label="Target">
1418
1424
  {/* List of targets */}
1419
- {
1420
- Object.keys(targetMap)
1421
- .map((target, i) => {
1422
- const description = genHumanReadableName(target);
1423
- return (
1424
- <CheckboxButton
1425
- key={target}
1426
- id={`LogReviewer-target-${target}-checkbox`}
1427
- text={description}
1428
- ariaLabel={`include logs with target "${description}" in results`}
1429
- checked={actionErrorFilterState.target[target]}
1430
- onChanged={(checked) => {
1431
- actionErrorFilterState.target[target] = checked;
1432
- console.log(actionErrorFilterState, target, checked);
1433
- dispatch({
1434
- type: ActionType.UpdateActionErrorFilterState,
1435
- actionErrorFilterState,
1436
- });
1437
- }}
1438
- noMarginOnRight={i === Object.keys(targetMap).length - 1}
1439
- />
1440
- );
1441
- })
1442
- }
1425
+ <div className="d-flex gap-1 flex-wrap">
1426
+ {
1427
+ Object.keys(targetMap)
1428
+ .map((target) => {
1429
+ const description = genHumanReadableName(target);
1430
+ return (
1431
+ <CheckboxButton
1432
+ key={target}
1433
+ id={`LogReviewer-target-${target}-checkbox`}
1434
+ text={description}
1435
+ ariaLabel={`include logs with target "${description}" in results`}
1436
+ checked={actionErrorFilterState.target[target]}
1437
+ onChanged={(checked) => {
1438
+ actionErrorFilterState.target[target] = checked;
1439
+ console.log(actionErrorFilterState, target, checked);
1440
+ dispatch({
1441
+ type: ActionType.UpdateActionErrorFilterState,
1442
+ actionErrorFilterState,
1443
+ });
1444
+ }}
1445
+ />
1446
+ );
1447
+ })
1448
+ }
1449
+ </div>
1443
1450
  </ButtonInputGroup>
1444
1451
  </TabBox>
1445
1452
  )
@@ -1461,6 +1468,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1461
1468
  className="form-control"
1462
1469
  aria-label="query for error message"
1463
1470
  value={actionErrorFilterState.errorMessage}
1471
+ placeholder="e.g. undefined is not a function"
1464
1472
  onChange={(e) => {
1465
1473
  actionErrorFilterState.errorMessage = e.target.value;
1466
1474
  dispatch({
@@ -1480,6 +1488,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1480
1488
  className="form-control"
1481
1489
  aria-label="query for error code"
1482
1490
  value={actionErrorFilterState.errorCode}
1491
+ placeholder="e.g. GC22"
1483
1492
  onChange={(e) => {
1484
1493
  actionErrorFilterState.errorCode = (
1485
1494
  (e.target.value)
@@ -1514,6 +1523,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1514
1523
  className="form-control"
1515
1524
  aria-label="query for user first name"
1516
1525
  value={advancedFilterState.userFirstName}
1526
+ placeholder="e.g. Divardo"
1517
1527
  onChange={(e) => {
1518
1528
  advancedFilterState.userFirstName = e.target.value;
1519
1529
  dispatch({
@@ -1533,6 +1543,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1533
1543
  className="form-control"
1534
1544
  aria-label="query for user last name"
1535
1545
  value={advancedFilterState.userLastName}
1546
+ placeholder="e.g. Calicci"
1536
1547
  onChange={(e) => {
1537
1548
  advancedFilterState.userLastName = e.target.value;
1538
1549
  dispatch({
@@ -1552,6 +1563,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1552
1563
  className="form-control"
1553
1564
  aria-label="query for user email"
1554
1565
  value={advancedFilterState.userEmail}
1566
+ placeholder="e.g. calicci@fas.harvard.edu"
1555
1567
  onChange={(e) => {
1556
1568
  advancedFilterState.userEmail = (
1557
1569
  (e.target.value)
@@ -1574,6 +1586,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1574
1586
  className="form-control"
1575
1587
  aria-label="query for user canvas id"
1576
1588
  value={advancedFilterState.userId}
1589
+ placeholder="e.g. 104985"
1577
1590
  onChange={(e) => {
1578
1591
  const { value } = e.target;
1579
1592
  // Only update if value contains only numbers
@@ -1643,6 +1656,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1643
1656
  className="form-control"
1644
1657
  aria-label="query for course name"
1645
1658
  value={advancedFilterState.courseName}
1659
+ placeholder="e.g. GLC 200"
1646
1660
  onChange={(e) => {
1647
1661
  advancedFilterState.courseName = e.target.value;
1648
1662
  dispatch({
@@ -1662,6 +1676,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1662
1676
  className="form-control"
1663
1677
  aria-label="query for course canvas id"
1664
1678
  value={advancedFilterState.courseId}
1679
+ placeholder="e.g. 15948"
1665
1680
  onChange={(e) => {
1666
1681
  const { value } = e.target;
1667
1682
  // Only update if value contains only numbers
@@ -1777,8 +1792,8 @@ const LogReviewer: React.FC<Props> = (props) => {
1777
1792
  type="text"
1778
1793
  className="form-control"
1779
1794
  aria-label="query for server route path"
1780
- placeholder="e.g. /api/ttm/courses/12345"
1781
1795
  value={advancedFilterState.routePath}
1796
+ placeholder="e.g. /api/ttm/courses/12345"
1782
1797
  onChange={(e) => {
1783
1798
  advancedFilterState.courseName = (
1784
1799
  (e.target.value)