From e3e2dd1243401488bbe909a77dd12e5e603f287f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Thu, 27 Oct 2022 09:25:27 -0300 Subject: [PATCH 1/7] Improve display on dataProvider error --- packages/ra-ui-materialui/src/list/ListView.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/ra-ui-materialui/src/list/ListView.tsx b/packages/ra-ui-materialui/src/list/ListView.tsx index 57269d39519..f8908ca4215 100644 --- a/packages/ra-ui-materialui/src/list/ListView.tsx +++ b/packages/ra-ui-materialui/src/list/ListView.tsx @@ -9,7 +9,7 @@ import { ComponentPropType, useListContext, RaRecord } from 'ra-core'; import { Title, TitlePropType } from '../layout/Title'; import { ListToolbar } from './ListToolbar'; -import { Pagination as DefaultPagination } from './pagination'; +import { Pagination as DefaultPagination, PaginationLimit } from './pagination'; import { ListActions as DefaultActions } from './ListActions'; import { Empty } from './Empty'; @@ -50,10 +50,6 @@ export const ListView = ( return null; } - if (error) { - return null; - } - const renderList = () => (
{(filters || actions) && ( @@ -70,7 +66,7 @@ export const ListView = ( }) : children} - {pagination !== false && pagination} + {error ? : pagination !== false && pagination}
); From 47515af25e72c93e68dab9891fd60764db99e10d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Thu, 27 Oct 2022 09:45:46 -0300 Subject: [PATCH 2/7] Ad test --- .../ra-ui-materialui/src/list/List.spec.tsx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/ra-ui-materialui/src/list/List.spec.tsx b/packages/ra-ui-materialui/src/list/List.spec.tsx index edd30d8dd01..8d4ad74ed98 100644 --- a/packages/ra-ui-materialui/src/list/List.spec.tsx +++ b/packages/ra-ui-materialui/src/list/List.spec.tsx @@ -207,4 +207,26 @@ describe('', () => { ).toHaveLength(1); }); }); + + it('should render a list page with a no results found message when there is an error', async () => { + jest.spyOn(console, 'error').mockImplementation(() => {}); + const Datagrid = () =>
datagrid
; + const dataProvider = { + getList: jest.fn(() => + Promise.reject({ error: { key: 'error.unknown' } }) + ), + } as any; + render( + + + + + + + + ); + await waitFor(() => { + expect(screen.getByText('ra.navigation.no_results')).not.toBeNull(); + }); + }); }); From 0b061fd445aaf0649a794aba4650c9878f8b8138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Thu, 27 Oct 2022 10:24:20 -0300 Subject: [PATCH 3/7] Change displayed message on error --- .../ra-ui-materialui/src/list/List.spec.tsx | 4 ++- .../ra-ui-materialui/src/list/ListView.tsx | 6 ++++- .../src/list/pagination/PaginationLimit.tsx | 25 +++++++++++-------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/packages/ra-ui-materialui/src/list/List.spec.tsx b/packages/ra-ui-materialui/src/list/List.spec.tsx index 8d4ad74ed98..682def164a5 100644 --- a/packages/ra-ui-materialui/src/list/List.spec.tsx +++ b/packages/ra-ui-materialui/src/list/List.spec.tsx @@ -226,7 +226,9 @@ describe('', () => { ); await waitFor(() => { - expect(screen.getByText('ra.navigation.no_results')).not.toBeNull(); + expect( + screen.getByText('ra.notification.data_provider_error') + ).not.toBeNull(); }); }); }); diff --git a/packages/ra-ui-materialui/src/list/ListView.tsx b/packages/ra-ui-materialui/src/list/ListView.tsx index f8908ca4215..a761a47e7be 100644 --- a/packages/ra-ui-materialui/src/list/ListView.tsx +++ b/packages/ra-ui-materialui/src/list/ListView.tsx @@ -66,7 +66,11 @@ export const ListView = ( }) : children} - {error ? : pagination !== false && pagination} + {error ? ( + + ) : ( + pagination !== false && pagination + )} ); diff --git a/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx b/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx index 747c7206ead..d89601c8a10 100644 --- a/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx +++ b/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx @@ -4,13 +4,18 @@ import CardContent from '@mui/material/CardContent'; import Typography from '@mui/material/Typography'; import { useTranslate } from 'ra-core'; -export const PaginationLimit = memo(() => { - const translate = useTranslate(); - return ( - - - {translate('ra.navigation.no_results')} - - - ); -}); +export const PaginationLimit = memo( + ({ message = 'ra.navigation.no_results' }: PaginationLimitProps) => { + const translate = useTranslate(); + + return ( + + {translate(message)} + + ); + } +); + +export interface PaginationLimitProps { + message?: string; +} From 978b90f464f56f27427581cc4cf65caa01661b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Thu, 27 Oct 2022 11:03:45 -0300 Subject: [PATCH 4/7] Update test description --- packages/ra-ui-materialui/src/list/List.spec.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ra-ui-materialui/src/list/List.spec.tsx b/packages/ra-ui-materialui/src/list/List.spec.tsx index 682def164a5..3f282fc3c70 100644 --- a/packages/ra-ui-materialui/src/list/List.spec.tsx +++ b/packages/ra-ui-materialui/src/list/List.spec.tsx @@ -208,7 +208,7 @@ describe('', () => { }); }); - it('should render a list page with a no results found message when there is an error', async () => { + it('should render a list page with an error message when there is an error', async () => { jest.spyOn(console, 'error').mockImplementation(() => {}); const Datagrid = () =>
datagrid
; const dataProvider = { From ba4e155f8eece534903897b6d5f9c9e60723e40c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Thu, 27 Oct 2022 11:47:12 -0300 Subject: [PATCH 5/7] Improved test --- packages/ra-ui-materialui/src/list/List.spec.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/ra-ui-materialui/src/list/List.spec.tsx b/packages/ra-ui-materialui/src/list/List.spec.tsx index 3f282fc3c70..6c648dc2a42 100644 --- a/packages/ra-ui-materialui/src/list/List.spec.tsx +++ b/packages/ra-ui-materialui/src/list/List.spec.tsx @@ -226,9 +226,7 @@ describe('', () => { ); await waitFor(() => { - expect( - screen.getByText('ra.notification.data_provider_error') - ).not.toBeNull(); + expect(screen.getByText('ra.notification.data_provider_error')); }); }); }); From b4e6c19bfe0d090a3a9092703c4bda28a6c90482 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Fri, 28 Oct 2022 08:07:03 -0300 Subject: [PATCH 6/7] Add Error component --- packages/ra-ui-materialui/src/list/List.spec.tsx | 2 +- packages/ra-ui-materialui/src/list/ListView.tsx | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/ra-ui-materialui/src/list/List.spec.tsx b/packages/ra-ui-materialui/src/list/List.spec.tsx index 6c648dc2a42..4d7fa7d6b1d 100644 --- a/packages/ra-ui-materialui/src/list/List.spec.tsx +++ b/packages/ra-ui-materialui/src/list/List.spec.tsx @@ -226,7 +226,7 @@ describe('', () => { ); await waitFor(() => { - expect(screen.getByText('ra.notification.data_provider_error')); + expect(screen.getByText('ra.page.error')); }); }); }); diff --git a/packages/ra-ui-materialui/src/list/ListView.tsx b/packages/ra-ui-materialui/src/list/ListView.tsx index a761a47e7be..a98bd07e970 100644 --- a/packages/ra-ui-materialui/src/list/ListView.tsx +++ b/packages/ra-ui-materialui/src/list/ListView.tsx @@ -9,9 +9,10 @@ import { ComponentPropType, useListContext, RaRecord } from 'ra-core'; import { Title, TitlePropType } from '../layout/Title'; import { ListToolbar } from './ListToolbar'; -import { Pagination as DefaultPagination, PaginationLimit } from './pagination'; +import { Pagination as DefaultPagination } from './pagination'; import { ListActions as DefaultActions } from './ListActions'; import { Empty } from './Empty'; +import { Error } from '../layout'; const defaultActions = ; const defaultPagination = ; @@ -67,7 +68,7 @@ export const ListView = ( : children} {error ? ( - + ) : ( pagination !== false && pagination )} From 7cccc4abfc9a837cb59eef5825a06e03f24280ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Svarcas?= Date: Fri, 28 Oct 2022 08:10:01 -0300 Subject: [PATCH 7/7] Revert changes in PaginationLimit --- .../src/list/pagination/PaginationLimit.tsx | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx b/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx index d89601c8a10..747c7206ead 100644 --- a/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx +++ b/packages/ra-ui-materialui/src/list/pagination/PaginationLimit.tsx @@ -4,18 +4,13 @@ import CardContent from '@mui/material/CardContent'; import Typography from '@mui/material/Typography'; import { useTranslate } from 'ra-core'; -export const PaginationLimit = memo( - ({ message = 'ra.navigation.no_results' }: PaginationLimitProps) => { - const translate = useTranslate(); - - return ( - - {translate(message)} - - ); - } -); - -export interface PaginationLimitProps { - message?: string; -} +export const PaginationLimit = memo(() => { + const translate = useTranslate(); + return ( + + + {translate('ra.navigation.no_results')} + + + ); +});