dce-reactkit 4.2.0-beta-select-admin-check.2 → 4.2.0

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.
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Checks if the current user is a select admin
3
+ * @author Gardenia Liu
4
+ * @returns true if the user is a select admin, false otherwise
5
+ */
6
+ declare const isSelectAdmin: () => Promise<boolean>;
7
+ export default isSelectAdmin;
@@ -81,6 +81,7 @@ import shuffleArray from './helpers/shuffleArray';
81
81
  import getWordCount from './helpers/getWordCount';
82
82
  import cloneDeep from './helpers/cloneDeep';
83
83
  import getTimestampFromTimeInfoInET from './helpers/getTimestampFromTimeInfoInET';
84
+ import isSelectAdmin from './helpers/isSelectAdmin';
84
85
  import ParamType from './types/ParamType';
85
86
  import ModalButtonType from './types/ModalButtonType';
86
87
  import ModalSize from './types/ModalSize';
@@ -106,4 +107,4 @@ import PickableItem from './components/ItemPicker/types/PickableItem';
106
107
  import DBEntry from './components/DBEntryManagerPanel/types/DBEntry';
107
108
  import DBEntryField from './components/DBEntryManagerPanel/types/DBEntryField';
108
109
  import DBEntryFieldType from './components/DBEntryManagerPanel/types/DBEntryFieldType';
109
- export { AppWrapper, LoadingSpinner, ErrorBox, Modal, TabBox, RadioButton, CheckboxButton, ButtonInputGroup, SimpleDateChooser, SimpleTimeChooser, Drawer, PopSuccessMark, PopFailureMark, PopPendingMark, CopiableBox, ItemPicker, LogReviewer, IntelliTable, CSVDownloadButton, DBEntryManagerPanel, Tooltip, ToggleSwitch, AutoscrollToBottomContainer, MultiSwitch, Dropdown, alert, prompt, confirm, showFatalError, ErrorWithCode, MINUTE_IN_MS, HOUR_IN_MS, DAY_IN_MS, LOG_REVIEW_ROUTE_PATH_PREFIX, LOG_ROUTE_PATH, LOG_REVIEW_STATUS_ROUTE, LOG_REVIEW_GET_LOGS_ROUTE, SELECT_ADMIN_CHECK_ROUTE, DynamicWord, abbreviate, avg, ceilToNumDecimals, floorToNumDecimals, forceNumIntoBounds, padDecimalZeros, padZerosLeft, roundToNumDecimals, sum, waitMs, getOrdinal, getTimeInfoInET, stubServerEndpoint, startMinWait, getHumanReadableDate, getPartOfDay, stringsToHumanReadableList, onlyKeepLetters, parallelLimit, getMonthName, genCSV, canReviewLogs, isMobileOrTablet, extractProp, compareArraysByProp, genCommaList, validateEmail, validatePhoneNumber, validateString, getLocalTimeInfo, idify, makeLinksClickable, prefixWithAOrAn, everyAsync, filterAsync, forEachAsync, mapAsync, someAsync, capitalize, shuffleArray, getWordCount, cloneDeep, getTimestampFromTimeInfoInET, initClient, visitServerEndpoint, logClientEvent, addFatalErrorHandler, leaveToURL, combineClassNames, useForceRender, setClientEventMetadataPopulator, ParamType, ModalButtonType, ModalSize, ModalType, ReactKitErrorCode, Variant, DayOfWeek, Log, LogType, LogSource, LogAction, LogBuiltInMetadata, LogMetadataType, LogFunction, LogTypeSpecificInfo, LogMainInfo, LogSourceSpecificInfo, LogLevel, IntelliTableColumn, DropdownItemType, LogReviewerFilterState, PickableItem, DBEntry, DBEntryField, DBEntryFieldType, };
110
+ export { AppWrapper, LoadingSpinner, ErrorBox, Modal, TabBox, RadioButton, CheckboxButton, ButtonInputGroup, SimpleDateChooser, SimpleTimeChooser, Drawer, PopSuccessMark, PopFailureMark, PopPendingMark, CopiableBox, ItemPicker, LogReviewer, IntelliTable, CSVDownloadButton, DBEntryManagerPanel, Tooltip, ToggleSwitch, AutoscrollToBottomContainer, MultiSwitch, Dropdown, alert, prompt, confirm, showFatalError, ErrorWithCode, MINUTE_IN_MS, HOUR_IN_MS, DAY_IN_MS, LOG_REVIEW_ROUTE_PATH_PREFIX, LOG_ROUTE_PATH, LOG_REVIEW_STATUS_ROUTE, LOG_REVIEW_GET_LOGS_ROUTE, SELECT_ADMIN_CHECK_ROUTE, DynamicWord, abbreviate, avg, ceilToNumDecimals, floorToNumDecimals, forceNumIntoBounds, padDecimalZeros, padZerosLeft, roundToNumDecimals, sum, waitMs, getOrdinal, getTimeInfoInET, stubServerEndpoint, startMinWait, getHumanReadableDate, getPartOfDay, stringsToHumanReadableList, onlyKeepLetters, parallelLimit, getMonthName, genCSV, canReviewLogs, isMobileOrTablet, extractProp, compareArraysByProp, genCommaList, validateEmail, validatePhoneNumber, validateString, getLocalTimeInfo, idify, makeLinksClickable, prefixWithAOrAn, everyAsync, filterAsync, forEachAsync, mapAsync, someAsync, capitalize, shuffleArray, getWordCount, cloneDeep, getTimestampFromTimeInfoInET, isSelectAdmin, initClient, visitServerEndpoint, logClientEvent, addFatalErrorHandler, leaveToURL, combineClassNames, useForceRender, setClientEventMetadataPopulator, ParamType, ModalButtonType, ModalSize, ModalType, ReactKitErrorCode, Variant, DayOfWeek, Log, LogType, LogSource, LogAction, LogBuiltInMetadata, LogMetadataType, LogFunction, LogTypeSpecificInfo, LogMainInfo, LogSourceSpecificInfo, LogLevel, IntelliTableColumn, DropdownItemType, LogReviewerFilterState, PickableItem, DBEntry, DBEntryField, DBEntryFieldType, };
@@ -22,6 +22,8 @@ declare enum LogAction {
22
22
  Resume = "Resume",
23
23
  Jump = "Jump",
24
24
  Post = "Post",
25
+ Like = "Like",
26
+ Dislike = "Dislike",
25
27
  Unknown = "Unknown"
26
28
  }
