Skip to content

Commit

Permalink
fix: fixed the issue with autoSelect
Browse files Browse the repository at this point in the history
  • Loading branch information
Sinrefvol committed Feb 28, 2024
1 parent f514875 commit 70442b5
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 58 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/* eslint-disable max-lines-per-function */
/* eslint-disable react/prop-types */

import { Autocomplete, AutocompleteChanges } from '@equinor/eds-core-react';
import { MetadataDto } from '../../../../api/generated';

Expand Down Expand Up @@ -27,74 +29,34 @@ export const MetadataSelect = ({
value: 'Not relevant',
},
];

const props =
metadata != undefined && metadata!.length > 0
? metadata.filter((m) => m.metadataType === type)
: emptyOption;
const filteredOptions = data.filter((d) => d.metadataType === type);
const optionList: MetadataDto[] = filteredOptions
? emptyOption.concat(filteredOptions)
: emptyOption;

const setSelectedMetadataOptions = (type: string) => {
let selectedOptions: MetadataDto[] = [];

if (!isLoading && data && metadata) {
const selectedProps = metadata.filter((m) => m.metadataType === type);

const noRelevantSelected = metadata
.filter((m) => m.metadataType === 'NoRelevant')
.filter((t) => t.metadataId === type);

const loadedProps = optionList.filter(
(c) =>
selectedProps.findIndex((x: MetadataDto) => x.value === c.value) > -1,
);

if (
metadata.length > 0 &&
selectedProps.length > 0 &&
noRelevantSelected.length === 0
) {
selectedOptions = loadedProps;
} else if (
selectedProps.length === 0 &&
noRelevantSelected.length === 0
) {
selectedOptions = emptyOption;
} else if (
selectedProps.length === 0 &&
noRelevantSelected.length !== 0
) {
selectedOptions = [];
}
}
return selectedOptions;
};
const resLitstLength = setSelectedMetadataOptions(type)?.length;
const intersection = optionList.filter((a) =>
props.some((b) => JSON.stringify(a) === JSON.stringify(b)),
);

return (
<Autocomplete
variant={errors ? 'error' : undefined}
label={type}
options={optionList}
optionLabel={(option) => option.value}
selectedOptions={
setSelectedMetadataOptions(type) &&
setSelectedMetadataOptions(type) !== undefined &&
resLitstLength &&
resLitstLength > 0
? setSelectedMetadataOptions(type)
: resLitstLength && resLitstLength === 0
? [
{
metadataId: type,
metadataType: 'NoRelevant',
value: 'Not relevant',
},
]
: []
}
multiple
onOptionsChange={(e: AutocompleteChanges<MetadataDto>) =>
handleAddMetadata(e, type)
initialSelectedOptions={
intersection.length === 0 ? emptyOption : intersection
}
></Autocomplete>
onOptionsChange={(e: AutocompleteChanges<MetadataDto>) => {
handleAddMetadata(e, type);
console.log(e.selectedItems);
}}
/>
);
};
11 changes: 8 additions & 3 deletions src/features/AddModel/ModelMetadata/ModelMetadata.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,15 @@ export const ModelMetadata = ({
.filter((i) => i.metadataType !== propType)
.filter((n) => n.metadataId !== propType);

const newList = [...metadataList, ...e.selectedItems];
const removeNotSelected = e.selectedItems.filter(
(i) => i.metadataType === propType,
);
// console.log(removeNotSelected)

if (propType === 'Formation') console.log(e.selectedItems);
if (propType === 'Formation') console.log(newList);
const newList = [...metadataList, ...removeNotSelected];

// if (propType === 'Formation') console.log(e.selectedItems);
// if (propType === 'Formation') console.log(newList);

setMetadata({
...metadata,
Expand Down

0 comments on commit 70442b5

Please sign in to comment.