dce-reactkit 3.2.2-beta.39 → 3.2.2-beta.40

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.
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import React from 'react';
6
6
  declare type Props = {
7
+ customBackgroundColor?: string;
7
8
  children: React.ReactNode;
8
9
  };
9
10
  declare const Drawer: React.FC<Props>;
package/dist/index.d.ts CHANGED
@@ -275,6 +275,7 @@ declare const SimpleDateChooser: React.FC<Props$9>;
275
275
  */
276
276
 
277
277
  declare type Props$8 = {
278
+ customBackgroundColor?: string;
278
279
  children: React.ReactNode;
279
280
  };
280
281
  declare const Drawer: React.FC<Props$8>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dce-reactkit",
3
- "version": "3.2.2-beta.39",
3
+ "version": "3.2.2-beta.40",
4
4
  "description": "Shared components for Harvard DCE apps",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -12,6 +12,8 @@ import React from 'react';
12
12
 
13
13
  // Props definition
14
14
  type Props = {
15
+ // Custom background color
16
+ customBackgroundColor?: string,
15
17
  // Children to display
16
18
  children: React.ReactNode,
17
19
  };
@@ -49,6 +51,7 @@ const Drawer: React.FC<Props> = (props) => {
49
51
 
50
52
  // Destructure all props
51
53
  const {
54
+ customBackgroundColor,
52
55
  children,
53
56
  } = props;
54
57
 
@@ -61,7 +64,12 @@ const Drawer: React.FC<Props> = (props) => {
61
64
  /*----------------------------------------*/
62
65
 
63
66
  return (
64
- <div className="Drawer-container">
67
+ <div
68
+ className="Drawer-container"
69
+ style={{
70
+ backgroundColor: (customBackgroundColor ?? undefined),
71
+ }}
72
+ >
65
73
  <style>{style}</style>
66
74
  {children}
67
75
  </div>
@@ -182,10 +182,16 @@ const IntelliTable: React.FC<Props> = (props) => {
182
182
  const {
183
183
  title,
184
184
  id,
185
- data,
186
185
  columns,
187
186
  } = props;
188
187
 
188
+ // Get data, show empty row if none
189
+ const data = (
190
+ (props.data && props.data.length > 0)
191
+ ? props.data
192
+ : [{ id: 'empty-row' }]
193
+ );
194
+
189
195
  /* -------------- State ------------- */
190
196
 
191
197
  // Initial state
@@ -1233,7 +1233,7 @@ const LogReviewer: React.FC<Props> = (props) => {
1233
1233
  type="text"
1234
1234
  className="form-control"
1235
1235
  aria-label="query for error code"
1236
- value={actionErrorFilterState.errorMessage}
1236
+ value={actionErrorFilterState.errorCode}
1237
1237
  onChange={(e) => {
1238
1238
  actionErrorFilterState.errorCode = (
1239
1239
  (e.target.value)
@@ -1596,7 +1596,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1596
1596
  Object.keys(logMap[year]).forEach((month) => {
1597
1597
  logMap[year][month].forEach((log) => {
1598
1598
  /* ----------- Date Filter ---------- */
1599
- console.log('Log:', log);
1600
1599
 
1601
1600
  // Before start date
1602
1601
  if (
@@ -1614,7 +1613,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1614
1613
  && (log.day < dateFilterState.startDate.day)
1615
1614
  )
1616
1615
  ) {
1617
- console.log('RULED OUT: START');
1618
1616
  return;
1619
1617
  }
1620
1618
 
@@ -1634,7 +1632,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1634
1632
  && (log.day > dateFilterState.endDate.day)
1635
1633
  )
1636
1634
  ) {
1637
- console.log('RULED OUT: END');
1638
1635
  return;
1639
1636
  }
1640
1637
 
@@ -1655,7 +1652,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1655
1652
  })
1656
1653
  )
1657
1654
  ) {
1658
- console.log('RULED OUT: CONTEXT');
1659
1655
  console.log(log.context, contextFilterState);
1660
1656
  return;
1661
1657
  }
@@ -1675,7 +1671,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1675
1671
  // Subcontext is not selected
1676
1672
  && !(contextFilterState as any)[log.context][log.subcontext]
1677
1673
  ) {
1678
- console.log('RULED OUT: SUBCONTEXT');
1679
1674
  return;
1680
1675
  }
1681
1676
 
@@ -1694,7 +1689,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1694
1689
  return !tagFilterState[tag];
1695
1690
  })
1696
1691
  ) {
1697
- console.log('RULED OUT: TAGS');
1698
1692
  return;
1699
1693
  }
1700
1694
 
@@ -1707,7 +1701,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1707
1701
  // Log type doesn't match
1708
1702
  && actionErrorFilterState.type !== log.type
1709
1703
  ) {
1710
- console.log('RULED OUT: TYPE');
1711
1704
  return;
1712
1705
  }
