-export const COLLECTION_TAG_FORM_NAME = 'collectionTagForm';
-
-export const loadCollection = (uuid: string) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- dispatch(collectionPanelActions.LOAD_COLLECTION({ uuid }));
- dispatch(collectionPanelFilesAction.SET_COLLECTION_FILES({ files: createTree() }));
- return services.collectionService
- .get(uuid)
- .then(item => {
- dispatch(collectionPanelActions.LOAD_COLLECTION_SUCCESS({ item }));
- dispatch<any>(loadCollectionFiles(uuid));
- });
- };
-
-export const loadCollectionTags = (uuid: string) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- dispatch(collectionPanelActions.LOAD_COLLECTION_TAGS({ uuid }));
- return services.tagService
- .list(uuid)
- .then(tags => {
- dispatch(collectionPanelActions.LOAD_COLLECTION_TAGS_SUCCESS({ tags }));
- });
- };
-
-
-export const createCollectionTag = (data: TagProperty) =>
- (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
- dispatch(collectionPanelActions.CREATE_COLLECTION_TAG({ data }));
- const item = getState().collectionPanel.item;
- const uuid = item ? item.uuid : '';
- return services.tagService
- .create(uuid, data)
- .then(tag => {
- dispatch(collectionPanelActions.CREATE_COLLECTION_TAG_SUCCESS({ tag }));
- dispatch(snackbarActions.OPEN_SNACKBAR({
- message: "Tag has been successfully added.",
- hideDuration: 2000
- }));
- });
+export const loadCollectionPanel = (uuid: string, forceReload = false) =>
+ async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+ const { collectionPanel: { item } } = getState();
+ let collection: CollectionResource | null = null;
+ if (!item || item.uuid !== uuid || forceReload) {
+ collection = await services.collectionService.get(uuid);
+ dispatch(collectionPanelActions.SET_COLLECTION(collection));
+ dispatch(resourcesActions.SET_RESOURCES([collection]));
+ } else {
+ collection = item;
+ }
+ dispatch<any>(loadDetailsPanel(collection.uuid));
+ return collection;