dce-reactkit 3.2.2-beta.46 → 3.2.2-beta.48
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/dist/cjs/index.js +109 -78
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/types/LogMetadataContextMap.d.ts +11 -0
- package/dist/cjs/types/types/LogMetadataTagMap.d.ts +8 -0
- package/dist/cjs/types/types/LogMetadataTargetMap.d.ts +8 -0
- package/dist/cjs/types/types/LogMetadataType.d.ts +6 -12
- package/dist/esm/index.js +109 -78
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/types/LogMetadataContextMap.d.ts +11 -0
- package/dist/esm/types/types/LogMetadataTagMap.d.ts +8 -0
- package/dist/esm/types/types/LogMetadataTargetMap.d.ts +8 -0
- package/dist/esm/types/types/LogMetadataType.d.ts +6 -12
- package/dist/index.d.ts +30 -12
- package/package.json +1 -1
- package/src/components/LogReviewer.tsx +171 -125
- package/src/types/LogMetadataContextMap.ts +15 -0
- package/src/types/LogMetadataTagMap.ts +9 -0
- package/src/types/LogMetadataTargetMap.ts +9 -0
- package/src/types/LogMetadataType.ts +8 -15
|
@@ -1,19 +1,13 @@
|
|
|
1
|
+
import LogMetadataContextMap from './LogMetadataContextMap';
|
|
2
|
+
import LogMetadataTagMap from './LogMetadataTagMap';
|
|
3
|
+
import LogMetadataTargetMap from './LogMetadataTargetMap';
|
|
1
4
|
/**
|
|
2
5
|
* Type of a LogMetadata file
|
|
3
6
|
* @author Gabe Abrams
|
|
4
7
|
*/
|
|
5
8
|
declare type LogMetadataType = {
|
|
6
|
-
Context?:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[k: string]: string;
|
|
10
|
-
});
|
|
11
|
-
};
|
|
12
|
-
Tag?: {
|
|
13
|
-
[k: string]: string;
|
|
14
|
-
};
|
|
15
|
-
Target?: {
|
|
16
|
-
[k: string]: string;
|
|
17
|
-
};
|
|
9
|
+
Context?: LogMetadataContextMap;
|
|
10
|
+
Tag?: LogMetadataTagMap;
|
|
11
|
+
Target?: LogMetadataTargetMap;
|
|
18
12
|
};
|
|
19
13
|
export default LogMetadataType;
|
package/dist/esm/index.js
CHANGED
|
@@ -3123,34 +3123,34 @@ const LogReviewer = (props) => {
|
|
|
3123
3123
|
/*------------------------------------------------------------------------*/
|
|
3124
3124
|
/* Setup */
|
|
3125
3125
|
/*------------------------------------------------------------------------*/
|
|
3126
|
-
var _a, _b, _c, _d, _e, _f
|
|
3126
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3127
3127
|
/* -------------- Props ------------- */
|
|
3128
3128
|
// Destructure props
|
|
3129
3129
|
const { LogMetadata, onClose, } = props;
|
|
3130
|
-
//
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
if (LogMetadata.Context) {
|
|
3145
|
-
LogMetadata.Context[context] = context;
|
|
3146
|
-
}
|
|
3130
|
+
// Create complete map of contexts
|
|
3131
|
+
const contextMap = {};
|
|
3132
|
+
[
|
|
3133
|
+
((_a = LogMetadata.Context) !== null && _a !== void 0 ? _a : {}),
|
|
3134
|
+
LogBuiltInMetadata.Context,
|
|
3135
|
+
].forEach((partialContextMap) => {
|
|
3136
|
+
Object.keys(partialContextMap).forEach((context) => {
|
|
3137
|
+
// Add context
|
|
3138
|
+
contextMap[context] = context;
|
|
3139
|
+
// If context has children, add an "uncategorized" subcontext
|
|
3140
|
+
if (typeof contextMap[context] !== 'string') {
|
|
3141
|
+
contextMap[context][LogBuiltInMetadata.Context.Uncategorized] = (LogBuiltInMetadata.Context.Uncategorized);
|
|
3142
|
+
}
|
|
3143
|
+
});
|
|
3147
3144
|
});
|
|
3148
|
-
//
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3145
|
+
// Create complete map of targets
|
|
3146
|
+
const targetMap = {};
|
|
3147
|
+
[
|
|
3148
|
+
((_b = LogMetadata.Target) !== null && _b !== void 0 ? _b : {}),
|
|
3149
|
+
LogBuiltInMetadata.Target,
|
|
3150
|
+
].forEach((partialTargetMap) => {
|
|
3151
|
+
Object.keys(partialTargetMap).forEach((target) => {
|
|
3152
|
+
targetMap[target] = target;
|
|
3153
|
+
});
|
|
3154
3154
|
});
|
|
3155
3155
|
/* -------------- State ------------- */
|
|
3156
3156
|
// Create initial date filter state
|
|
@@ -3171,7 +3171,7 @@ const LogReviewer = (props) => {
|
|
|
3171
3171
|
};
|
|
3172
3172
|
// Create initial context filter state
|
|
3173
3173
|
const initContextFilterState = {};
|
|
3174
|
-
Object.keys((
|
|
3174
|
+
Object.keys((_c = LogMetadata.Context) !== null && _c !== void 0 ? _c : {}).forEach((context) => {
|
|
3175
3175
|
var _a, _b;
|
|
3176
3176
|
const contextValue = ((_a = LogMetadata.Context) !== null && _a !== void 0 ? _a : {})[context];
|
|
3177
3177
|
if (typeof contextValue === 'string') {
|
|
@@ -3193,7 +3193,7 @@ const LogReviewer = (props) => {
|
|
|
3193
3193
|
});
|
|
3194
3194
|
// Create initial tag filter state
|
|
3195
3195
|
const initTagFilterState = {};
|
|
3196
|
-
Object.keys((
|
|
3196
|
+
Object.keys((_d = LogMetadata.Tag) !== null && _d !== void 0 ? _d : {}).forEach((tag) => {
|
|
3197
3197
|
initTagFilterState[tag] = false;
|
|
3198
3198
|
});
|
|
3199
3199
|
// Create advanced filter state
|
|
@@ -3220,7 +3220,7 @@ const LogReviewer = (props) => {
|
|
|
3220
3220
|
target: {},
|
|
3221
3221
|
action: {},
|
|
3222
3222
|
};
|
|
3223
|
-
Object.values((
|
|
3223
|
+
Object.values((_e = LogMetadata.Target) !== null && _e !== void 0 ? _e : {}).forEach((target) => {
|
|
3224
3224
|
initActionErrorFilterState.target[target] = true;
|
|
3225
3225
|
});
|
|
3226
3226
|
Object.values(LogAction$1).forEach((action) => {
|
|
@@ -3414,7 +3414,7 @@ const LogReviewer = (props) => {
|
|
|
3414
3414
|
initDateFilterState,
|
|
3415
3415
|
initTagFilterState,
|
|
3416
3416
|
});
|
|
3417
|
-
} }, "Reset
|
|
3417
|
+
} }, "Reset"))));
|
|
3418
3418
|
// Filter drawer
|
|
3419
3419
|
let filterDrawer;
|
|
3420
3420
|
if (expandedFilterDrawer) {
|
|
@@ -3442,10 +3442,16 @@ const LogReviewer = (props) => {
|
|
|
3442
3442
|
}
|
|
3443
3443
|
else if (expandedFilterDrawer === FilterDrawer.Context) {
|
|
3444
3444
|
// Create item picker items
|
|
3445
|
-
const
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3445
|
+
const builtInPickableItem = {
|
|
3446
|
+
id: '_',
|
|
3447
|
+
name: 'Auto-logged',
|
|
3448
|
+
isGroup: true,
|
|
3449
|
+
children: [],
|
|
3450
|
+
};
|
|
3451
|
+
const pickableItems = [];
|
|
3452
|
+
Object.keys(contextMap)
|
|
3453
|
+
.forEach((context) => {
|
|
3454
|
+
const value = (contextMap)[context];
|
|
3449
3455
|
if (typeof value === 'string') {
|
|
3450
3456
|
// No subcategories
|
|
3451
3457
|
const item = {
|
|
@@ -3454,13 +3460,24 @@ const LogReviewer = (props) => {
|
|
|
3454
3460
|
isGroup: false,
|
|
3455
3461
|
checked: !!contextFilterState[context],
|
|
3456
3462
|
};
|
|
3457
|
-
|
|
3463
|
+
// Add built-in items to its own folder
|
|
3464
|
+
const isBuiltIn = context in LogBuiltInMetadata.Context;
|
|
3465
|
+
if (isBuiltIn) {
|
|
3466
|
+
// Add to built-in pickable item
|
|
3467
|
+
builtInPickableItem.children.push(item);
|
|
3468
|
+
}
|
|
3469
|
+
else {
|
|
3470
|
+
// Add to pickable items list
|
|
3471
|
+
pickableItems.push(item);
|
|
3472
|
+
}
|
|
3458
3473
|
}
|
|
3459
3474
|
// Has subcategories
|
|
3460
3475
|
const children = (Object.keys(value)
|
|
3476
|
+
// Remove parent name
|
|
3461
3477
|
.filter((subcontext) => {
|
|
3462
3478
|
return subcontext !== '_';
|
|
3463
3479
|
})
|
|
3480
|
+
// Create child pickable items
|
|
3464
3481
|
.map((subcontext) => {
|
|
3465
3482
|
return {
|
|
3466
3483
|
id: subcontext,
|
|
@@ -3475,19 +3492,32 @@ const LogReviewer = (props) => {
|
|
|
3475
3492
|
isGroup: true,
|
|
3476
3493
|
children,
|
|
3477
3494
|
};
|
|
3478
|
-
|
|
3479
|
-
})
|
|
3495
|
+
pickableItems.push(item);
|
|
3496
|
+
});
|
|
3497
|
+
// Add built-in contexts to end ofl ist
|
|
3498
|
+
pickableItems.push(builtInPickableItem);
|
|
3480
3499
|
// Create filter UI
|
|
3481
3500
|
filterDrawer = (React.createElement(ItemPicker, { title: "Context", items: pickableItems, onChanged: (updatedItems) => {
|
|
3482
3501
|
// Update our state
|
|
3483
3502
|
updatedItems.forEach((pickableItem) => {
|
|
3484
3503
|
if (pickableItem.isGroup) {
|
|
3485
3504
|
// Has subcontexts
|
|
3486
|
-
pickableItem.
|
|
3487
|
-
|
|
3488
|
-
|
|
3489
|
-
|
|
3490
|
-
|
|
3505
|
+
if (pickableItem.id === '_') {
|
|
3506
|
+
// Built-in
|
|
3507
|
+
// Treat as if these were top-level contexts
|
|
3508
|
+
pickableItem.children.forEach((subcontextItem) => {
|
|
3509
|
+
contextFilterState[subcontextItem.id] = ('checked' in subcontextItem
|
|
3510
|
+
&& subcontextItem.checked);
|
|
3511
|
+
});
|
|
3512
|
+
}
|
|
3513
|
+
else {
|
|
3514
|
+
// Not built-in
|
|
3515
|
+
pickableItem.children.forEach((subcontextItem) => {
|
|
3516
|
+
if (!subcontextItem.isGroup) {
|
|
3517
|
+
contextFilterState[pickableItem.id][subcontextItem.id] = (subcontextItem.checked);
|
|
3518
|
+
}
|
|
3519
|
+
});
|
|
3520
|
+
}
|
|
3491
3521
|
}
|
|
3492
3522
|
else {
|
|
3493
3523
|
// No subcontexts
|
|
@@ -3502,17 +3532,19 @@ const LogReviewer = (props) => {
|
|
|
3502
3532
|
}
|
|
3503
3533
|
else if (expandedFilterDrawer === FilterDrawer.Tag) {
|
|
3504
3534
|
// Create filter UI
|
|
3505
|
-
filterDrawer = (React.createElement(TabBox, { title: "Tags" },
|
|
3506
|
-
.
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3535
|
+
filterDrawer = (React.createElement(TabBox, { title: "Tags" },
|
|
3536
|
+
React.createElement("div", null, "If any are selected, logs must contain at least one but not necessarily all of the selected tags."),
|
|
3537
|
+
Object.keys((_f = LogMetadata.Tag) !== null && _f !== void 0 ? _f : {})
|
|
3538
|
+
.map((tag, i) => {
|
|
3539
|
+
const description = genHumanReadableName(tag);
|
|
3540
|
+
return (React.createElement(CheckboxButton, { id: `LogReviewer-tag-${tag}-checkbox`, text: description, ariaLabel: `require that logs be tagged with "${description}" or any other selected tag`, noMarginOnRight: i === Object.keys(tagFilterState).length - 1, checked: tagFilterState[tag], onChanged: (checked) => {
|
|
3541
|
+
tagFilterState[tag] = checked;
|
|
3542
|
+
dispatch({
|
|
3543
|
+
type: ActionType.UpdateTagFilterState,
|
|
3544
|
+
tagFilterState,
|
|
3545
|
+
});
|
|
3546
|
+
} }));
|
|
3547
|
+
})));
|
|
3516
3548
|
}
|
|
3517
3549
|
else if (expandedFilterDrawer === FilterDrawer.Action) {
|
|
3518
3550
|
// Create filter UI
|
|
@@ -3541,23 +3573,22 @@ const LogReviewer = (props) => {
|
|
|
3541
3573
|
}, ariaLabel: "only show error logs", selected: actionErrorFilterState.type === LogType$1.Error, noMarginOnRight: true })),
|
|
3542
3574
|
(actionErrorFilterState.type === undefined
|
|
3543
3575
|
|| actionErrorFilterState.type === LogType$1.Action) && (React.createElement(TabBox, { title: "Action Log Details" },
|
|
3544
|
-
React.createElement(ButtonInputGroup, { label: "Action", className: "mb-2" },
|
|
3545
|
-
.
|
|
3546
|
-
|
|
3547
|
-
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3576
|
+
React.createElement(ButtonInputGroup, { label: "Action", className: "mb-2" },
|
|
3577
|
+
React.createElement("div", { className: "grid gap-1" }, Object.keys(LogAction$1)
|
|
3578
|
+
.map((action) => {
|
|
3579
|
+
const description = genHumanReadableName(action);
|
|
3580
|
+
return (React.createElement(CheckboxButton, { key: action, id: `LogReviewer-action-${action}-checkbox`, text: description, ariaLabel: `include logs with action type "${description}" in results`, noMarginOnRight: true, checked: actionErrorFilterState.action[action], onChanged: (checked) => {
|
|
3581
|
+
actionErrorFilterState.action[action] = checked;
|
|
3582
|
+
console.log(actionErrorFilterState, action, checked);
|
|
3583
|
+
dispatch({
|
|
3584
|
+
type: ActionType.UpdateActionErrorFilterState,
|
|
3585
|
+
actionErrorFilterState,
|
|
3586
|
+
});
|
|
3587
|
+
} }));
|
|
3588
|
+
}))),
|
|
3556
3589
|
React.createElement(ButtonInputGroup, { label: "Target" },
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
.map((target, i) => {
|
|
3560
|
-
var _a;
|
|
3590
|
+
React.createElement("div", { className: "grid gap-1" }, Object.keys(targetMap)
|
|
3591
|
+
.map((target) => {
|
|
3561
3592
|
const description = genHumanReadableName(target);
|
|
3562
3593
|
return (React.createElement(CheckboxButton, { key: target, id: `LogReviewer-target-${target}-checkbox`, text: description, ariaLabel: `include logs with target "${description}" in results`, checked: actionErrorFilterState.target[target], onChanged: (checked) => {
|
|
3563
3594
|
actionErrorFilterState.target[target] = checked;
|
|
@@ -3566,13 +3597,13 @@ const LogReviewer = (props) => {
|
|
|
3566
3597
|
type: ActionType.UpdateActionErrorFilterState,
|
|
3567
3598
|
actionErrorFilterState,
|
|
3568
3599
|
});
|
|
3569
|
-
}
|
|
3570
|
-
})))),
|
|
3600
|
+
} }));
|
|
3601
|
+
}))))),
|
|
3571
3602
|
(actionErrorFilterState.type === undefined
|
|
3572
3603
|
|| actionErrorFilterState.type === LogType$1.Error) && (React.createElement(TabBox, { title: "Error Log Details" },
|
|
3573
3604
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3574
3605
|
React.createElement("span", { className: "input-group-text" }, "Error Message"),
|
|
3575
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for error message", value: actionErrorFilterState.errorMessage, onChange: (e) => {
|
|
3606
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for error message", value: actionErrorFilterState.errorMessage, placeholder: "e.g. undefined is not a function", onChange: (e) => {
|
|
3576
3607
|
actionErrorFilterState.errorMessage = e.target.value;
|
|
3577
3608
|
dispatch({
|
|
3578
3609
|
type: ActionType.UpdateActionErrorFilterState,
|
|
@@ -3581,7 +3612,7 @@ const LogReviewer = (props) => {
|
|
|
3581
3612
|
} })),
|
|
3582
3613
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3583
3614
|
React.createElement("span", { className: "input-group-text" }, "Error Code"),
|
|
3584
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for error code", value: actionErrorFilterState.errorCode, onChange: (e) => {
|
|
3615
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for error code", value: actionErrorFilterState.errorCode, placeholder: "e.g. GC22", onChange: (e) => {
|
|
3585
3616
|
actionErrorFilterState.errorCode = ((e.target.value)
|
|
3586
3617
|
.trim()
|
|
3587
3618
|
.toUpperCase());
|
|
@@ -3597,7 +3628,7 @@ const LogReviewer = (props) => {
|
|
|
3597
3628
|
React.createElement(TabBox, { title: "User Info" },
|
|
3598
3629
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3599
3630
|
React.createElement("span", { className: "input-group-text" }, "User First Name"),
|
|
3600
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user first name", value: advancedFilterState.userFirstName, onChange: (e) => {
|
|
3631
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user first name", value: advancedFilterState.userFirstName, placeholder: "e.g. Divardo", onChange: (e) => {
|
|
3601
3632
|
advancedFilterState.userFirstName = e.target.value;
|
|
3602
3633
|
dispatch({
|
|
3603
3634
|
type: ActionType.UpdateAdvancedFilterState,
|
|
@@ -3606,7 +3637,7 @@ const LogReviewer = (props) => {
|
|
|
3606
3637
|
} })),
|
|
3607
3638
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3608
3639
|
React.createElement("span", { className: "input-group-text" }, "User Last Name"),
|
|
3609
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user last name", value: advancedFilterState.userLastName, onChange: (e) => {
|
|
3640
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user last name", value: advancedFilterState.userLastName, placeholder: "e.g. Calicci", onChange: (e) => {
|
|
3610
3641
|
advancedFilterState.userLastName = e.target.value;
|
|
3611
3642
|
dispatch({
|
|
3612
3643
|
type: ActionType.UpdateAdvancedFilterState,
|
|
@@ -3615,7 +3646,7 @@ const LogReviewer = (props) => {
|
|
|
3615
3646
|
} })),
|
|
3616
3647
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3617
3648
|
React.createElement("span", { className: "input-group-text" }, "User Email"),
|
|
3618
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user email", value: advancedFilterState.userEmail, onChange: (e) => {
|
|
3649
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user email", value: advancedFilterState.userEmail, placeholder: "e.g. calicci@fas.harvard.edu", onChange: (e) => {
|
|
3619
3650
|
advancedFilterState.userEmail = ((e.target.value)
|
|
3620
3651
|
.trim());
|
|
3621
3652
|
dispatch({
|
|
@@ -3625,7 +3656,7 @@ const LogReviewer = (props) => {
|
|
|
3625
3656
|
} })),
|
|
3626
3657
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3627
3658
|
React.createElement("span", { className: "input-group-text" }, "User Canvas Id"),
|
|
3628
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user canvas id", value: advancedFilterState.userId, onChange: (e) => {
|
|
3659
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for user canvas id", value: advancedFilterState.userId, placeholder: "e.g. 104985", onChange: (e) => {
|
|
3629
3660
|
const { value } = e.target;
|
|
3630
3661
|
// Only update if value contains only numbers
|
|
3631
3662
|
if (/^\d+$/.test(value)) {
|
|
@@ -3662,7 +3693,7 @@ const LogReviewer = (props) => {
|
|
|
3662
3693
|
React.createElement(TabBox, { title: "Course Info" },
|
|
3663
3694
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3664
3695
|
React.createElement("span", { className: "input-group-text" }, "Course Name"),
|
|
3665
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for course name", value: advancedFilterState.courseName, onChange: (e) => {
|
|
3696
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for course name", value: advancedFilterState.courseName, placeholder: "e.g. GLC 200", onChange: (e) => {
|
|
3666
3697
|
advancedFilterState.courseName = e.target.value;
|
|
3667
3698
|
dispatch({
|
|
3668
3699
|
type: ActionType.UpdateAdvancedFilterState,
|
|
@@ -3671,7 +3702,7 @@ const LogReviewer = (props) => {
|
|
|
3671
3702
|
} })),
|
|
3672
3703
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3673
3704
|
React.createElement("span", { className: "input-group-text" }, "Course Canvas Id"),
|
|
3674
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for course canvas id", value: advancedFilterState.courseId, onChange: (e) => {
|
|
3705
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for course canvas id", value: advancedFilterState.courseId, placeholder: "e.g. 15948", onChange: (e) => {
|
|
3675
3706
|
const { value } = e.target;
|
|
3676
3707
|
// Only update if value contains only numbers
|
|
3677
3708
|
if (/^\d+$/.test(value)) {
|
|
@@ -3732,7 +3763,7 @@ const LogReviewer = (props) => {
|
|
|
3732
3763
|
advancedFilterState.source !== LogSource$1.Client && (React.createElement("div", { className: "mt-2" },
|
|
3733
3764
|
React.createElement("div", { className: "input-group mb-2" },
|
|
3734
3765
|
React.createElement("span", { className: "input-group-text" }, "Server Route Path"),
|
|
3735
|
-
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for server route path", placeholder: "e.g. /api/ttm/courses/12345",
|
|
3766
|
+
React.createElement("input", { type: "text", className: "form-control", "aria-label": "query for server route path", value: advancedFilterState.routePath, placeholder: "e.g. /api/ttm/courses/12345", onChange: (e) => {
|
|
3736
3767
|
advancedFilterState.courseName = ((e.target.value)
|
|
3737
3768
|
.trim());
|
|
3738
3769
|
dispatch({
|