Skip to content

Commit

Permalink
[frontend] Fix "Select all" not available for relationship creation (…
Browse files Browse the repository at this point in the history
…#issue/6407)
  • Loading branch information
SarahBocognano committed Apr 4, 2024
1 parent ed2e24d commit e351acb
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import StixCoreRelationshipCreationFromEntityStixCoreObjectsLines, {
import useFiltersState from '../../../../utils/filters/useFiltersState';
import type { Theme } from '../../../../components/Theme';
import { ModuleHelper } from '../../../../utils/platformModulesHelper';
import { StixCoreRelationshipCreationFromEntityStixCoreObjectsLine_node$data } from './__generated__/StixCoreRelationshipCreationFromEntityStixCoreObjectsLine_node.graphql';
import useEntityToggle from '../../../../utils/hooks/useEntityToggle';

const useStyles = makeStyles<Theme>((theme) => ({
drawerPaper: {
Expand Down Expand Up @@ -311,7 +311,6 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent<StixCoreRelation
const [targetEntities, setTargetEntities] = useState(
targetEntitiesProps,
);
const [selectedElements, setSelectedElements] = useState<Record<string, StixCoreRelationshipCreationFromEntityStixCoreObjectsLine_node$data>>({});
useEffect(() => {
if (!R.equals(targetEntitiesProps, targetEntities) && targetEntitiesProps.length > targetEntities.length) {
setTargetEntities(targetEntitiesProps);
Expand Down Expand Up @@ -461,18 +460,23 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent<StixCoreRelation
setStep(1);
};

const onToggleEntity = (entity: TargetEntity) => {
const {
onToggleEntity,
selectedElements,
deSelectedElements,
} = useEntityToggle(`${entityId}_stixCoreRelationshipCreationFromEntity`);

const onInstanceToggleEntity = (entity: TargetEntity) => {
onToggleEntity(entity);
if (entity.id in (selectedElements || {})) {
const newSelectedElements = R.omit([entity.id], selectedElements);
setSelectedElements(newSelectedElements);
setTargetEntities(R.values(newSelectedElements));
} else {
const newSelectedElements = R.assoc(
entity.id,
entity,
selectedElements || {},
);
setSelectedElements(newSelectedElements);
setTargetEntities(R.values(newSelectedElements));
}
};
Expand Down Expand Up @@ -567,9 +571,9 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent<StixCoreRelation
setNumberOfElements={setNumberOfElements}
containerRef={containerRef}
selectedElements={selectedElements}
deSelectedElements={{}}
deSelectedElements={deSelectedElements}
selectAll={false}
onToggleEntity={onToggleEntity}
onToggleEntity={onInstanceToggleEntity}
/>
)}
/>
Expand Down Expand Up @@ -695,9 +699,9 @@ const StixCoreRelationshipCreationFromEntity: FunctionComponent<StixCoreRelation
{({ schema }) => {
const relationshipTypes = R.uniq(R.filter(
(n) => R.isNil(allowedRelationshipTypes)
|| allowedRelationshipTypes.length === 0
|| allowedRelationshipTypes.includes('stix-core-relationship')
|| allowedRelationshipTypes.includes(n),
|| allowedRelationshipTypes.length === 0
|| allowedRelationshipTypes.includes('stix-core-relationship')
|| allowedRelationshipTypes.includes(n),
resolveRelationsTypes(
fromEntities[0].entity_type,
toEntities[0].entity_type,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import { fieldSpacingContainerStyle } from '../../../../utils/field';
import ListLines from '../../../../components/list_lines/ListLines';
import useFiltersState from '../../../../utils/filters/useFiltersState';
import { emptyFilterGroup, removeIdFromFilterGroupObject } from '../../../../utils/filters/filtersUtils';
import useEntityToggle from '../../../../utils/hooks/useEntityToggle';

const useStyles = makeStyles((theme) => ({
drawerPaper: {
Expand Down Expand Up @@ -333,7 +334,6 @@ const StixNestedRefRelationshipCreationFromEntity = ({
const [openCreateObservable, setOpenCreateObservable] = useState(false);
const [step, setStep] = useState(0);
const [targetEntity, setTargetEntity] = useState([]);
const [selectedElements, setSelectedElements] = useState({});
const [sortBy, setSortBy] = useState('_score');
const [orderAsc, setOrderAsc] = useState(false);
const [numberOfElements, setNumberOfElements] = useState({
Expand Down Expand Up @@ -466,18 +466,23 @@ const StixNestedRefRelationshipCreationFromEntity = ({
setTargetEntity(stixDomainObject);
};

const onToggleEntity = (entity) => {
const {
onToggleEntity,
selectedElements,
deSelectedElements,
} = useEntityToggle(`${entityId}_stixNestedRefRelationshipCreationFromEntity`);

const onInstanceToggleEntity = (entity) => {
onToggleEntity(entity);
if (entity.id in (selectedElements || {})) {
const newSelectedElements = R.omit([entity.id], selectedElements);
setSelectedElements(newSelectedElements);
setTargetEntity(R.values(newSelectedElements));
} else {
const newSelectedElements = R.assoc(
entity.id,
entity,
selectedElements || {},
);
setSelectedElements(newSelectedElements);
setTargetEntity(R.values(newSelectedElements));
}
};
Expand Down Expand Up @@ -576,10 +581,10 @@ const StixNestedRefRelationshipCreationFromEntity = ({
dataColumns={dataColumns}
initialLoading={false}
setNumberOfElements={setNumberOfElements}
onToggleEntity={onToggleEntity}
onToggleEntity={onInstanceToggleEntity}
containerRef={containerRef}
selectedElements={selectedElements}
deSelectedElements={{}}
deSelectedElements={deSelectedElements}
selectAll={false}
/>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ const StixNestedRefRelationshipCreationFromEntityLines = createPaginationContain
) @connection(key: "Pagination_stixCoreObjects") {
edges {
node {
id
...StixNestedRefRelationshipCreationFromEntityLine_node
}
}
Expand Down

0 comments on commit e351acb

Please sign in to comment.