Commit 0fe5dadb authored by Marek Veselý's avatar Marek Veselý
Browse files

Merge branch 'fix-tools-for-trainee' into 'main'

fix: use team tools query for trainee

See merge request inject/frontend!497
parents 9b45dd05 b70ac4f0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
import ExerciseContext from '@/analyst/ExerciseContext'
import { useTypedQuery } from '@inject/graphql/graphql'
import { GetTools } from '@inject/graphql/queries'
import { GetExerciseTools } from '@inject/graphql/queries'
import notEmpty from '@inject/shared/utils/notEmpty'
import { useContext, useMemo } from 'react'

@@ -8,7 +8,7 @@ const useTools = () => {
  const { exercise } = useContext(ExerciseContext)

  const [{ data: toolsData }] = useTypedQuery({
    query: GetTools,
    query: GetExerciseTools,
    variables: {
      exerciseId: exercise.id,
    },
+4 −6
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ import Sidebar from '@/components/Sidebar'
import { css } from '@emotion/css'
import type { Tool } from '@inject/graphql/fragment-types'
import { useTypedQuery } from '@inject/graphql/graphql'
import { GetTools } from '@inject/graphql/queries'
import { GetTeamTools } from '@inject/graphql/queries'
import notEmpty from '@inject/shared/utils/notEmpty'
import type { FC } from 'react'
import { memo, useMemo } from 'react'
@@ -17,7 +17,6 @@ const UNDEFINED_ID = 'undefined'

interface ToolbarProps {
  teamId: string
  exerciseId: string
  disabled?: boolean
  disabledTitle?: string
  onClose?: () => void
@@ -25,19 +24,18 @@ interface ToolbarProps {

const Toolbar: FC<ToolbarProps> = ({
  teamId,
  exerciseId,
  disabled,
  disabledTitle,
  onClose,
}) => {
  const [{ data }] = useTypedQuery({
    query: GetTools,
    query: GetTeamTools,
    variables: {
      exerciseId,
      teamId,
    },
    requestPolicy: 'cache-first',
  })
  const process = (data?.exerciseTools ?? []).filter(notEmpty)
  const process = (data?.teamTools ?? []).filter(notEmpty)

  const groups: Map<string | undefined, Tool[]> = useMemo(() => {
    const uncategorized: Tool[] = []
+1 −2
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import { createPortal } from 'react-dom'
import { Outlet } from 'react-router-dom'

const ToolbarPortal = () => {
  const { exerciseId, teamId } = useParams('/instructor/:exerciseId/:teamId')
  const { teamId } = useParams('/instructor/:exerciseId/:teamId')
  const [open, setOpen] = useState(false)

  const portalRef = document.getElementById('toolPanel')
@@ -17,7 +17,6 @@ const ToolbarPortal = () => {
        open &&
        createPortal(
          <Toolbar
            exerciseId={exerciseId}
            teamId={teamId}
            disabled
            disabledTitle='Using tools is not allowed in instructor view'
+2 −1
Original line number Diff line number Diff line
@@ -3,10 +3,11 @@ import useActionLogSubscriptionInstructor from '@inject/graphql/utils/Subscripti
import { Outlet } from 'react-router-dom'

const LayoutExercise = () => {
  const { exerciseId } = useParams('/instructor/:exerciseId')
  const { exerciseId, teamId } = useParams('/instructor/:exerciseId/:teamId')

  useActionLogSubscriptionInstructor({
    exerciseId,
    teamId,
  })

  return <Outlet />
+2 −6
Original line number Diff line number Diff line
@@ -4,18 +4,14 @@ import { createPortal } from 'react-dom'
import { Outlet } from 'react-router-dom'

const Layout = () => {
  const { exerciseId, teamId } = useParams('/trainee/:exerciseId/:teamId')
  const { teamId } = useParams('/trainee/:exerciseId/:teamId')

  const portalRef = document.getElementById('toolPanel')

  return (
    <>
      <Outlet />
      {portalRef &&
        createPortal(
          <Toolbar teamId={teamId} exerciseId={exerciseId} />,
          portalRef
        )}
      {portalRef && createPortal(<Toolbar teamId={teamId} />, portalRef)}
    </>
  )
}
Loading