Filters ml (#11028)

This commit is contained in:
Marvin Frachet 2021-09-22 14:48:54 +02:00 committed by GitHub
parent 38d1a5582e
commit 8f74fcd520
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 80 additions and 16 deletions

View File

@ -69,7 +69,7 @@ const Relation = ({ fieldSchema, metadatas, queryInfos, name, rowId, value }) =>
icon={<SortIcon isUp={visible} />}
/>
{visible && (
<Popover source={buttonRef} spacingTop={4} centered>
<Popover source={buttonRef} spacing={16} centered>
<PopoverContent
queryInfos={queryInfos}
name={name}

View File

@ -104,7 +104,7 @@
"react-helmet": "^6.1.0",
"react-intl": "5.20.2",
"react-loadable": "^5.5.0",
"react-query": "3.19.0",
"react-query": "3.24.3",
"react-redux": "7.2.3",
"react-router": "5.2.0",
"react-router-dom": "5.2.0",

View File

@ -12,15 +12,17 @@ export const useAssets = ({ skipWhen }) => {
const [{ rawQuery, query }, setQuery] = useQueryParams();
const dataRequestURL = getRequestUrl('files');
const { data, error, isLoading } = useQuery(
'assets',
async () => {
const { data } = await axiosInstance.get(`${dataRequestURL}${rawQuery}`);
const getAssets = async () => {
const { data } = await axiosInstance.get(`${dataRequestURL}${rawQuery}`);
return data;
},
{ enabled: !skipWhen }
);
return data;
};
const { data, error, isLoading } = useQuery(`assets`, getAssets, {
enabled: !skipWhen,
staleTime: 0,
cacheTime: 0,
});
useEffect(() => {
if (!query) {

View File

@ -0,0 +1,61 @@
import React, { useState, useRef } from 'react';
import { Button } from '@strapi/parts/Button';
import { FilterPopoverURLQuery } from '@strapi/helper-plugin';
import FilterIcon from '@strapi/icons/FilterIcon';
import { useIntl } from 'react-intl';
const displayedFilters = [
{
name: 'created_at',
fieldSchema: {
type: 'date',
},
metadatas: { label: 'created_at' },
},
{
name: 'updated_at',
fieldSchema: {
type: 'date',
},
metadatas: { label: 'updated_at' },
},
{
name: 'type',
fieldSchema: {
type: 'enumeration',
options: ['image', 'video', 'file'],
},
metadatas: { label: 'type' },
},
];
export const Filters = () => {
const buttonRef = useRef(null);
const [isVisible, setVisible] = useState(false);
const { formatMessage } = useIntl();
const toggleFilter = () => setVisible(prev => !prev);
return (
<>
<Button
variant="tertiary"
ref={buttonRef}
startIcon={<FilterIcon />}
onClick={toggleFilter}
size="S"
>
{formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}
</Button>
{isVisible && (
<FilterPopoverURLQuery
displayedFilters={displayedFilters}
isVisible={isVisible}
onToggle={toggleFilter}
source={buttonRef}
/>
)}
</>
);
};

View File

@ -22,6 +22,7 @@ import { ListView } from './components/ListView';
import { useAssets } from '../../hooks/useAssets';
import { getTrad } from '../../utils';
import pluginPermissions from '../../permissions';
import { Filters } from './components/Filters';
const BoxWithHeight = styled(Box)`
height: ${32 / 16}rem;
@ -94,7 +95,7 @@ const App = () => {
})}
/>
</BoxWithHeight>
<Button variant="tertiary">Filter</Button>
<Filters />
</>
}
endActions={

View File

@ -88,7 +88,7 @@ const LocaleListCell = ({ localizations, locale: currentLocaleCode, id }) => {
icon={<SortIcon />}
/>
{visible && (
<Popover source={buttonRef} spacingTop={4} centered>
<Popover source={buttonRef} spacing={16} centered>
<ul>
{localesArray.map(name => (
<Box key={name} padding={3} as="li">

View File

@ -20159,10 +20159,10 @@ react-portal@^4.2.0:
dependencies:
prop-types "^15.5.8"
react-query@3.19.0:
version "3.19.0"
resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.19.0.tgz#e1fe8f62b9956fb2986317686c27f79ad7ee4e7e"
integrity sha512-AaerSVsmBG2iIciwX2x8cWZS4Htw/4u2GFTYK8oiicpX3PY5mvat/8/Y3wZhM47KlllAzvC+P9MW81oHuEt2wg==
react-query@3.24.3:
version "3.24.3"
resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.24.3.tgz#58c538fb55386fa947bda88acbe616e02cb5b2bb"
integrity sha512-JipKpn7XoDVvRWwXWXKSJU5SbNJKqspx9IRBntaQt1EQOBXe9314Z/8cV9YXXbZIhzrHAetT3X7tRClZaYk98g==
dependencies:
"@babel/runtime" "^7.5.5"
broadcast-channel "^3.4.1"