Skip to content

Commit

Permalink
Fetch engaged control units with polling
Browse files Browse the repository at this point in the history
  • Loading branch information
louptheron committed Oct 23, 2023
1 parent 2252b64 commit 943804a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import {
mapControlUnitsToUniqueSortedNamesAsOptions,
mapControlUnitToSortedResourcesAsOptions
} from './utils'
import { FIVE_MINUTES } from '../../../../../api/APIWorker'
import { useGetEngagedControlUnitsQuery } from '../../../../../api/mission'
import { INITIAL_MISSION_CONTROL_UNIT } from '../../constants'
import { isValidControlUnit } from '../../utils'

Expand All @@ -37,7 +39,6 @@ export type ControlUnitSelectProps = {
}
| undefined
index: number
isEngaged: boolean
onChange: (index: number, nextControlUnit: ControlUnit.ControlUnit | ControlUnit.ControlUnitDraft) => Promisable<void>
onDelete: (index: number) => Promisable<void>
value: ControlUnit.ControlUnit | ControlUnit.ControlUnitDraft
Expand All @@ -48,18 +49,27 @@ export function ControlUnitSelect({
allNamesAsOptions,
error,
index,
isEngaged,
onChange,
onDelete,
value
}: ControlUnitSelectProps) {
const { newWindowContainerRef } = useNewWindow()
const { data: engagedControlUnitsData } = useGetEngagedControlUnitsQuery(undefined, { pollingInterval: FIVE_MINUTES })

const engagedControlUnits = useMemo(() => {
if (!engagedControlUnitsData) {
return []
}

return engagedControlUnitsData
}, [engagedControlUnitsData])

const [controlledValue, setControlledValue] = useState(value)
const [selectedControlUnit, setSelectedControlUnit] = useState<ControlUnit.ControlUnit | undefined>(
isValidControlUnit(value) ? value : undefined
)

const isEngaged = !!engagedControlUnits.find(engaged => engaged.id === value.id)
const isLoading = !allControlUnits.length

const filteredNamesAsOptions = useMemo((): Option[] => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import styled from 'styled-components'

import { ControlUnitSelect } from './ControlUnitSelect'
import { useGetControlUnitsQuery } from '../../../../../api/controlUnit'
import { useGetEngagedControlUnitsQuery } from '../../../../../api/mission'
import { getControlUnitsOptionsFromControlUnits } from '../../../../../domain/entities/controlUnits/utils'
import { INITIAL_MISSION_CONTROL_UNIT, PAMControlUnitIds } from '../../constants'
import { useGetMainFormFormikUsecases } from '../../hooks/useGetMainFormFormikUsecases'
Expand All @@ -26,22 +25,13 @@ export function FormikMultiControlUnitPicker({ name }: FormikMultiControlUnitPic
) || false

const controlUnitsQuery = useGetControlUnitsQuery(undefined)
const { data: engagedControlUnitsData } = useGetEngagedControlUnitsQuery(undefined)

const {
activeControlUnits: allActiveControlUnits,
administrationsAsOptions: allAdministrationsAsOptions,
unitsAsOptions: allNamesAsOptions
} = useMemo(() => getControlUnitsOptionsFromControlUnits(controlUnitsQuery.data), [controlUnitsQuery.data])

const engagedControlUnits = useMemo(() => {
if (!engagedControlUnitsData) {
return []
}

return engagedControlUnitsData
}, [engagedControlUnitsData])

const errors = (allErrors[name] || []) as Array<{
administration: string
name: string
Expand Down Expand Up @@ -94,7 +84,6 @@ export function FormikMultiControlUnitPicker({ name }: FormikMultiControlUnitPic
allNamesAsOptions={allNamesAsOptions}
error={errors[index]}
index={index}
isEngaged={!!engagedControlUnits.find(engaged => engaged.id === value.id)}
onChange={handleChange}
onDelete={removeUnit}
value={value}
Expand Down

0 comments on commit 943804a

Please sign in to comment.