({value: x.id, label: `${x.name} - ${x.email}`}))}
- defaultValue={{value: user.id, label: `${user.name} - ${user.email}`}}
- onChange={(value) => setStatsUserId(value?.value)}
+
+ <>
+ {(user.type === "developer" || user.type === "owner") && (
+ ({value: x.id, label: `${x.name} - ${x.email}`}))}
+ defaultValue={{value: user.id, label: `${user.name} - ${user.email}`}}
+ onChange={(value) => setStatsUserId(value?.value)}
+ styles={{
+ option: (styles, state) => ({
+ ...styles,
+ backgroundColor: state.isFocused ? "#D5D9F0" : state.isSelected ? "#7872BF" : "white",
+ color: state.isFocused ? "black" : styles.color,
+ }),
+ }}
+ />
+ )}
+ {(user.type === "admin" || user.type === "teacher") && groups.length > 0 && (
+ groups.flatMap((y) => y.participants).includes(x.id))
+ .map((x) => ({value: x.id, label: `${x.name} - ${x.email}`}))}
+ defaultValue={{value: user.id, label: `${user.name} - ${user.email}`}}
+ onChange={(value) => setStatsUserId(value?.value)}
+ styles={{
+ option: (styles, state) => ({
+ ...styles,
+ backgroundColor: state.isFocused ? "#D5D9F0" : state.isSelected ? "#7872BF" : "white",
+ color: state.isFocused ? "black" : styles.color,
+ }),
+ }}
+ />
+ )}
+ >
+ !moment(date).isSameOrBefore(moment(startDate))}
+ onChange={([initialDate, finalDate]) => {
+ setStartDate(initialDate);
+ setEndDate(finalDate);
+ }}
/>
- )}
- {(user.type === "admin" || user.type === "teacher") && groups.length > 0 && (
- groups.flatMap((y) => y.participants).includes(x.id))
- .map((x) => ({value: x.id, label: `${x.name} - ${x.email}`}))}
- defaultValue={{value: user.id, label: `${user.name} - ${user.email}`}}
- onChange={(value) => setStatsUserId(value?.value)}
- />
- )}
+
{/* Exams per module */}
@@ -319,7 +365,13 @@ export default function Stats() {
index),
+ labels: Object.keys(
+ groupBySession(
+ stats.filter(
+ (x) => moment.unix(x.date).isAfter(startDate) && moment.unix(x.date).isBefore(endDate),
+ ),
+ ),
+ ).map((_, index) => index),
datasets: [
{
type: "line",
@@ -342,7 +394,13 @@ export default function Stats() {
index),
+ labels: Object.keys(
+ groupBySession(
+ stats.filter(
+ (x) => moment.unix(x.date).isAfter(startDate) && moment.unix(x.date).isBefore(endDate),
+ ),
+ ),
+ ).map((_, index) => index),
datasets: [
...MODULE_ARRAY.map((module, index) => ({
type: "line" as const,