Repository URL to install this package:
|
Version:
3.12.20 ▾
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
import { createSlice } from '@reduxjs/toolkit';
import { uploadsAdded, allUploadsCancelled, selectUploadsCount } from '@filerobot/core/lib/slices/uploads.slice';
import { progressPanelFilesAdded } from '@filerobot/core/lib/slices/progressPanel.slice';
import { IMAGE_EDITOR_MODES, PLUGINS_IDS } from '@filerobot/utils/lib/constants';
import { selectTargetByIdAndType } from './targets.slice';
import { viewChanged } from './views.slice';
import { renameFolder } from './folders.slice';
import { searchSuggestionsUpdated } from './search.slice';
var slicePropName = 'panels';
var sliceName = "".concat(PLUGINS_IDS.EXPLORER, "/").concat(slicePropName);
export var ACTION_BAR_DEFAULT_Z_INDEX = 1113;
export var ACTION_BAR_INSIDE_MODALS_Z_INDEX = 1201;
var initialState = {
actionBarZIndex: ACTION_BAR_DEFAULT_Z_INDEX,
pickerPanel: null,
activeOverlayType: null,
showAddFilesPanel: false,
showUploadsPanel: false,
minimizedUploadPanel: false,
showDetailsView: false,
fileWindow: {
"for": null,
enableEdit: false,
enableRename: false,
tabId: null
},
imageEditor: {
file: null,
// not the uuid/id of the file, cause we might provide other files like variants...etc.
mode: IMAGE_EDITOR_MODES.DEFAULT,
showBackButton: 'auto',
hideSavingOptions: false
},
mainMenu: {
opened: false,
collapsed: false
},
pdfFilePreviewFor: null,
hideActionBar: false,
renameItem: {
"for": null,
fromSidebar: false
},
bulkEditPanelFor: null,
showCollectionModal: false,
collectionToEdit: null,
createPreviewCollection: false,
previewCollection: null,
showPreviewCollectionPanel: false,
sharePanelFor: null,
sharedFoldersUrl: null,
// for after share of folders
cropPanelFile: null // file not uuid, as we might provide variant or some other file.
};
export var setNewPickerPanel = function setNewPickerPanel(payload) {
return function (dispatch, getState) {
return dispatch(pickerPanelUpdated({
pickerPanel: selectTargetByIdAndType(getState(), payload.pickerPanelId, payload.pickerPanelType)
}));
};
};
// As we might need to open a panel over another one (panel opened from a panel and then we should get back again to the first panel).
var keepCurrOrCloseOtherPanels = function keepCurrOrCloseOtherPanels(state, closeOthers) {
return closeOthers ? initialState : state;
};
var getPanelForOrNull = function getPanelForOrNull(payload) {
var _ref = payload || {},
_ref$for = _ref["for"],
openPanelFor = _ref$for === void 0 ? null : _ref$for;
return !openPanelFor && _typeof(payload) !== 'object' ? payload || null : openPanelFor;
};
var panelsSlice = createSlice({
name: sliceName,
initialState: initialState,
reducers: {
pickerPanelUpdated: function pickerPanelUpdated(state, action) {
var _action$payload$picke, _action$payload;
var value = (_action$payload$picke = action.payload.pickerPanel) !== null && _action$payload$picke !== void 0 ? _action$payload$picke : action.payload;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.closeOthers)), {}, {
pickerPanel: value,
activeOverlayType: value ? 'PickerPanel' : null
});
},
showAddFilesPanelUpdated: function showAddFilesPanelUpdated(state, action) {
var _action$payload$show, _action$payload2;
var value = (_action$payload$show = action.payload.show) !== null && _action$payload$show !== void 0 ? _action$payload$show : action.payload;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : _action$payload2.closeOthers)), {}, {
showAddFilesPanel: value,
activeOverlayType: value ? 'AddFiles' : null
});
},
minimizedUploadPanelUpdated: function minimizedUploadPanelUpdated(state, action) {
var _action$payload$minim;
var value = (_action$payload$minim = action.payload.minimized) !== null && _action$payload$minim !== void 0 ? _action$payload$minim : action.payload;
return _objectSpread(_objectSpread({}, state), {}, {
minimizedUploadPanel: value
});
},
fileWindowUpdated: function fileWindowUpdated(state, action) {
var _ref3, _ref4, _action$payload3, _ref5;
// It's possible to enable edit/rename only without providing the file uuid again, so we need to check about that
// If enable edit/rename or close others is provided means we need to keep the file window opened so we keep the file uuid there
// Otherwise (no file uuid, not enable edit/rename or closeOthers) then we close the file window
var _ref2 = action.payload || {},
enableEdit = _ref2.enableEdit,
enableRename = _ref2.enableRename,
closeOthers = _ref2.closeOthers,
tabId = _ref2.tabId;
var isOtherValueChanged = typeof ((_ref3 = (_ref4 = enableEdit !== null && enableEdit !== void 0 ? enableEdit : enableRename) !== null && _ref4 !== void 0 ? _ref4 : closeOthers) !== null && _ref3 !== void 0 ? _ref3 : tabId) !== 'undefined';
var forValue = getPanelForOrNull(action.payload);
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, closeOthers)), {}, {
activeOverlayType: forValue || isOtherValueChanged ? 'FileWindow' : null,
fileWindow: {
"for": forValue !== null && forValue !== void 0 ? forValue : isOtherValueChanged ? state.fileWindow["for"] : null,
enableEdit: action.payload === null || ((_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : _action$payload3["for"]) === null ? false : (_ref5 = enableEdit !== null && enableEdit !== void 0 ? enableEdit : enableRename) !== null && _ref5 !== void 0 ? _ref5 : state.fileWindow.enableEdit,
enableRename: enableRename || false,
tabId: tabId !== null && tabId !== void 0 ? tabId : null
}
});
},
sharePanelOpened: function sharePanelOpened(state, action) {
var _action$payload4;
var value = getPanelForOrNull(action.payload);
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload4 = action.payload) === null || _action$payload4 === void 0 ? void 0 : _action$payload4.closeOthers)), {}, {
sharePanelFor: value,
activeOverlayType: value ? 'SharePanel' : null
});
},
foldersAfterSharePanelOpened: function foldersAfterSharePanelOpened(state, action) {
var _action$payload$url, _action$payload5, _action$payload6;
var value = (_action$payload$url = (_action$payload5 = action.payload) === null || _action$payload5 === void 0 ? void 0 : _action$payload5.url) !== null && _action$payload$url !== void 0 ? _action$payload$url : action.payload;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload6 = action.payload) === null || _action$payload6 === void 0 ? void 0 : _action$payload6.closeOthers)), {}, {
sharedFoldersUrl: value,
activeOverlayType: value ? 'FoldersAfterShare' : null
});
},
itemRenameOpened: function itemRenameOpened(state, action) {
var _action$payload$for, _action$payload7, _action$payload8, _action$payload$fromS, _action$payload9;
var itemId = (_action$payload$for = (_action$payload7 = action.payload) === null || _action$payload7 === void 0 ? void 0 : _action$payload7["for"]) !== null && _action$payload$for !== void 0 ? _action$payload$for : action.payload;
// If rename is triggered for the same file opened in the file window, means it's called from the window's context menu
// then enable edit and focus rename field, instead of enabling rename in the file item.
if (itemId && state.fileWindow["for"] === itemId) {
return _objectSpread(_objectSpread({}, state), {}, {
fileWindow: _objectSpread(_objectSpread({}, state.fileWindow), {}, {
enableRename: true,
enableEdit: true
})
});
}
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload8 = action.payload) === null || _action$payload8 === void 0 ? void 0 : _action$payload8.closeOthers)), {}, {
renameItem: {
"for": itemId,
fromSidebar: (_action$payload$fromS = (_action$payload9 = action.payload) === null || _action$payload9 === void 0 ? void 0 : _action$payload9.fromSidebar) !== null && _action$payload$fromS !== void 0 ? _action$payload$fromS : false
}
});
},
imageEditorOpened: function imageEditorOpened(state, action) {
var _action$payload10, _payload$showBackButt, _payload$hideSavingOp;
var payload = action.payload || {};
var value = (_action$payload10 = action.payload) === null || _action$payload10 === void 0 ? void 0 : _action$payload10.file;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, payload.closeOthers)), {}, {
activeOverlayType: value ? 'ImageEditor' : null,
imageEditor: _objectSpread(_objectSpread({}, state.imageEditor), {}, {
file: value,
mode: payload.mode || IMAGE_EDITOR_MODES.DEFAULT,
showBackButton: (_payload$showBackButt = payload.showBackButton) !== null && _payload$showBackButt !== void 0 ? _payload$showBackButt : 'auto',
hideSavingOptions: (_payload$hideSavingOp = payload.hideSavingOptions) !== null && _payload$hideSavingOp !== void 0 ? _payload$hideSavingOp : false
})
});
},
mainMenuUpdated: function mainMenuUpdated(state, action) {
var _action$payload$opene, _action$payload$colla;
return _objectSpread(_objectSpread({}, state), {}, {
mainMenu: {
opened: (_action$payload$opene = action.payload.opened) !== null && _action$payload$opene !== void 0 ? _action$payload$opene : state.mainMenu.opened,
collapsed: (_action$payload$colla = action.payload.collapsed) !== null && _action$payload$colla !== void 0 ? _action$payload$colla : state.mainMenu.collapsed
}
});
},
collectionModalOpened: function collectionModalOpened(state, action) {
var _action$payload$show2, _action$payload11, _action$payload12, _action$payload13;
var show = (_action$payload$show2 = (_action$payload11 = action.payload) === null || _action$payload11 === void 0 ? void 0 : _action$payload11.show) !== null && _action$payload$show2 !== void 0 ? _action$payload$show2 : action.payload;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload12 = action.payload) === null || _action$payload12 === void 0 ? void 0 : _action$payload12.closeOthers)), {}, {
showCollectionModal: show,
collectionToEdit: ((_action$payload13 = action.payload) === null || _action$payload13 === void 0 ? void 0 : _action$payload13.collectionToEdit) || null,
previewCollection: null,
createPreviewCollection: false,
activeOverlayType: show ? 'CollectionModal' : null
});
},
bulkEditPanelOpened: function bulkEditPanelOpened(state, action) {
var _action$payload14;
var value = getPanelForOrNull(action.payload);
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload14 = action.payload) === null || _action$payload14 === void 0 ? void 0 : _action$payload14.closeOthers)), {}, {
bulkEditPanelFor: value,
activeOverlayType: value ? 'BulkEditPanel' : null
});
},
previewCollectionPanelOpened: function previewCollectionPanelOpened(state, action) {
var _payload$show;
var payload = action.payload || {};
var show = (_payload$show = payload.show) !== null && _payload$show !== void 0 ? _payload$show : payload;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, payload.closeOthers)), {}, {
showPreviewCollectionPanel: show,
previewCollection: payload.previewCollection,
createPreviewCollection: payload.createPreviewCollection,
activeOverlayType: show ? 'PreviewCollectionPanel' : null
});
},
cropPanelFileSet: function cropPanelFileSet(state, action) {
var _action$payload15;
var value = action.payload;
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload15 = action.payload) === null || _action$payload15 === void 0 ? void 0 : _action$payload15.closeOthers)), {}, {
cropPanelFile: action.payload,
activeOverlayType: value ? 'CropPanel' : null
});
},
uploadsPanelOpened: function uploadsPanelOpened(state, action) {
var _action$payload$show3, _action$payload16, _action$payload17;
var show = (_action$payload$show3 = (_action$payload16 = action.payload) === null || _action$payload16 === void 0 ? void 0 : _action$payload16.show) !== null && _action$payload$show3 !== void 0 ? _action$payload$show3 : action.payload;
if (show === state.showUploadsPanel) {
return state;
}
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload17 = action.payload) === null || _action$payload17 === void 0 ? void 0 : _action$payload17.closeOthers)), {}, {
showUploadsPanel: show,
activeOverlayType: show ? 'UploadsPanel' : null
});
},
pdfFilePreviewOpened: function pdfFilePreviewOpened(state, action) {
var _action$payload18;
var value = getPanelForOrNull(action.payload);
return _objectSpread(_objectSpread({}, keepCurrOrCloseOtherPanels(state, (_action$payload18 = action.payload) === null || _action$payload18 === void 0 ? void 0 : _action$payload18.closeOthers)), {}, {
pdfFilePreviewFor: value,
activeOverlayType: value ? 'PdfFilePreview' : null,
hideActionBar: Boolean(value)
});
},
actionBarHid: function actionBarHid(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
hideActionBar: true
});
},
detailsViewToggled: function detailsViewToggled(state, action) {
var _action$payload19;
return _objectSpread(_objectSpread({}, state), {}, {
showDetailsView: (_action$payload19 = action.payload) !== null && _action$payload19 !== void 0 ? _action$payload19 : !state.showDetailsView
});
},
allPanelsClosed: function allPanelsClosed(state) {
// As long as initialState is already set to the default values (no panels opened), then we can just return it.
// If for any reason we changed the initialState to some auto opened panel, then we should override it to consider closing it.
return initialState;
},
setActionBarZIndex: function setActionBarZIndex(state, action) {
return _objectSpread(_objectSpread({}, state), {}, {
actionBarZIndex: action.payload || ACTION_BAR_DEFAULT_Z_INDEX
});
}
},
extraReducers: function extraReducers(builder) {
builder.addCase(uploadsAdded.type, function (state, action) {
var _action$payload20;
if (!((_action$payload20 = action.payload) !== null && _action$payload20 !== void 0 && _action$payload20.length)) {
return state;
}
return _objectSpread(_objectSpread({}, panelsSlice.caseReducers.uploadsPanelOpened(state, _objectSpread(_objectSpread({}, action), {}, {
payload: {
show: true,
closeOthers: true
}
}))), {}, {
showAddFilesPanel: false,
pickerPanel: null
});
}).addCase(allUploadsCancelled.type, function (state, action) {
return _objectSpread(_objectSpread({}, panelsSlice.caseReducers.uploadsPanelOpened(state, _objectSpread(_objectSpread({}, action), {}, {
payload: false
}))), {}, {
fileWindow: initialState.fileWindow
});
}).addCase(progressPanelFilesAdded.type, function (state, action) {
return _objectSpread(_objectSpread({}, panelsSlice.caseReducers.uploadsPanelOpened(state, _objectSpread(_objectSpread({}, action), {}, {
payload: false
}))), {}, {
fileWindow: initialState.fileWindow
});
}).addCase(viewChanged.type, function () {
return initialState;
}).addCase(renameFolder.fulfilled, function (state) {
return panelsSlice.caseReducers.itemRenameOpened(state, {
payload: null
});
}).addCase(searchSuggestionsUpdated.type, function (state) {
return panelsSlice.caseReducers.fileWindowUpdated(state, {
payload: null
});
});
}
});
var _panelsSlice$actions = panelsSlice.actions,
pickerPanelUpdated = _panelsSlice$actions.pickerPanelUpdated,
activeOverlayTypeUpdated = _panelsSlice$actions.activeOverlayTypeUpdated,
fileWindowUpdated = _panelsSlice$actions.fileWindowUpdated,
showFileEditorUpdated = _panelsSlice$actions.showFileEditorUpdated,
sharePanelOpened = _panelsSlice$actions.sharePanelOpened,
showAddFilesPanelUpdated = _panelsSlice$actions.showAddFilesPanelUpdated,
collectionModalOpened = _panelsSlice$actions.collectionModalOpened,
bulkEditPanelOpened = _panelsSlice$actions.bulkEditPanelOpened,
previewCollectionPanelOpened = _panelsSlice$actions.previewCollectionPanelOpened,
cropPanelFileSet = _panelsSlice$actions.cropPanelFileSet,
allPanelsClosed = _panelsSlice$actions.allPanelsClosed,
itemRenameOpened = _panelsSlice$actions.itemRenameOpened,
imageEditorOpened = _panelsSlice$actions.imageEditorOpened,
foldersAfterSharePanelOpened = _panelsSlice$actions.foldersAfterSharePanelOpened,
uploadsPanelOpened = _panelsSlice$actions.uploadsPanelOpened,
pdfFilePreviewOpened = _panelsSlice$actions.pdfFilePreviewOpened,
actionBarHid = _panelsSlice$actions.actionBarHid,
mainMenuUpdated = _panelsSlice$actions.mainMenuUpdated,
detailsViewToggled = _panelsSlice$actions.detailsViewToggled,
setActionBarZIndex = _panelsSlice$actions.setActionBarZIndex,
minimizedUploadPanelUpdated = _panelsSlice$actions.minimizedUploadPanelUpdated;
export { pickerPanelUpdated, activeOverlayTypeUpdated, fileWindowUpdated, showFileEditorUpdated, sharePanelOpened, showAddFilesPanelUpdated, collectionModalOpened, bulkEditPanelOpened, previewCollectionPanelOpened, cropPanelFileSet, allPanelsClosed, itemRenameOpened, imageEditorOpened, foldersAfterSharePanelOpened, uploadsPanelOpened, pdfFilePreviewOpened, actionBarHid, mainMenuUpdated, detailsViewToggled, setActionBarZIndex, minimizedUploadPanelUpdated };
export var selectAllPanels = function selectAllPanels(state) {
return state[PLUGINS_IDS.EXPLORER][slicePropName];
};
export var selectActivePickerPanel = function selectActivePickerPanel(state) {
return selectAllPanels(state).pickerPanel;
};
export var selectActiveOverlayType = function selectActiveOverlayType(state) {
return selectAllPanels(state).activeOverlayType;
};
export var selectFileWindow = function selectFileWindow(state) {
return selectAllPanels(state).fileWindow;
};
export var selectFileWindowFor = function selectFileWindowFor(state) {
return selectFileWindow(state)["for"];
};
export var selectFileWindowTabId = function selectFileWindowTabId(state) {
return selectFileWindow(state).tabId;
};
export var selectImageEditor = function selectImageEditor(state) {
return selectAllPanels(state).imageEditor;
};
export var selectImageEditorFile = function selectImageEditorFile(state) {
return selectImageEditor(state).file;
};
export var selectSharePanelFor = function selectSharePanelFor(state) {
return selectAllPanels(state).sharePanelFor;
};
export var selectCollectionToEdit = function selectCollectionToEdit(state) {
return selectAllPanels(state).collectionToEdit;
};
export var selectShowBulkEditPanelFor = function selectShowBulkEditPanelFor(state) {
return selectAllPanels(state).bulkEditPanelFor;
};
export var selectShowPreviewCollectionPanel = function selectShowPreviewCollectionPanel(state) {
return selectAllPanels(state).showPreviewCollectionPanel;
};
export var selectCropPanelFile = function selectCropPanelFile(state) {
return selectAllPanels(state).cropPanelFile;
};
export var selectRenameItemFor = function selectRenameItemFor(state) {
return selectAllPanels(state).renameItem["for"];
};
export var selectIsRenameItemFromSidebar = function selectIsRenameItemFromSidebar(state) {
return selectAllPanels(state).renameItem.fromSidebar;
};
export var selectShowAddFilesPanel = function selectShowAddFilesPanel(state) {
return selectAllPanels(state).showAddFilesPanel;
};
export var selectSharedFoldersUrl = function selectSharedFoldersUrl(state) {
return selectAllPanels(state).sharedFoldersUrl;
};
export var selectCreatePreviewCollection = function selectCreatePreviewCollection(state) {
return selectAllPanels(state).createPreviewCollection;
};
export var selectPreviewCollection = function selectPreviewCollection(state) {
return selectAllPanels(state).previewCollection;
};
export var selectShowCollectionModal = function selectShowCollectionModal(state) {
return selectAllPanels(state).showCollectionModal;
};
export var selectIsUploadsPanelOpened = function selectIsUploadsPanelOpened(state) {
return selectUploadsCount(state) > 0 && selectAllPanels(state).showUploadsPanel;
};
export var selectShowPdfFilePreviewFor = function selectShowPdfFilePreviewFor(state) {
return selectAllPanels(state).pdfFilePreviewFor;
};
export var selectIsActionBarHidden = function selectIsActionBarHidden(state) {
return selectAllPanels(state).hideActionBar;
};
export var selectIsMainMenuOpened = function selectIsMainMenuOpened(state) {
return selectAllPanels(state).mainMenu.opened;
};
export var selectIsMainMenuCollapsed = function selectIsMainMenuCollapsed(state) {
return selectAllPanels(state).mainMenu.collapsed;
};
export var selectIsDetailsViewOpened = function selectIsDetailsViewOpened(state) {
return selectAllPanels(state).showDetailsView;
};
export var selectActionBarZIndex = function selectActionBarZIndex(state) {
return selectAllPanels(state).actionBarZIndex;
};
export var selectIsMinimizedUploadPanel = function selectIsMinimizedUploadPanel(state) {
return selectAllPanels(state).minimizedUploadPanel;
};
export default panelsSlice.reducer;