Loading frontend/src/actionlog/InjectMessage/Content/InjectContent.tsx +3 −5 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import type { TCustomInjectDetails, TInjectDetails, } from '@inject/graphql' import { Confirm, useBlockableMutation } from '@inject/graphql' import { Confirm, useExerciseStatus, useTypedMutation } from '@inject/graphql' import { useTranslationFrontend } from '@inject/locale' import { Done, useFormatTimestamp } from '@inject/shared' import type { NavigateOptions } from '@tanstack/react-router' Loading Loading @@ -48,10 +48,8 @@ const InjectContent: FC<InjectContentProps> = ({ onClose, }) => { const { t } = useTranslationFrontend() const [running, { fetching: loading }, confirm] = useBlockableMutation( Confirm, teamId ) const running = useExerciseStatus({ exerciseId, teamId }) === 'RUNNING' const [{ fetching: loading }, confirm] = useTypedMutation(Confirm) const confirmation = 'confirmation' in details ? details.confirmation : null const confirmationActionLog = actionLog.nextLogs.find( Loading frontend/src/actionlog/InjectMessage/Content/TraineeQuestionnaireContent.tsx +2 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ import type { } from '@inject/graphql' import { AnswerQuestionnaire, useLoopStatus, useExerciseStatus, useTypedMutation, } from '@inject/graphql' import { useTranslationFrontend } from '@inject/locale' Loading Loading @@ -160,7 +160,7 @@ const TraineeQuestionnaireContent: FC<TraineeQuestionnaireContentProps> = ({ const postExerciseSubmission = teamState.questionnaire.postExerciseSubmission const { running } = useLoopStatus({ teamId }) const running = useExerciseStatus({ teamId, exerciseId }) === 'RUNNING' const [submitError, setSubmitError] = useState('') const { beginWiggling, wiggling } = useWiggle() const [submittedCount, setSubmittedCount] = useState(0) Loading frontend/src/actionlog/ToolAction/ToolForm.tsx +9 −5 Original line number Diff line number Diff line import { Button, Callout, FormGroup, InputGroup } from '@blueprintjs/core' import { css, cx } from '@emotion/css' import type { Tool } from '@inject/graphql' import { PerformTeamToolAction, useBlockableMutation } from '@inject/graphql' import { PerformTeamToolAction, useExerciseStatus, useTypedMutation, } from '@inject/graphql' import { useTranslationFrontend } from '@inject/locale' import { breakWord, useWiggle, wiggleClass } from '@inject/shared' import type { FC, FormEvent, KeyboardEventHandler } from 'react' Loading @@ -20,6 +24,7 @@ const submit = css` interface ToolFormProps { tool: Tool teamId: string exerciseId: string setOpen(arg0: boolean): void disabled?: boolean disabledTitle?: string Loading @@ -30,6 +35,7 @@ interface ToolFormProps { const ToolForm: FC<ToolFormProps> = ({ tool, teamId, exerciseId, setOpen, disabled, disabledTitle, Loading @@ -39,10 +45,8 @@ const ToolForm: FC<ToolFormProps> = ({ const { tooltipDescription, id, requiresInput } = tool const [value, setValue] = useState<string>('') const [isError, setIsError] = useState(false) const [running, { fetching }, mutate] = useBlockableMutation( PerformTeamToolAction, teamId ) const running = useExerciseStatus({ exerciseId, teamId }) === 'RUNNING' const [{ fetching }, mutate] = useTypedMutation(PerformTeamToolAction) const { beginWiggling, wiggling } = useWiggle() Loading frontend/src/actionlog/ToolAction/index.tsx +3 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import ToolForm from './ToolForm' interface ToolActionProps { tool: Tool teamId: string exerciseId: string disabled?: boolean disabledTitle?: string } Loading @@ -14,6 +15,7 @@ interface ToolActionProps { const ToolAction: FC<ToolActionProps> = ({ tool, teamId, exerciseId, disabled, disabledTitle, }) => { Loading @@ -35,6 +37,7 @@ const ToolAction: FC<ToolActionProps> = ({ <ToolForm tool={tool} teamId={teamId} exerciseId={exerciseId} setOpen={setOpen} disabled={disabled} disabledTitle={disabledTitle} Loading frontend/src/components/Status/HealthCheck.tsx +1 −8 Original line number Diff line number Diff line import type { Intent } from '@blueprintjs/core' import { Spinner, Tooltip } from '@blueprintjs/core' import { useLoopStatus } from '@inject/graphql' import type { FC } from 'react' // TODO: consolidate interface HealthCheckProps { teamId?: string } const HealthCheck: FC<HealthCheckProps> = ({ teamId }) => { const HealthCheck = () => { /* * This is a dummy element which is used for propagating load states from `@inject/graphql` package, it's necessary that this element is mounted in needed places and that it's a singleton. It's not useless :) */ useLoopStatus({ teamId }) let backendStatus: string | undefined = undefined if (typeof window !== 'undefined') { Loading Loading
frontend/src/actionlog/InjectMessage/Content/InjectContent.tsx +3 −5 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ import type { TCustomInjectDetails, TInjectDetails, } from '@inject/graphql' import { Confirm, useBlockableMutation } from '@inject/graphql' import { Confirm, useExerciseStatus, useTypedMutation } from '@inject/graphql' import { useTranslationFrontend } from '@inject/locale' import { Done, useFormatTimestamp } from '@inject/shared' import type { NavigateOptions } from '@tanstack/react-router' Loading Loading @@ -48,10 +48,8 @@ const InjectContent: FC<InjectContentProps> = ({ onClose, }) => { const { t } = useTranslationFrontend() const [running, { fetching: loading }, confirm] = useBlockableMutation( Confirm, teamId ) const running = useExerciseStatus({ exerciseId, teamId }) === 'RUNNING' const [{ fetching: loading }, confirm] = useTypedMutation(Confirm) const confirmation = 'confirmation' in details ? details.confirmation : null const confirmationActionLog = actionLog.nextLogs.find( Loading
frontend/src/actionlog/InjectMessage/Content/TraineeQuestionnaireContent.tsx +2 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ import type { } from '@inject/graphql' import { AnswerQuestionnaire, useLoopStatus, useExerciseStatus, useTypedMutation, } from '@inject/graphql' import { useTranslationFrontend } from '@inject/locale' Loading Loading @@ -160,7 +160,7 @@ const TraineeQuestionnaireContent: FC<TraineeQuestionnaireContentProps> = ({ const postExerciseSubmission = teamState.questionnaire.postExerciseSubmission const { running } = useLoopStatus({ teamId }) const running = useExerciseStatus({ teamId, exerciseId }) === 'RUNNING' const [submitError, setSubmitError] = useState('') const { beginWiggling, wiggling } = useWiggle() const [submittedCount, setSubmittedCount] = useState(0) Loading
frontend/src/actionlog/ToolAction/ToolForm.tsx +9 −5 Original line number Diff line number Diff line import { Button, Callout, FormGroup, InputGroup } from '@blueprintjs/core' import { css, cx } from '@emotion/css' import type { Tool } from '@inject/graphql' import { PerformTeamToolAction, useBlockableMutation } from '@inject/graphql' import { PerformTeamToolAction, useExerciseStatus, useTypedMutation, } from '@inject/graphql' import { useTranslationFrontend } from '@inject/locale' import { breakWord, useWiggle, wiggleClass } from '@inject/shared' import type { FC, FormEvent, KeyboardEventHandler } from 'react' Loading @@ -20,6 +24,7 @@ const submit = css` interface ToolFormProps { tool: Tool teamId: string exerciseId: string setOpen(arg0: boolean): void disabled?: boolean disabledTitle?: string Loading @@ -30,6 +35,7 @@ interface ToolFormProps { const ToolForm: FC<ToolFormProps> = ({ tool, teamId, exerciseId, setOpen, disabled, disabledTitle, Loading @@ -39,10 +45,8 @@ const ToolForm: FC<ToolFormProps> = ({ const { tooltipDescription, id, requiresInput } = tool const [value, setValue] = useState<string>('') const [isError, setIsError] = useState(false) const [running, { fetching }, mutate] = useBlockableMutation( PerformTeamToolAction, teamId ) const running = useExerciseStatus({ exerciseId, teamId }) === 'RUNNING' const [{ fetching }, mutate] = useTypedMutation(PerformTeamToolAction) const { beginWiggling, wiggling } = useWiggle() Loading
frontend/src/actionlog/ToolAction/index.tsx +3 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import ToolForm from './ToolForm' interface ToolActionProps { tool: Tool teamId: string exerciseId: string disabled?: boolean disabledTitle?: string } Loading @@ -14,6 +15,7 @@ interface ToolActionProps { const ToolAction: FC<ToolActionProps> = ({ tool, teamId, exerciseId, disabled, disabledTitle, }) => { Loading @@ -35,6 +37,7 @@ const ToolAction: FC<ToolActionProps> = ({ <ToolForm tool={tool} teamId={teamId} exerciseId={exerciseId} setOpen={setOpen} disabled={disabled} disabledTitle={disabledTitle} Loading
frontend/src/components/Status/HealthCheck.tsx +1 −8 Original line number Diff line number Diff line import type { Intent } from '@blueprintjs/core' import { Spinner, Tooltip } from '@blueprintjs/core' import { useLoopStatus } from '@inject/graphql' import type { FC } from 'react' // TODO: consolidate interface HealthCheckProps { teamId?: string } const HealthCheck: FC<HealthCheckProps> = ({ teamId }) => { const HealthCheck = () => { /* * This is a dummy element which is used for propagating load states from `@inject/graphql` package, it's necessary that this element is mounted in needed places and that it's a singleton. It's not useless :) */ useLoopStatus({ teamId }) let backendStatus: string | undefined = undefined if (typeof window !== 'undefined') { Loading