delete unnecessary refetch and add a new component for the list filters

This commit is contained in:
2025-01-13 22:01:17 +01:00
parent 2cfbc92d19
commit 3b28d6d467
3 changed files with 21 additions and 21 deletions

View File

@@ -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);
}}
/>
);
};

View File

@@ -1 +1,2 @@
export { ArrayField } from "./array-field.tsx"; export { ArrayField } from "./array-field.tsx";
export { FilterName } from './filter-name.tsx';

View File

@@ -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);
}}
/>
);
};