1713
1706
 
@@ -1724,7 +1717,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1724
1717
  actionErrorFilterState.errorMessage.trim().toLowerCase(),
1725
1718
  )
1726
1719
  ) {
1727
- console.log('RULED OUT: ERROR MESSAGE');
1728
1720
  return;
1729
1721
  }
1730
1722
 
@@ -1739,7 +1731,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1739
1731
  actionErrorFilterState.errorCode.trim().toUpperCase(),
1740
1732
  )
1741
1733
  ) {
1742
- console.log('RULED OUT: ERROR CODE');
1743
1734
  return;
1744
1735
  }
1745
1736
  }
@@ -1753,7 +1744,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1753
1744
  // Target isn't selected
1754
1745
  && !actionErrorFilterState.target[log.target]
1755
1746
  ) {
1756
- console.log('RULED OUT: TARGET');
1757
1747
  return;
1758
1748
  }
1759
1749
 
@@ -1764,7 +1754,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1764
1754
  // Action isn't selected
1765
1755
  && !actionErrorFilterState.action[log.action]
1766
1756
  ) {
1767
- console.log('RULED OUT: ACTION');
1768
1757
  return;
1769
1758
  }
1770
1759
  }
@@ -1780,7 +1769,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1780
1769
  advancedFilterState.userFirstName.toLowerCase().trim(),
1781
1770
  )
1782
1771
  ) {
1783
- console.log('RULED OUT: FIRST');
1784
1772
  return;
1785
1773
  }
1786
1774
 
@@ -1793,7 +1781,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1793
1781
  advancedFilterState.userLastName.toLowerCase().trim(),
1794
1782
  )
1795
1783
  ) {
1796
- console.log('RULED OUT: LAST');
1797
1784
  return;
1798
1785
  }
1799
1786
 
@@ -1806,7 +1793,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1806
1793
  advancedFilterState.userEmail.toLowerCase().trim(),
1807
1794
  )
1808
1795
  ) {
1809
- console.log('RULED OUT: EMAIL');
1810
1796
  return;
1811
1797
  }
1812
1798
 
@@ -1819,7 +1805,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1819
1805
  advancedFilterState.userId.trim(),
1820
1806
  )
1821
1807
  ) {
1822
- console.log('RULED OUT: USER ID');
1823
1808
  return;
1824
1809
  }
1825
1810
 
@@ -1830,7 +1815,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1830
1815
  // Learners aren't included
1831
1816
  && !advancedFilterState.includeLearners
1832
1817
  ) {
1833
- console.log('RULED OUT: LEARNER');
1834
1818
  return;
1835
1819
  }
1836
1820
 
@@ -1841,7 +1825,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1841
1825
  // TTMs aren't included
1842
1826
  && !advancedFilterState.includeTTMs
1843
1827
  ) {
1844
- console.log('RULED OUT: TTM');
1845
1828
  return;
1846
1829
  }
1847
1830
 
@@ -1852,7 +1835,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1852
1835
  // Admins aren't included
1853
1836
  && !advancedFilterState.includeAdmins
1854
1837
  ) {
1855
- console.log('RULED OUT: ADMIN');
1856
1838
  return;
1857
1839
  }
1858
1840
 
