delete unnecessary refetch and add a new component for the list filters
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { TextField } from '@mui/material';
|
||||||
|
|
||||||
|
interface FilterNameProps {
|
||||||
|
setFirstName: (firstName: string) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const FilterName: FC<FilterNameProps> = ({ setFirstName }) => {
|
||||||
|
return (
|
||||||
|
<TextField
|
||||||
|
label="First name"
|
||||||
|
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
|
||||||
|
setFirstName(event.target.value);
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
@@ -1 +1,2 @@
|
|||||||
export { ArrayField } from "./array-field.tsx";
|
export { ArrayField } from "./array-field.tsx";
|
||||||
|
export { FilterName } from './filter-name.tsx';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import React, { Fragment, useEffect, useState } from "react";
|
import React, { Fragment, useState } from "react";
|
||||||
import {
|
import {
|
||||||
BooleanField,
|
BooleanField,
|
||||||
Datagrid,
|
Datagrid,
|
||||||
@@ -13,15 +13,14 @@ import {
|
|||||||
WrapperField,
|
WrapperField,
|
||||||
} from "react-admin";
|
} from "react-admin";
|
||||||
import { useQuery } from "@tanstack/react-query";
|
import { useQuery } from "@tanstack/react-query";
|
||||||
import { ArrayField } from "./components";
|
import { ArrayField, FilterName } from "@admin";
|
||||||
import { TextField as MuiTextField } from "@mui/material";
|
|
||||||
|
|
||||||
export const PersonList = () => {
|
export const PersonList = () => {
|
||||||
const [page, setPage] = useState(1);
|
const [page, setPage] = useState(1);
|
||||||
const [perPage, setPerPage] = useState(25);
|
const [perPage, setPerPage] = useState(25);
|
||||||
const [firstName, setFirstName] = useState("");
|
const [firstName, setFirstName] = useState("");
|
||||||
const dataProvider = useDataProvider();
|
const dataProvider = useDataProvider();
|
||||||
const { data, isPending, refetch } = useQuery({
|
const { data, isPending } = useQuery({
|
||||||
queryKey: ["personList", page, perPage, firstName],
|
queryKey: ["personList", page, perPage, firstName],
|
||||||
queryFn: () => {
|
queryFn: () => {
|
||||||
const httpParams = new URLSearchParams({
|
const httpParams = new URLSearchParams({
|
||||||
@@ -36,12 +35,6 @@ export const PersonList = () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
(async () => {
|
|
||||||
await refetch();
|
|
||||||
})();
|
|
||||||
}, [page, perPage]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<Title title="Users" />
|
<Title title="Users" />
|
||||||
@@ -90,14 +83,3 @@ export const PersonList = () => {
|
|||||||
</Fragment>
|
</Fragment>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const FilterName = ({ setFirstName }) => {
|
|
||||||
return (
|
|
||||||
<MuiTextField
|
|
||||||
label="First name"
|
|
||||||
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
|
|
||||||
setFirstName(event.target.value);
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|||||||
Reference in New Issue
Block a user