Loading frontend/src/components/ExerciseList/ManagingExerciseList.tsx +2 −3 Original line number Original line Diff line number Diff line Loading @@ -33,8 +33,7 @@ const ManagingExerciseList: FC<ManagingExerciseListProps> = ({ className }) => { showOnDemand: true, showOnDemand: true, }) }) const exerciseFilter = (exercise: Exercise) => { const exerciseFilter = (exercise: Exercise) => { const { onDemand } = exercise if (exercise.onDemand) { if (onDemand) { return filters.showOnDemand return filters.showOnDemand } } const status = synchronousExerciseState(exercise).status const status = synchronousExerciseState(exercise).status Loading Loading @@ -134,7 +133,7 @@ const ManagingExerciseList: FC<ManagingExerciseListProps> = ({ className }) => { <ExerciseList <ExerciseList className={className} className={className} type='managing' type='managing' filter={exercise => exerciseFilter(exercise)} exerciseFilter={exercise => exerciseFilter(exercise)} assignmentLink={exercise => ({ assignmentLink={exercise => ({ to: ExerciseAssignmentRoute.to, to: ExerciseAssignmentRoute.to, params: { exerciseId: exercise.id }, params: { exerciseId: exercise.id }, Loading frontend/src/components/ExerciseList/index.tsx +18 −6 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ const running = css` export const ExerciseList: FC< export const ExerciseList: FC< { { filter?: (exercise: Exercise) => boolean exerciseFilter?: (exercise: Exercise) => boolean isSelected?: (exercise: Exercise) => boolean isSelected?: (exercise: Exercise) => boolean className?: string className?: string } & ( } & ( Loading @@ -84,13 +84,25 @@ export const ExerciseList: FC< assignmentLink: (exercise: Exercise) => NavigateOptions assignmentLink: (exercise: Exercise) => NavigateOptions } } ) ) > = ({ filter, isSelected, onSelect, type, className, assignmentLink }) => { > = ({ exerciseFilter, isSelected, onSelect, type, className, assignmentLink, }) => { const [{ data, fetching: loading }] = useExercisesSubscription() const [{ data, fetching: loading }] = useExercisesSubscription() const exercises = useMemo( const exercises = (() => { () => (filter ? data?.exercises.filter(filter) : data?.exercises) || [], if (loading || !data?.exercises) { [data?.exercises, filter] return [] ) } if (exerciseFilter) { return data.exercises.filter(exercise => exerciseFilter(exercise)) } return data.exercises })() const columns: Column<Exercise>[] = useMemo(() => { const columns: Column<Exercise>[] = useMemo(() => { const columns: Column<Exercise>[] = [ const columns: Column<Exercise>[] = [ Loading frontend/src/users/ExerciseAssignment/CopyAssignment.tsx +1 −1 Original line number Original line Diff line number Diff line Loading @@ -71,7 +71,7 @@ const CopyAssignment: FC<CopyAssignmentProps> = ({ exerciseId, teamCount }) => { </Callout> </Callout> <div className={wrapper}> <div className={wrapper}> <ExerciseList <ExerciseList filter={exercise => exerciseFilter={exercise => exercise.id !== exerciseId && exercise.id !== exerciseId && exercise.teams.length === teamCount exercise.teams.length === teamCount } } Loading graphql/graphql-cache.d.ts +2 −2 File changed.Preview size limit exceeded, changes collapsed. Show changes graphql/subscriptions.ts +3 −3 Original line number Original line Diff line number Diff line Loading @@ -72,7 +72,7 @@ export const EmailThreadsSubscription = graphql( export const ExerciseStateSubscription = graphql( export const ExerciseStateSubscription = graphql( ` ` subscription exerciseState($teamIds: [ID!]!) { subscription ExerciseStateSubscription($teamIds: [ID!]!) { exerciseState(teamIds: $teamIds) { exerciseState(teamIds: $teamIds) { state { state { ...ExerciseState ...ExerciseState Loading @@ -83,9 +83,9 @@ export const ExerciseStateSubscription = graphql( [Fragments.ExerciseState] [Fragments.ExerciseState] ) ) export const exercises = graphql( export const ExercisesSubscription = graphql( ` ` subscription exercises { subscription ExercisesSubscription { exercisesSubscription { exercisesSubscription { exercise { exercise { ...Exercise ...Exercise Loading Loading
frontend/src/components/ExerciseList/ManagingExerciseList.tsx +2 −3 Original line number Original line Diff line number Diff line Loading @@ -33,8 +33,7 @@ const ManagingExerciseList: FC<ManagingExerciseListProps> = ({ className }) => { showOnDemand: true, showOnDemand: true, }) }) const exerciseFilter = (exercise: Exercise) => { const exerciseFilter = (exercise: Exercise) => { const { onDemand } = exercise if (exercise.onDemand) { if (onDemand) { return filters.showOnDemand return filters.showOnDemand } } const status = synchronousExerciseState(exercise).status const status = synchronousExerciseState(exercise).status Loading Loading @@ -134,7 +133,7 @@ const ManagingExerciseList: FC<ManagingExerciseListProps> = ({ className }) => { <ExerciseList <ExerciseList className={className} className={className} type='managing' type='managing' filter={exercise => exerciseFilter(exercise)} exerciseFilter={exercise => exerciseFilter(exercise)} assignmentLink={exercise => ({ assignmentLink={exercise => ({ to: ExerciseAssignmentRoute.to, to: ExerciseAssignmentRoute.to, params: { exerciseId: exercise.id }, params: { exerciseId: exercise.id }, Loading
frontend/src/components/ExerciseList/index.tsx +18 −6 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ const running = css` export const ExerciseList: FC< export const ExerciseList: FC< { { filter?: (exercise: Exercise) => boolean exerciseFilter?: (exercise: Exercise) => boolean isSelected?: (exercise: Exercise) => boolean isSelected?: (exercise: Exercise) => boolean className?: string className?: string } & ( } & ( Loading @@ -84,13 +84,25 @@ export const ExerciseList: FC< assignmentLink: (exercise: Exercise) => NavigateOptions assignmentLink: (exercise: Exercise) => NavigateOptions } } ) ) > = ({ filter, isSelected, onSelect, type, className, assignmentLink }) => { > = ({ exerciseFilter, isSelected, onSelect, type, className, assignmentLink, }) => { const [{ data, fetching: loading }] = useExercisesSubscription() const [{ data, fetching: loading }] = useExercisesSubscription() const exercises = useMemo( const exercises = (() => { () => (filter ? data?.exercises.filter(filter) : data?.exercises) || [], if (loading || !data?.exercises) { [data?.exercises, filter] return [] ) } if (exerciseFilter) { return data.exercises.filter(exercise => exerciseFilter(exercise)) } return data.exercises })() const columns: Column<Exercise>[] = useMemo(() => { const columns: Column<Exercise>[] = useMemo(() => { const columns: Column<Exercise>[] = [ const columns: Column<Exercise>[] = [ Loading
frontend/src/users/ExerciseAssignment/CopyAssignment.tsx +1 −1 Original line number Original line Diff line number Diff line Loading @@ -71,7 +71,7 @@ const CopyAssignment: FC<CopyAssignmentProps> = ({ exerciseId, teamCount }) => { </Callout> </Callout> <div className={wrapper}> <div className={wrapper}> <ExerciseList <ExerciseList filter={exercise => exerciseFilter={exercise => exercise.id !== exerciseId && exercise.id !== exerciseId && exercise.teams.length === teamCount exercise.teams.length === teamCount } } Loading
graphql/graphql-cache.d.ts +2 −2 File changed.Preview size limit exceeded, changes collapsed. Show changes
graphql/subscriptions.ts +3 −3 Original line number Original line Diff line number Diff line Loading @@ -72,7 +72,7 @@ export const EmailThreadsSubscription = graphql( export const ExerciseStateSubscription = graphql( export const ExerciseStateSubscription = graphql( ` ` subscription exerciseState($teamIds: [ID!]!) { subscription ExerciseStateSubscription($teamIds: [ID!]!) { exerciseState(teamIds: $teamIds) { exerciseState(teamIds: $teamIds) { state { state { ...ExerciseState ...ExerciseState Loading @@ -83,9 +83,9 @@ export const ExerciseStateSubscription = graphql( [Fragments.ExerciseState] [Fragments.ExerciseState] ) ) export const exercises = graphql( export const ExercisesSubscription = graphql( ` ` subscription exercises { subscription ExercisesSubscription { exercisesSubscription { exercisesSubscription { exercise { exercise { ...Exercise ...Exercise Loading