Files
pole-book/server/node_modules/@strapi/upload/dist/admin/hooks/useModalQueryParams.js

139 lines
3.9 KiB
JavaScript

'use strict';
var React = require('react');
var strapiAdmin = require('@strapi/admin/strapi-admin');
var qs = require('qs');
var useConfig = require('./useConfig.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
const useModalQueryParams = (initialState)=>{
const { trackUsage } = strapiAdmin.useTracking();
const { config: { data: config } } = useConfig.useConfig();
const [queryObject, setQueryObject] = React__namespace.useState({
page: 1,
sort: 'updatedAt:DESC',
pageSize: 10,
filters: {
$and: []
},
...initialState
});
React__namespace.useEffect(()=>{
if (config && 'sort' in config && 'pageSize' in config) {
setQueryObject((prevQuery)=>({
...prevQuery,
sort: config.sort,
pageSize: config.pageSize
}));
}
}, [
config
]);
const handleChangeFilters = (nextFilters)=>{
if (nextFilters) {
trackUsage('didFilterMediaLibraryElements', {
location: 'content-manager',
filter: Object.keys(nextFilters[nextFilters.length - 1])[0]
});
setQueryObject((prev)=>({
...prev,
page: 1,
filters: {
$and: nextFilters
}
}));
}
};
const handleChangePageSize = (pageSize)=>{
setQueryObject((prev)=>({
...prev,
pageSize: typeof pageSize === 'string' ? parseInt(pageSize, 10) : pageSize,
page: 1
}));
};
const handeChangePage = (page)=>{
setQueryObject((prev)=>({
...prev,
page
}));
};
const handleChangeSort = (sort)=>{
if (sort) {
trackUsage('didSortMediaLibraryElements', {
location: 'content-manager',
sort
});
setQueryObject((prev)=>({
...prev,
sort
}));
}
};
const handleChangeSearch = (_q)=>{
if (_q) {
setQueryObject((prev)=>({
...prev,
_q,
page: 1
}));
} else {
const newState = {
page: 1
};
Object.keys(queryObject).forEach((key)=>{
if (![
'page',
'_q'
].includes(key)) {
newState[key] = queryObject[key];
}
});
setQueryObject(newState);
}
};
const handleChangeFolder = (folder, folderPath)=>{
setQueryObject((prev)=>({
...prev,
folder: folder ?? null,
folderPath
}));
};
return [
{
queryObject,
rawQuery: qs.stringify(queryObject, {
encode: false
})
},
{
onChangeFilters: handleChangeFilters,
onChangeFolder: handleChangeFolder,
onChangePage: handeChangePage,
onChangePageSize: handleChangePageSize,
onChangeSort: handleChangeSort,
onChangeSearch: handleChangeSearch
}
];
};
exports.useModalQueryParams = useModalQueryParams;
//# sourceMappingURL=useModalQueryParams.js.map