});
cy.get('[data-cy=form-dialog]').should("not.exist");
cy.get('[data-cy=side-panel-tree]').contains('Projects').click();
- cy.waitForDom().get('[data-cy=project-panel]').contains(projectName).rightclick();
+ cy.get('[data-cy=project-panel]').contains(projectName).should('be.visible').rightclick();
cy.get('[data-cy=context-menu]').contains('Copy to clipboard').click();
cy.window().then((win) => (
win.navigator.clipboard.readText().then((text) => {
}).reduce((prev, next) => {
return { ...next, ...prev };
}, {});
-
- setPathData({ ...pathData, ...newState });
+ setPathData((state) => ({ ...state, ...newState }));
})
.finally(() => {
setIsLoading(false);
if (breadcrumbPath) {
const index = path.indexOf(breadcrumbPath);
- setPath([...path.slice(0, index + 1)]);
+ setPath((state) => ([...state.slice(0, index + 1)]));
}
if (parentPath && type === 'directory') {
path.pop()
}
- setPath([...path, parentPath]);
+ setPath((state) => ([...state, parentPath]));
}
if (subfolderPath && type === 'directory') {
- setPath([...path, subfolderPath]);
+ setPath((state) => ([...state, subfolderPath]));
}
if (elem.dataset.id && type === 'file') {
<div className={classes.wrapper}>
<div className={classNames(classes.leftPanel, path.length > 1 ? classes.leftPanelVisible : classes.leftPanelHidden)} data-cy="collection-files-left-panel">
<Tooltip title="Go back" className={path.length > 1 ? classes.backButton : classes.backButtonHidden}>
- <IconButton onClick={() => setPath([...path.slice(0, path.length -1)])}>
+ <IconButton onClick={() => setPath((state) => ([...state.slice(0, state.length -1)]))}>
<BackIcon />
</IconButton>
</Tooltip>
import { CommandOutputParameter } from "cwlts/mappings/v1.0/CommandOutputParameter";
import { ContainerResource } from "models/container";
import { ContainerRequestResource, ContainerRequestState } from "models/container-request";
+import { FilterBuilder } from "services/api/filter-builder";
export const loadProcess = (containerRequestUuid: string) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository): Promise<Process | undefined> => {
return { containerRequest };
};
-export const loadContainers = (filters: string, loadMounts: boolean = true) =>
+export const loadContainers = (containerUuids: string[], loadMounts: boolean = true) =>
async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- let args: any = { filters };
+ let args: any = {
+ filters: new FilterBuilder().addIn('uuid', containerUuids).getFilters(),
+ limit: containerUuids.length,
+ };
if (!loadMounts) {
args.select = containerFieldsNoMounts;
}
export const loadMissingProcessesInformation = (resources: GroupContentsResource[]) =>
async (dispatch: Dispatch) => {
const containerUuids = resources.reduce((uuids, resource) => {
- return resource.kind === ResourceKind.CONTAINER_REQUEST
- ? resource.containerUuid
- ? [...uuids, resource.containerUuid]
- : uuids
+ return resource.kind === ResourceKind.CONTAINER_REQUEST &&
+ resource.containerUuid &&
+ !uuids.includes(resource.containerUuid)
+ ? [...uuids, resource.containerUuid]
: uuids;
- }, []);
+ }, [] as string[]);
if (containerUuids.length > 0) {
await dispatch<any>(loadContainers(
- new FilterBuilder().addIn('uuid', containerUuids).getFilters(),
+ containerUuids,
false
));
}