27
29
  export default LogAction;
package/dist/index.d.ts CHANGED
@@ -1183,6 +1183,8 @@ declare enum LogAction {
1183
1183
  Resume = "Resume",
1184
1184
  Jump = "Jump",
1185
1185
  Post = "Post",
1186
+ Like = "Like",
1187
+ Dislike = "Dislike",
1186
1188
  Unknown = "Unknown"
1187
1189
  }
1188
1190
 
@@ -1580,6 +1582,13 @@ declare const getTimestampFromTimeInfoInET: (opts: {
1580
1582
  minute: number;
1581
1583
  }) => number;
1582
1584
 
1585
+ /**
1586
+ * Checks if the current user is a select admin
1587
+ * @author Gardenia Liu
1588
+ * @returns true if the user is a select admin, false otherwise
1589
+ */
1590
+ declare const isSelectAdmin: () => Promise<boolean>;
1591
+
1583
1592
  /**
1584
1593
  * Days of the week
1585
1594
  * @author Gabe Abrams
@@ -1707,4 +1716,4 @@ type LogReviewerFilterState = {
1707
1716
  advancedFilterState: AdvancedFilterState;
1708
1717
  };
1709
1718
 
1710
- export { AppWrapper, AutoscrollToBottomContainer, ButtonInputGroup, CSVDownloadButton, CheckboxButton, CopiableBox, DAY_IN_MS, DBEntry, DBEntryField, DBEntryFieldType, DBEntryManagerPanel, DayOfWeek, Drawer, Dropdown, DropdownItemType, DynamicWord, ErrorBox, ErrorWithCode, HOUR_IN_MS, IntelliTable, IntelliTableColumn, ItemPicker, LOG_REVIEW_GET_LOGS_ROUTE, LOG_REVIEW_ROUTE_PATH_PREFIX, LOG_REVIEW_STATUS_ROUTE, LOG_ROUTE_PATH, LoadingSpinner, Log, LogAction, LogBuiltInMetadata, LogFunction, LogLevel, LogMainInfo, LogMetadataType, LogReviewer, LogReviewerFilterState, LogSource, LogSourceSpecificInfo, LogType, LogTypeSpecificInfo, MINUTE_IN_MS, Modal, ModalButtonType, ModalSize, ModalType, MultiSwitch, ParamType, PickableItem, PopFailureMark, PopPendingMark, PopSuccessMark, RadioButton, ReactKitErrorCode, SELECT_ADMIN_CHECK_ROUTE, SimpleDateChooser, SimpleTimeChooser, TabBox, ToggleSwitch, Tooltip, Variant, abbreviate, addFatalErrorHandler, alert, avg, canReviewLogs, capitalize, ceilToNumDecimals, cloneDeep, combineClassNames, compareArraysByProp, confirm, everyAsync, extractProp, filterAsync, floorToNumDecimals, forEachAsync, forceNumIntoBounds, genCSV, genCommaList, getHumanReadableDate, getLocalTimeInfo, getMonthName, getOrdinal, getPartOfDay, getTimeInfoInET, getTimestampFromTimeInfoInET, getWordCount, idify, initClient, isMobileOrTablet, leaveToURL, logClientEvent, makeLinksClickable, mapAsync, onlyKeepLetters, padDecimalZeros, padZerosLeft, parallelLimit, prefixWithAOrAn, prompt, roundToNumDecimals, setClientEventMetadataPopulator, showFatalError, shuffleArray, someAsync, startMinWait, stringsToHumanReadableList, stubServerEndpoint, sum, useForceRender, validateEmail, validatePhoneNumber, validateString, visitServerEndpoint, waitMs };
1719
+ export { AppWrapper, AutoscrollToBottomContainer, ButtonInputGroup, CSVDownloadButton, CheckboxButton, CopiableBox, DAY_IN_MS, DBEntry, DBEntryField, DBEntryFieldType, DBEntryManagerPanel, DayOfWeek, Drawer, Dropdown, DropdownItemType, DynamicWord, ErrorBox, ErrorWithCode, HOUR_IN_MS, IntelliTable, IntelliTableColumn, ItemPicker, LOG_REVIEW_GET_LOGS_ROUTE, LOG_REVIEW_ROUTE_PATH_PREFIX, LOG_REVIEW_STATUS_ROUTE, LOG_ROUTE_PATH, LoadingSpinner, Log, LogAction, LogBuiltInMetadata, LogFunction, LogLevel, LogMainInfo, LogMetadataType, LogReviewer, LogReviewerFilterState, LogSource, LogSourceSpecificInfo, LogType, LogTypeSpecificInfo, MINUTE_IN_MS, Modal, ModalButtonType, ModalSize, ModalType, MultiSwitch, ParamType, PickableItem, PopFailureMark, PopPendingMark, PopSuccessMark, RadioButton, ReactKitErrorCode, SELECT_ADMIN_CHECK_ROUTE, SimpleDateChooser, SimpleTimeChooser, TabBox, ToggleSwitch, Tooltip, Variant, abbreviate, addFatalErrorHandler, alert, avg, canReviewLogs, capitalize, ceilToNumDecimals, cloneDeep, combineClassNames, compareArraysByProp, confirm, everyAsync, extractProp, filterAsync, floorToNumDecimals, forEachAsync, forceNumIntoBounds, genCSV, genCommaList, getHumanReadableDate, getLocalTimeInfo, getMonthName, getOrdinal, getPartOfDay, getTimeInfoInET, getTimestampFromTimeInfoInET, getWordCount, idify, initClient, isMobileOrTablet, isSelectAdmin, leaveToURL, logClientEvent, makeLinksClickable, mapAsync, onlyKeepLetters, padDecimalZeros, padZerosLeft, parallelLimit, prefixWithAOrAn, prompt, roundToNumDecimals, setClientEventMetadataPopulator, showFatalError, shuffleArray, someAsync, startMinWait, stringsToHumanReadableList, stubServerEndpoint, sum, useForceRender, validateEmail, validatePhoneNumber, validateString, visitServerEndpoint, waitMs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dce-reactkit",
3
- "version": "4.2.0-beta-select-admin-check.2",
3
+ "version": "4.2.0",
4
4
  "description": "Shared components for Harvard DCE apps",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -0,0 +1,48 @@
1
+ // Import shared constants
2
+ import SELECT_ADMIN_CHECK_ROUTE from '../constants/SELECT_ADMIN_CHECK_ROUTE';
3
+
4
+ // Import shared helpers
5
+ import visitServerEndpoint from './visitServerEndpoint';
6
+
7
+ /*------------------------------------------------------------------------*/
8
+ /* ------------------------------- Caching ------------------------------ */
9
+ /*------------------------------------------------------------------------*/
10
+
11
+ // If true, user is a select admin
12
+ let cachedUserIsSelectAdmin: boolean | undefined;
13
+
14
+ /*------------------------------------------------------------------------*/
15
+ /* -------------------------------- Main -------------------------------- */
16
+ /*------------------------------------------------------------------------*/
17
+
18
+ /**
19
+ * Checks if the current user is a select admin
20
+ * @author Gardenia Liu
21
+ * @returns true if the user is a select admin, false otherwise
22
+ */
23
+ const isSelectAdmin = async (): Promise<boolean> => {
24
+ // Use cached version if we have one
25
+ if (cachedUserIsSelectAdmin !== undefined) {
26
+ return cachedUserIsSelectAdmin;
27
+ }
28
+
29
+ // Check if the user is a select admin
30
+ try {
31
+ const userIsSelectAdmin: boolean = await visitServerEndpoint({
32
+ path: SELECT_ADMIN_CHECK_ROUTE,
33
+ method: 'GET',
34
+ });
35
+
36
+ // Cache the result
37
+ cachedUserIsSelectAdmin = !!userIsSelectAdmin;
38
+
39
+ // Return the result
40
+ return userIsSelectAdmin;
41
+ } catch (err) {
42
+ // Error means the user isn't a select admin
43
+ cachedUserIsSelectAdmin = false;
44
+ return false;
45
+ }
46
+ };
47
+
48
+ export default isSelectAdmin;
package/src/index.ts CHANGED
@@ -97,6 +97,7 @@ import shuffleArray from './helpers/shuffleArray';
97
97
  import getWordCount from './helpers/getWordCount';
98
98
  import cloneDeep from './helpers/cloneDeep';
99
99
  import getTimestampFromTimeInfoInET from './helpers/getTimestampFromTimeInfoInET';
100
+ import isSelectAdmin from './helpers/isSelectAdmin';
100
101
 
101
102
  // Import types
102
103
  import ParamType from './types/ParamType';
@@ -217,6 +218,7 @@ export {
217
218
  getWordCount,
218
219
  cloneDeep,
219
220
  getTimestampFromTimeInfoInET,
221
+ isSelectAdmin,
220
222
  // Client helpers
221
223
  initClient,
222
224
  visitServerEndpoint,
@@ -41,6 +41,10 @@ enum LogAction {
41
41
  Jump = 'Jump',
42
42
  // Post a submission/message/etc. into the target
43
43
  Post = 'Post',
44
+ // Like something
45
+ Like = 'Like',
46
+ // Dislike something
47
+ Dislike = 'Dislike',
44
48
  // Unknown action
45
49
  Unknown = 'Unknown',
46
50
  }