Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import React, { FC } from "react"; import { SingleValue } from "react-select"; import l10n from "shared/lib/lang/l10n"; import { variableSelectors } from "store/features/entities/entitiesState"; import { useAppSelector } from "store/hooks"; import { Select, SelectCommonProps } from "ui/form/Select"; interface FlagSelectProps extends SelectCommonProps { name: string; value?: number; variableId: string; entityId: string; onChange?: (newFlag: number) => void; } export const FlagSelect: FC<FlagSelectProps> = ({ value, variableId, entityId, onChange, ...selectProps }) => { const variableIsLocal = variableId && variableId.startsWith("L"); const namedVariable = useAppSelector((state) => { let id = variableId; Iif (variableIsLocal) { id = `${entityId}__${variableId}`; } return variableSelectors.selectById(state, id); }); const flagOptions = Array(16) .fill(0) .map((_, i) => { let namedLabel = l10n("FIELD_FLAG_N", { n: i + 1 }); Iif (namedVariable?.flags && namedVariable?.flags[`flag${i + 1}`]) { namedLabel = namedVariable?.flags[`flag${i + 1}`]; } return { label: namedLabel, value: i, }; }); const currentValue = flagOptions.find((o) => (value ? o.value === value : o.value === value)) || flagOptions[0]; const onFieldChange = (newOption: SingleValue<{ value: number }>) => { Iif (newOption && onChange) { onChange(newOption.value); } }; return ( <Select value={currentValue} options={flagOptions} onChange={onFieldChange} {...selectProps} /> ); }; |