@@ -1865,7 +1847,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1865
1847
  advancedFilterState.courseId.trim(),
1866
1848
  )
1867
1849
  ) {
1868
- console.log('RULED OUT: COURSE ID');
1869
1850
  return;
1870
1851
  }
1871
1852
 
@@ -1878,7 +1859,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1878
1859
  advancedFilterState.courseName.trim(),
1879
1860
  )
1880
1861
  ) {
1881
- console.log('RULED OUT: COURSE NAME');
1882
1862
  return;
1883
1863
  }
1884
1864
 
@@ -1889,9 +1869,8 @@ const LogReviewer: React.FC<Props> = (props) => {
1889
1869
  // Device info exists
1890
1870
  && log.device
1891
1871
  // Mobile filter doesn't match
1892
- && (advancedFilterState.isMobile === log.device.isMobile)
1872
+ && (advancedFilterState.isMobile !== log.device.isMobile)
1893
1873
  ) {
1894
- console.log('RULED OUT: MOBILE');
1895
1874
  return;
1896
1875
  }
1897
1876
 
@@ -1904,7 +1883,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1904
1883
  // Source filter doesn't match
1905
1884
  && (advancedFilterState.source !== log.source)
1906
1885
  ) {
1907
- console.log('RULED OUT: SOURCE');
1908
1886
  return;
1909
1887
  }
1910
1888
 
@@ -1917,7 +1895,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1917
1895
  // Route path doesn't match
1918
1896
  && !(log.routePath.includes(advancedFilterState.routePath.trim()))
1919
1897
  ) {
1920
- console.log('RULED OUT: PATH');
1921
1898
  return;
1922
1899
  }
1923
1900
 
@@ -1930,7 +1907,6 @@ const LogReviewer: React.FC<Props> = (props) => {
1930
1907
  // Route template doesn't match
1931
1908
  && !(log.routeTemplate.includes(advancedFilterState.routeTemplate.trim()))
1932
1909
  ) {
1933
- console.log('RULED OUT: TEMPLATE');
1934
1910
  return;
1935
1911
  }
1936
1912
 
@@ -2134,33 +2110,31 @@ const LogReviewer: React.FC<Props> = (props) => {
2134
2110
  },
2135
2111
  ];
2136
2112
 
2137
- // Create intelliTable
2138
- const dataTable = (
2113
+ // Nothing to show notice
2114
+ const noLogsNotice = (
2139
2115
  logs.length === 0
2140
2116
  ? (
2141
- <>
2142
- <h3 className="m-0">
2143
- Matching Logs:
2144
- </h3>
2145
- <div className="alert alert-warning text-center">
2146
- <h4 className="m-1">
2147
- No Logs to Show
2148
- </h4>
2149
- <div>
2150
- Either your filters are too strict or no matching logs have been
2151
- created yet.
2152
- </div>
2117
+ <div className="alert alert-warning text-center mt-2">
2118
+ <h4 className="m-1">
2119
+ No Logs to Show
2120
+ </h4>
2121
+ <div>
2122
+ Either your filters are too strict or no matching logs have been
2123
+ created yet.
2153
2124
  </div>
2154
- </>
2155
- )
2156
- : (
2157
- <IntelliTable
2158
- title="Matching Logs:"
2159
- id="logs"
2160
- data={logs}
2161
- columns={columns}
2162
- />
2125
+ </div>
2163
2126
  )
2127
+ : undefined
2128
+ );
2129
+
2130
+ // Create intelliTable
2131
+ const dataTable = (
2132
+ <IntelliTable
2133
+ title="Matching Logs:"
2134
+ id="logs"
2135
+ data={logs}
2136
+ columns={columns}
2137
+ />
2164
2138
  );
2165
2139
 
2166
2140
  // Main body
@@ -2169,6 +2143,7 @@ const LogReviewer: React.FC<Props> = (props) => {
2169
2143
  {filters}
2170
2144
  <div className="mt-2">
2171
2145
  {dataTable}
2146
+ {noLogsNotice}
2172
2147
  </div>
2173
2148
  </>
2174
2149
  );