Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

ra-data-simple-rest

marmelab78kMIT5.7.3TypeScript support: included

Simple REST data provider for react-admin

readme

Simple REST Data Provider For React-Admin

Simple REST Data Provider for react-admin, the frontend framework for building admin applications on top of REST/GraphQL services.

react-admin-demo

Installation

npm install --save ra-data-simple-rest

Usage

Create a Data Provider by calling the simpleRestProvider function with the API URL as first argument. Then pass this Data Provider to the <Admin> component.

// in src/App.js
import * as React from "react";
import { Admin, Resource } from 'react-admin';
import simpleRestProvider from 'ra-data-simple-rest';

import { PostList } from './posts';

const App = () => (
    <Admin dataProvider={simpleRestProvider('http://my.api.url/')}>
        <Resource name="posts" list={PostList} />
    </Admin>
);

export default App;

The simpleRestProvider function accepts a second parameter, which is an HTTP client function. By default, it uses react-admin's fetchUtils.fetchJson() as HTTP client. It's similar to HTML5 fetch(), except it handles JSON decoding and HTTP error codes automatically.

You can wrap this call in your own function to add custom headers, for instance to set an Authorization bearer token:

import { fetchUtils, Admin, Resource } from 'react-admin';
import simpleRestProvider from 'ra-data-simple-rest';

const httpClient = (url, options = {}) => {
    if (!options.headers) {
        options.headers = new Headers({ Accept: 'application/json' });
    }
    const { token } = JSON.parse(localStorage.getItem('auth'));
    options.headers.set('Authorization', `Bearer ${token}`);
    return fetchUtils.fetchJson(url, options);
};
const dataProvider = simpleRestProvider('http://localhost:3000', httpClient);

const App = () => (
    <Admin dataProvider={dataProvider} authProvider={authProvider}>
        ...
    </Admin>
);

REST Dialect

This Data Provider fits REST APIs using simple GET parameters for filters and sorting. This is the dialect used for instance in FakeRest.

Request Format

Method API calls
getList GET http://my.api.url/posts?sort=["title","ASC"]&range=[0, 24]&filter={"title":"bar"}
getOne GET http://my.api.url/posts/123
getMany GET http://my.api.url/posts?filter={"id":[123,456,789]}
getManyReference GET http://my.api.url/posts?filter={"author_id":345}
create POST http://my.api.url/posts
update PUT http://my.api.url/posts/123
updateMany Multiple calls to PUT http://my.api.url/posts/123
delete DELETE http://my.api.url/posts/123
deleteMany Multiple calls to DELETE http://my.api.url/posts/123

Response Format

An id field is required in all records. You can also set custom identifier or primary key for your resources

The API response when called by getList should look like this:

[
  { "id": 0, "author_id": 0, "title": "Anna Karenina" },
  { "id": 1, "author_id": 0, "title": "War and Peace" },
  { "id": 2, "author_id": 1, "title": "Pride and Prejudice" },
  { "id": 2, "author_id": 1, "title": "Pride and Prejudice" },
  { "id": 3, "author_id": 1, "title": "Sense and Sensibility" }
]

CORS Setup

The simple REST data provider expects the API to include a Content-Range header in the response to getList calls. The value must be the total number of resources in the collection. This allows react-admin to know how many pages of resources there are in total, and build the pagination controls.

Content-Range: posts 0-24/319

If your API is on another domain as the JS code, the browser won't be able to read the Content-Range header unless the server includes CORS headers in the response. So by default, you'll get an error message like this:

Access to fetch at [API_URL] from origin 'http://localhost:3000' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.

To fix this, you need to configure your API server to set the Access-Control-Expose-Headers header to Content-Range in the CORS response.

Access-Control-Expose-Headers: Content-Range

Example Calls

getList

## DataProvider
dataProvider.getList('posts', {
    sort: { field: 'title', order: 'ASC' },
    pagination: { page: 1, perPage: 5 },
    filter: { author_id: 12 }
})

## Request
GET http://my.api.url/posts?sort=["title","ASC"]&range=[0, 4]&filter={"author_id":12}

## Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Range: posts 0-4/27
[
    { "id": 126, "title": "allo?", "author_id": 12 },
    { "id": 127, "title": "bien le bonjour", "author_id": 12 },
    { "id": 124, "title": "good day sunshine", "author_id": 12 },
    { "id": 123, "title": "hello, world", "author_id": 12 },
    { "id": 125, "title": "howdy partner", "author_id": 12 }
]

getOne

## DataProvider
dataProvider.getOne('posts', { id: 123 })

## Request
GET http://my.api.url/posts/123

## Response
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 123, "title": "hello, world", "author_id": 12 }

getMany

## DataProvider
dataProvider.getMany('posts', { ids: [123, 124, 125] })

## Request
GET http://my.api.url/posts?filter={"ids":[123,124,125]}

## Response
HTTP/1.1 200 OK
Content-Type: application/json
[
    { "id": 123, "title": "hello, world", "author_id": 12 },
    { "id": 124, "title": "good day sunshine", "author_id": 12 },
    { "id": 125, "title": "howdy partner", "author_id": 12 }
]

getManyReference

## DataProvider
dataProvider.getManyReference('comments', {
    target: 'post_id',
    id: 12,
    pagination: { page: 1, perPage: 25 },
    sort: { field: 'created_at', order: 'DESC' }
    filter: {}
})

## Request
GET http://my.api.url/comments?sort=["created_at","DESC"]&range=[0, 24]&filter={"post_id":123}

## Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Range: comments 0-1/2
[
    { "id": 667, "title": "I agree", "post_id": 123 },
    { "id": 895, "title": "I don't agree", "post_id": 123 }
]

create

## DataProvider
dataProvider.create('posts', {
    data: { title: "hello, world", author_id: 12 }
})

## Request
POST http://my.api.url/posts
{ "title": "hello, world", "author_id": 12 }

## Response
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 123, "title": "hello, world", "author_id": 12 }

update

## DataProvider
dataProvider.update('posts', {
    id: 123,
    data: { title: "hello, world" },
    previousData: { title: "hello, partner", author_id: 12 }
})

## Request
PUT http://my.api.url/posts/123
{ "title": "hello, world!" }

## Response
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 123, "title": "hello, world!", "author_id": 12 }

updateMany

## DataProvider
dataProvider.updateMany('posts', {
    ids: [123, 124, 125],
    data: { title: "hello, world" },
})

## Request 1
PUT http://my.api.url/posts/123
{ "title": "hello, world!" }

## Response 1
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 123, "title": "hello, world!", "author_id": 12 }

## Request 2
PUT http://my.api.url/posts/124
{ "title": "hello, world!" }

## Response 2
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 124, "title": "hello, world!", "author_id": 12 }

## Request 3
PUT http://my.api.url/posts/125
{ "title": "hello, world!" }

## Response 3
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 125, "title": "hello, world!", "author_id": 12 }

delete

## DataProvider
dataProvider.delete('posts', { id: 123 })

## Request
DELETE http://my.api.url/posts/123

## Response
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 123, "title": "hello, world", "author_id": 12 }

deleteMany

## DataProvider
dataProvider.deleteMany('posts', { ids: [123, 124, 125] })

## Request 1
DELETE http://my.api.url/posts/123

## Response 1
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 123, "title": "hello, world", "author_id": 12 }

## Request 2
DELETE http://my.api.url/posts/124

## Response 2
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 124, "title": "good day sunshine", "author_id": 12 }

## Request 3
DELETE http://my.api.url/posts/125

## Response 3
HTTP/1.1 200 OK
Content-Type: application/json
{ "id": 125, "title": "howdy partner", "author_id": 12 }

Adding Custom Headers

The provider function accepts an HTTP client function as second argument. By default, they use react-admin's fetchUtils.fetchJson() as HTTP client. It's similar to HTML5 fetch(), except it handles JSON decoding and HTTP error codes automatically.

That means that if you need to add custom headers to your requests, you just need to wrap the fetchJson() call inside your own function:

import { fetchUtils, Admin, Resource } from 'react-admin';
import simpleRestProvider from 'ra-data-simple-rest';

const httpClient = (url, options = {}) => {
    if (!options.headers) {
        options.headers = new Headers({ Accept: 'application/json' });
    }
    // add your own headers here
    options.headers.set('X-Custom-Header', 'foobar');
    return fetchUtils.fetchJson(url, options);
};
const dataProvider = simpleRestProvider('http://localhost:3000', httpClient);

render(
    <Admin dataProvider={dataProvider} title="Example Admin">
       ...
    </Admin>,
    document.getElementById('root')
);

Now all the requests to the REST API will contain the X-Custom-Header: foobar header.

Tip: The most common usage of custom headers is for authentication. fetchJson has built-on support for the Authorization token header:

const httpClient = (url, options = {}) => {
    options.user = {
        authenticated: true,
        token: 'SRTRDFVESGNJYTUKTYTHRG'
    };
    return fetchUtils.fetchJson(url, options);
};

Now all the requests to the REST API will contain the Authorization: SRTRDFVESGNJYTUKTYTHRG header.

Enabling Query Cancellation

To enable query cancellation, you need to set the supportAbortSignal property of the data provider to true. This will allow react-admin to cancel queries when the user navigates away from a view before the query is completed.

const dataProvider = simpleRestProvider('https://myapi.com');
dataProvider.supportAbortSignal = true;

Replacing Content-Range With Another Header

An infrastructure using a Varnish may use, modify or delete the Content-Range header.

The solution is to use another HTTP header to return the number of collection's items. The other header commonly used for this is X-Total-Count. So if you use X-Total-Count, you will have to :

  • Whitelist this header with an Access-Control-Expose-Headers CORS header.
Access-Control-Expose-Headers: X-Total-Count
  • Use the third parameter of simpleRestProvider to specify the name of the header to use:
// in src/App.js
import * as React from "react";
import { Admin, Resource } from 'react-admin';
import { fetchUtils } from 'ra-core';
import simpleRestProvider from 'ra-data-simple-rest';

import { PostList } from './posts';

const App = () => (
    <Admin dataProvider={simpleRestProvider('http://my.api.url/', fetchUtils.fetchJson, 'X-Total-Count')}>
        <Resource name="posts" list={PostList} />
    </Admin>
);

export default App;

License

This data provider is licensed under the MIT License, and sponsored by marmelab.

changelog

Changelog

5.7.3

  • Fix <ShowGuesser> print incorrect code for reference arrays (#10682) (djhi)
  • Fix <RichTextField> should render emptyText when value is an empty string (#10670) (slax57)
  • Fix TS error when using EditGuesser in module's default export (#10669) (slax57)
  • Fix useInput default value overrides null (#10665) (djhi)
  • [Doc] Fix useNotify custom notification with close example (#10683) (djhi)
  • [doc] Add AutoPersistInStore doc page (#10681) (erwanMarmelab)
  • [Doc] Fix docs anchors (#10675) (WiXSL)
  • [Doc] Fix Dialog Forms examples regarding hasCreate (#10671) (slax57)
  • [Doc] Explain how React admin handles empty values (#10666) (djhi)
  • [Doc] Update NextJS integration (#10664) (djhi)
  • [Doc] Document how to setup Remix for production debugging (#10663) (djhi)
  • [Demo] Use Echarts instead of rechart (#10677) (fzaninotto)
  • [Demo] Fix order chart currency (#10668) (fzaninotto)
  • Bump vite from 5.4.16 to 5.4.17 (#10659) (dependabot[bot])

5.7.2

5.7.1

5.7.0

5.6.4

  • Improve compatibility with some package managers (#10599) (djhi)
  • Fix SimpleFormIterator does not display some components correctly (#10606) (djhi)
  • Fix <AutcompleteInput>, <DateInput> and <DateTimeInput> aren't focused when adding a new item in a <ArrayInput> (#10582) (djhi)
  • Fix useDataProvider should only log errors in development mode (#10515) (vytautassvirskas)
  • [Doc] Add kanban board demo (#10604) (djhi)
  • [Doc] Add strapi v5 data provider (#10593) (fzaninotto)
  • [Doc] upgrade multilevelmenu doc (#10590) (erwanMarmelab)
  • [Doc] Add a screenshot to the Tree doc page (#10600) (erwanMarmelab)
  • [Doc] Fix ra-i18n-next documentation by using correct function name convertRaTranslationsToI18next (#10588) (guilbill)
  • [Doc] Fix ra-18n-polyglot documentation (#10587) (guilbill)
  • [Doc] Add <EditInDialogButton emptyWhileLoading> prop documentation (#10586) (guilbill)
  • [Doc] Add documentation for <AutoSave disableWarnWhenUnsavedChanges> (#10585) (guilbill)
  • [Doc] Fix typo in ShowDialog doc (#10583) (erwanMarmelab)
  • [chore] Fix incorrect description for build-crm in Makefile (#10603) (ghadabezine)
  • [chore] Fix <SimpleListConfigurable> story (#10592) (erwanMarmelab)
  • [chore] Fix <SelectAllButton> limit story (#10589) (guilbill)
  • [chore] Fix release script add wrong minor in documentation versions list (#10584) (djhi)
  • [chore] Automatically update create-react-admin templates when releasing a new minor version (#10581) (djhi)
  • [chore] Add the tag message in release script (#10578) (djhi)
  • Bump axios from 1.7.4 to 1.8.2 (#10577) (dependabot[bot])

5.6.3

  • Fix create-react-admin should correctly generate data.json for fakerest (#10573) (djhi)
  • Fix useRedirect might include two slashes in the final pathname (#10572) (djhi)
  • Fix helperText has wrong height when passing an empty string (#10571) (djhi)
  • Fix offline user experience (#10555) (slax57)
  • [Doc] Add Todo app to the list of demos (#10568) (fzaninotto)
  • [Doc] Rewrite create-react-admin documentation (#10566) (erwanMarmelab)
  • [Doc] Add Vycanis Modeler to ecosystem page (#10565) (alberteije)
  • [Doc] Backport ra-tree v10 doc (#10563) (erwanMarmelab)
  • [Doc] Document how to return Date object with <DateTimeInput> (#10561) (slax57)
  • [Doc] Improve AutoSave and useAutoSave (#10558) (erwanMarmelab)
  • [Typescript] Update Error component to accept sx prop (#10559) (smeng9)
  • [TypeScript] Remove usage of JSX.Element (#10553) (djhi)
  • [chore] Skip pushing the documentation changes in release script when in dry mode (#10576) (djhi)
  • [chore] Improve release script by automating documentation update (#10575) (djhi)
  • [chore] Improve release script by automating enterprise packages tests (#10574) (djhi)

5.6.2

  • Make <TabbedForm tabs> use the onChange prop (#10549) (erwanMarmelab)
  • Fix B&W theme buttons in dark mode (#10557) (fzaninotto)
  • Fix create-react-admin generated package.json when using yarn (#10556) (djhi)
  • Fix collapsed menu in B&W theme (#10542) (fzaninotto)
  • [Doc] Update <MarkdownInput> doc to address vulnerability in dompurify (#10554) (slax57)
  • [Doc] Update <ReferenceManyInput> documentation to mention it cannot reorder its items (#10551) (djhi)
  • [Doc] Improve <FormFillerButton> documentation by explaining the dataProvider.getCompletion() (#10550) (djhi)
  • [Doc] Create a ShowDialog doc (#10548) (erwanMarmelab)
  • [Doc] Document useSourceContext and improve useSimpleFormIteratorItem documentation (#10547) (slax57)
  • [Doc] Fix <ReferenceInput enableGetChoices> example (#10543) (slax57)
  • [chore] Fix release script does not include the changelog in the tag (#10544) (slax57)

5.6.1

  • Fix create-react-admin package manager detection (#10534) (djhi)
  • Fix create-react-admin does not ignore auth-provider when specified and using supabase (#10533) (djhi)
  • Fix <NumberInput> and <AutocompleteInput> do not forward the event when calling onBlur (#9730) (yanchesky)
  • [Doc] Fix dialogs title doc (#10536) (erwanMarmelab)
  • [Doc] Fix <DatagridAGClient> access control's doc (#10535) (erwanMarmelab)
  • [Doc] Promote composition with <ListLiveUpdate> instead of <ListLive> (#10531) (djhi)
  • [Doc] Fix some videos do not play in Firefox for MacOS users (#10524) (erwanMarmelab)

5.6.0

5.5.4

5.5.3

5.5.2

5.5.1

  • Fix TabbedForm and TabbedShowLayout with react-router v7 (#10469) (slax57)
  • Simplify ra-data-local-forage setup (#10455) (djhi)
  • [Doc] Document how to have sourcemaps in production (#10466) (djhi)
  • [Doc] Impove scrollToTop in buttons doc and document _scrollToTop in useRedirect (#10449) (erwanMarmelab)
  • [Doc] Document live filtering with ReferenceManyField and ReferenceManyToManyField (#10467) (erwanMarmelab)
  • [Doc] Fix the <ReferenceManyToManyInput mutationOption={{onError}}> doc (#10462) (erwanMarmelab)
  • [Doc] Fix link to Spanish translation package (#10457) (adrien-may)
  • [Doc] Udate MultiLevelMenu screenshot (#10468) (erwanMarmelab)
  • [Demo] Simplify demo titles (#10461) (djhi)
  • [Demo] Fix UI glitches due to multiple conflicting MUI packages (#10464) (djhi)
  • [Tutorial] Fix tutorial has multiple conflicting MUI packages (#10465) (djhi)

5.5.0

  • Add support for React router v7 (#10440) (djhi)
  • Add support for MUI v6 (#10439) (djhi)
  • Add support for React 19 (#10437) (djhi)
  • Add a SELECT ALL button in the <BulkActionsToolbar> (#10367) (erwanMarmelab)
  • Add <TextArrayInput> to edit arrays of strings (#10384) (fzaninotto)
  • Allow record override from location everywhere (#10412) (djhi)
  • Introduce <SimpleList rowClick> (#10385) (djhi)
  • Allow graphql dataProviders to leverage the introspection results (#10444) (djhi)
  • Fix <Authenticated> briefly renders its children when checkAuth returns error (#10443) (adrien-may)
  • Fix useDelete does not invalidate cache in pessimistic mode (#10446) (fzaninotto)
  • Hide react-router deprecation warnings in react-admin default router
  • Revert #10417 as it causes issues with <StackedFilters>
  • [TypeScript] Allow providing error type in dataProvider and controllers hooks (#10445) (djhi)
  • [Doc] Add vitest tutorial (#10453) (smeng9)
  • [Doc] Remove mention of obsolete time input community package (#10451) (erwanMarmelab)
  • [Doc] Fix DateInput, TimeInput, and DateTimeInput documentation (#10447) (erwanMarmelab)
  • [Doc] Explain openOnFocus in <AutocompleteInput> with StrictMode (#10442) (djhi)
  • [Demo] Adjust Nano theme for better legibility (#10433) (fzaninotto)

5.4.4

  • Fix useUpdate ignores meta when populating the query cache in pessimistic mode (#10422) (slax57)
  • Fix <ArrayInput> makes the form dirty in strict mode (#10421) (djhi)
  • [Doc] Add video to the Getting Started tutorial (#10438) (fzaninotto)
  • [Doc] Fix invalid code example in Writing Your Own Field Component tutorial (#10428) (Aikain)
  • [Doc] Backport ReferenceManyToMany's error support documentation (#10426) (erwanMarmelab)
  • [Chore] Add a check for videos format in CI (#10441) (djhi)
  • [Storybook] Fix <ArrayField> Story (#10436) (djhi)

5.4.3

  • Fix <FormDataConsumer> causes its children to flicker (#10417) (djhi)
  • [Doc] Remove <ShowBase emptyWhileLoading> from the docs (#10416) (slax57)
  • [Doc] Introduce <DatagridAG> custom cell editors (#10410) (djhi)
  • [Doc] Update Access Control instructions following ra-rbac update (#10409) (djhi)
  • [Doc] Fix <TreeWithDetails filter> doc chapter (#10406) (erwanMarmelab)
  • Bump nanoid from 3.3.7 to 3.3.8 (#10414) (dependabot[bot])

5.4.2

  • Fix: Improve AutocompleteInput creation support (#10391) (djhi)
  • Fix useLogin should invalidate the getPermissions cache (#10392) (slax57)
  • Fix <Datagrid> rowClick function cannot expand or select (#10404) (djhi)
  • Fix <FileInput> triggers onChange twice with latest version of react-dropzone (#10402) (slax57)
  • Fix type of disableClearable prop for AutocompleteInput (#10393) (smeng9)
  • [Doc] Backport <ReferenceManyToManyField queryOptions> and <ReferenceManyToManyInput queryOptions mutationOptions> doc (#10403) (erwanMarmelab)
  • [Doc] Fix <DateRangeInput> import syntax (#10399) (erwanMarmelab)
  • [Doc] Introduce <TreeWithDetails filter> prop to render a sub tree (#10398) (djhi)

5.4.1

  • Fix access control basename handling (#10383) (djhi)
  • Fix ReferenceManyField executes filter reset filter too often (#10371) (fzaninotto)
  • [Doc] Add video tutorial to Access Control documentation (#10378) (fzaninotto)
  • [Doc] Fix AutocompleteArrrayInput contains a useless tip (#10373) (erwanMarmelab)
  • [Doc] Update useUpdate doc to explain returnPromise option (#10372) (fzaninotto)
  • [Doc] Fix Supabase (GraphQL) DataProvider link label (#10370) (zackha)
  • [TypeScript] Fix <ReferenceArrayField queryOptions> param type (#10389) (dricholm)
  • [Storybook] Re-enable storysource addon (#10363) (slax57)
  • [Chore] Add a story when TextInput trigger a server error (#10386) (erwanMarmelab)

5.4.0

5.3.4

5.3.3

  • Fix <Datagrid> header tooltip shows column names with a capital letter (#10337) (fzaninotto)
  • Fix <DateInput> and <DateTimeInput> do not react to form changes (#10335) (djhi)
  • Fix <Datagrid> header tooltip sometimes indicates the wrong sort order (#10334) (fzaninotto)
  • Fic Unify meta location in buildVariables in ra-data-graphql-simple (#10322) (dricholm)
  • Fix createLabel option should not be clickable for <AutocompleteInput> and <AutocompleteArrayInput> (#10321) (slax57)
  • [Doc] Update horizontal navigation reference (#10329) (emmanuel-ferdman)
  • [Doc] Document usage of <DatagridAG> inside an <InfiniteList> (#10328) (djhi)
  • [Doc] Improve useUpdate usage instructions (#10326) (fzaninotto)
  • [Doc] Fix StackedFilters's defaultValue doc (#10325) (erwanMarmelab)

5.3.2

  • Fix undo logic not working when doing multiple deletions one by one (#10296) (fzaninotto)
  • Fix DateInput ignores the timezone when given (#10311) (fzaninotto)
  • Fix DateInput messes up dates in some timezones (#10299) (djhi)
  • Fix <Edit> ignores mutation meta when updating the getOne cache (#10314) (fzaninotto)
  • Fix ReferenceField link is wrong when the record is not yet loaded (#10309) (fzaninotto)
  • Fix <SimpleList> throws an error when no data in standalone mode (#10313) (fzaninotto)
  • Fix: Remove deprecated 'initialValue' from sanitizeInputRestProps (#10221) (afilp)
  • [Doc] Add Eicrud dataprovider to the docs (#10316) (danyalutsevich)
  • [Doc] Update <StackedFilters> documentation for defaultValue (#10319) (erwanMarmelab)
  • [Doc] Fix Supabase API handler example in NextJS tutorial (#10310) (Ariyn)
  • [Doc] Fix links to react-dropzone doc pages (#10312) (slax57)
  • [Doc] Fix typo in TabbedForm and TabbedShowLayout (#10308) (highwide)
  • [Demo] Leverage canAccess in CRM demo (#10300) (djhi)

5.3.1

  • Fix smart count for no results message (#10295) (thibault-barrat)
  • Fix double decoding of ids in URLs (#10293) (djhi)
  • Fix no results message has untranslated resource name (#10291) (fzaninotto)
  • Fix <AutocompleteInput> displays 'Create' option for choices that already exist when createLabel is provided (#10288) (slax57)
  • [Doc] Fix Authorization link in Authentication page (#10303) (djhi)
  • [Doc] Remove outdated warning about <SimpleFormIterator> cloning its children (#10302) (slax57)
  • [Doc] fix example in README (#10298) (antoinefricker)
  • [Doc] Document react-hook-form limitation preventing using dynamically added inputs in <ArrayInput> with shouldUnregister (#10271) (djhi)

5.3.0

  • Make authentication check pessimistic
    • Disable data provider calls in CRUD controllers while the auth check is pending (#10238) (djhi)
    • Disable rendering of CRUD views while the auth check is pending (#10258) (djhi)
    • Make <Authenticated> component blocking (#10251) (fzaninotto)
  • Add Access Control
    • Introduce useCanAccess, useCanAccessResources, and useCanAccessCallback hooks (#10222) (djhi)
    • Introduce <CanAccess> and <AccessDenied> components (#10222) (djhi)
    • Add access control check in page controllers (list, show, edit, create) (#10247) (djhi)
    • Add access control to views and action buttons (#10225) (djhi)
    • Add access control to <Datagrid rowClick> (#10227) (djhi)
    • Add access control to <DeleteButton> (#10226) (djhi)
    • Add access control to the / route and introduce <NavigateToFirstResource> (#10255) (djhi)
    • Avoid unnecessary rerenders with canAccess hooks when there is no authProvider (#10200) (djhi)
    • Make authProvider.getPermissions optional (#10257) (djhi)
    • Update Simple example to leverage access control (#10278) (slax57)
  • Add support for embedding and prefetching data to reduce API queries (#10270) (fzaninotto)
  • Add per-resource success notifications ("3 posts deleted" instead of "3 elements deleted") (#10203) (fzaninotto)
  • Add support for <Edit emptyWhileLoading> (#10230) (erwanMarmelab)
  • Fix redirection to first route prevents going back in history (#10267) (aqeebpathan)
  • Fix useAuthState may logout even though logoutOfFailure is false (#10280) (fzaninotto)
  • [TypeScript] Make records paths inferred from type compatible with react-hook-form (#10279) (djhi)
  • [Doc] Warn about <AutoSave> incompatibility with warnWhenUnsavedChanges (#10277) (djhi)
  • [Doc] Update mentions of Azure Active Directory to Microsoft Entra ID (#10276) (djhi)
  • [Doc] Rewrite access control documentation (#10250) (fzaninotto)

5.2.3

  • Fix <AutoCompleteInput> should not display a "Create" option when the filter is empty (#10266) (erwanMarmelab)
  • Fix pnpm error Module not found: Can't resolve '@mui/utils' (#10264) (slax57)
  • [Doc] Update <StackedFilters> doc for ra-form-layout v5.2.0 (#10268) (erwanMarmelab)
  • [Doc] Update Remix tutorial to fix port and yarn documentation link (#10263) (smeng9)
  • [Doc] Update <Search> doc for keyboardShortcutIcon, withKeyboardShortcut and isInAppBar (#10254) (erwanMarmelab)
  • [Doc] Update Admin and Routing docs to encourage using a Data Router (#10220) (smeng9)

5.2.2

5.2.1

5.2.0

  • Add support for response metadata in dataProvider.getList() (#10179) (fzaninotto)
  • Add icons to <FilterButton> dropdown (#10186) (erwanMarmelab)
  • Add reset button to <Datagrid> and <SimpleList> when the current filter brings to no result (#10184) (erwanMarmelab)
  • Add global Reset CSS (#10164) (fzaninotto)
  • Add <ReferenceManyField storeKey> to allow more than one reference for the same resource (#10132) (djhi)
  • Add support for computed fields in ra-data-json-server's dataProvider.create() (#10162) (fzaninotto)
  • Enable Store sync when disableSyncWithLocation is true (#10187) (WiXSL)
  • Fix <FilterButton> accessibility (#10204) (djhi)
  • Fix <FilterButton> checked status (#10191) (fzaninotto)
  • Fix input validation and dirty state after re-enabling disabled fields (#10163) (michel-paiva)
  • [Doc] Create a doc page for <DateRangeInput> (#10202) (erwanMarmelab)
  • [Doc] Document <ReferenceManyField storeKey> prop (#10142) (slax57)

5.1.5

5.1.4

  • Fix useFormGroup doesn't return validation errors with react-hook-form 7.53.0 (#10168) (slax57)
  • Avoid "no source" warning when theres a finalSource in useInput (#10153) (GuilhermeCarra)
  • [chore] Bump webpack from 5.83.1 to 5.94.0 (#10175) (dependabot[bot])
  • [Doc]: Fix <SimpleFormIterator> add and remove buttons snippets (#10173) (julienV)

v5.1.3

v5.1.2

  • Fix <PrevNextButtons> index when using paginated results (#10144) (slax57)
  • Fix useInput should call a custom validator with the final source in respect to the <SourceContext> (#10148) (slax57)
  • Fix ra-data-graphql incorrectly warns about deprecated override option being set (#10138) (JonasDoe)
  • Fix create-react-admin CLI to generate valid react-admin v5 apps (#10131) (djhi)
  • [Doc] Fix <ReferenceInput> usage incorrectly mentions the validate prop (#10134) (fzaninotto)
  • [Doc] Fix broken links to webm videos (#10143) (slax57)
  • [Doc] Improve types in QuickFilter doc (#10150) (slax57)
  • [Doc] Update ra-search documentation to mention disableHighlight (#10135) (djhi)
  • [Doc] Add ra-data-nestjs-query to the list of Data Providers (#10145) (mrnkr)

v5.1.1

  • Fix <TranslatableInputs> throws error when used with null value (#10125) (glauff)
  • Fix ListContext.setSort ignores the sort order when the chosen field is the current one (#10114) (adguernier)
  • Fix <Datagrid rowClick> is called on mount (#10102) (djhi)
  • Fix <SimpleFormIterator> adds a left padding when there is no label (#10092) (fzaninotto)
  • Fix <DateInput> and <DateTimeInput> do not handle partial values correctly on Firefox (#9543) (arimet)

v5.1.0

v5.0.5

  • Fix <AutocompleteInput> clear button does not clear new choice (#10023) (adguernier)
  • Fix <FilterLiveSearch> should react to filter values change (#9996) (slax57)
  • Fix defaultDataProvider breaking change (#10001) (Nilegfx)
  • Fix TabbedForm with uri encoded identifiers (#10021) (djhi)
  • [Doc] Update ra-relationships documentation (#10018) (djhi)
  • [Doc] Verify if Beginning mode exist before add event (#10016) (arimet)

v5.0.4

  • Fix warning when using <List filter>instead of filters (#9980) (djhi)
  • Fix ra-data-graphql custom context gets overwritten on queries (#9976) (jspizziri)
  • [Chore] Backport missing changes from master (#9989) (slax57)
  • [Doc] Fix Remix installation instructions (#9982) (djhi)
  • [Doc] Update <Admin> doc to explain how to allow anonymous access to dashboard (#9992) (fzaninotto)
  • [Doc] Fix <Datagrid> standalone usage misses required resource prop (#9991) (fzaninotto)
  • [Doc] Update <Breadcrumb> doc according V5 upgrade (#9988) (adguernier)
  • [Doc] Update ra-rbac documentation following v5 upgrade (#9987) (slax57)
  • [Doc] Update ra-datagrid-ag doc according to V5 (#9985) (adguernier)
  • [Doc] Improve <EditableDatagrid> documentation (#9984) (adguernier)
  • [Doc] Fix react-query upgrade codemod snippets (#9977) (adguernier)
  • [TypeScript] Update mutations results types to include isLoading (#9978) (djhi)
  • [TypeScript] Fix <WrapperField source> prop should not be required (#9983) (jonathan-marmelab)
  • [TypeScript] Fix <ReferenceField> Props type is confusing (#9972) (fzaninotto)
  • [TypeScript] Fix useGetOne and useGetMany params type when id param is undefined (#9971) (fzaninotto)
  • [TypeScript] Fix data provider packages export non-strict types (#9970) (fzaninotto)

v5.0.3

  • Fix npm install error due to outdated peer dependencies (#9964) (fzaninotto)
  • Fix <SimpleShowLayout> uses a wrong translation key for field labels (#9966) (fzaninotto)
  • Fix ra-data-fakerest log of queries (#9960) (fzaninotto)
  • [TypeScript] Fix useGetManyReference return type (#9963) (fzaninotto)
  • [Demo] Fix ReviewList scrolls to top when editing a review (#9958) (djhi)

v5.0.2

  • Fix useUpdate throws an error when record id is a valid falsy value such as zero (#9957) (djhi)
  • Fix <DatagridHeader> Tooltip when using React element as a field label (#9948) (djhi)
  • Fix Inputs used outside <Form> need a SourceContext (#9944) (adguernier)
  • Backport Changes from 4.x branch (#9949) (djhi)
  • [Doc] Fix basename usage in routing chapter (#9956) (djhi)
  • [Doc] Update tutorial for v5 (#9945) (djhi)
  • [Doc] Explain that <Form sanitizeEmptyValues> does not work on nested fields (#9950) (djhi)
  • [Dev] Fix flaky tests (#9952) (djhi)

v5.0.1

v5.0.0

This major release introduces new features and some breaking changes. Here are the highlights:

UI Improvements

  • Apps now have a theme switcher and a dark theme by default (#9479)
  • Inputs now default to full width (#9704)
  • Links are now underlined (#9483)
  • List pages restore scroll position when coming back from Edit and Create views (#9774)
  • Errors in the Layout code now trigger the Error Boundary (#9799)
  • Button size can be set via props (#9735)

App Initialization

  • Simpler custom layout components just need to render their children (#9591)
  • No more props drilling for Layout, AppBar, Menu, etc (#9591)
  • useDefaultTitle() hook returns the application title from anywhere in the app (#9591)

Data Providers

  • Data providers can now cancel queries for unmounted components (opt-in) (#9612)
  • GraphQL data providers are easier to initialize (they are now synchronous) (#9820)
  • GraphQL-Simple data provider supports Sparse Fields in queries (#9392)
  • GraphQL-Simple data provider supports updateMany and deleteMany mutations (#9393)
  • withLifecycleCallbacks now supports for wildcard and array of callbacks (#9577)
  • Middlewares are more powerful and handle errors better (#9875)

List pages

  • Datagrid has rowClick enabled by default, it links to the edit or show view depending on the resource definition (#9466)
  • List bulkActionButtons is now a Datagrid prop (#9707)
  • setFilters doesn't debounce by default, so custom filters work as expected (#9682)
  • List parameters persistence in the store can be disabled (#9742)

Forms & Inputs

  • Inputs no longer require to be touched to display a validation error (#9781)
  • ReferenceInputs are now smarter by default as they use the recordRepresentation (#9902)
  • Server-Side validation is now more robust (#9848)
  • warnWhenUnsavedChanges works again (#9657)
  • Smart input components like TranslatableInputs, ArrayInput, or ReferenceManyInput now compose more seamlessly thanks to a new SourceContext. There is no need for getSource in FormDataConsumer. (#9533)
  • All inputs now have a unique ID - no more duplicate ID warnings (#9788)
  • Learning Forms is facilitated by a new Form chapter in the doc (#9864)

DX Improvements

  • The default Record Representation for resources is now smarter (#9650)
  • Data provider hooks like useGetOne have a smart return type based on the request state. This will force you to plan for the error case. (#9743)
  • Stricter TypeScript types will detect more errors at compile time (#9741)
  • PropTypes are gone, so there is no conflict with TypeScript types (#9851)
  • create-react-admin can run in non-interactive mode (#9544)
  • ra-data-fakerest accepts a delay parameter to simulate network delays (#9908)
  • data-generator-retail now exposes types for the generated data (#9764)

Bump dependencies

  • React-admin requires React 18 to leverage Concurrent React (#9827)
  • React-admin uses the latest version of react-router, react-query, date-fns, fakerest, etc. (#9657, #9473, #9812, #9801, #9908)
  • Internet Explorer is no longer supported (#9530)

Upgrading to v5

We've written a migration guide to help you upgrade your apps to v5. It covers all the breaking changes and how to adapt your code to the new APIs.

We estimate that a react-admin app with 50,000 lines of code will require about 2 days of work to upgrade to v5.

Changelog

For a detailed changelog, see the release notes for the following pre-releases:

v5.0.0-rc.1

v5.0.0-rc.0

  • Ensure React 19 compatibility (#9919) (djhi)
  • Fix data provider queries are doubled in development when using strict mode (#9901) (djhi)
  • Fix default <Error> background in global ErrorBoundary (#9913) (fzaninotto)
  • Fix combineDataProvider throws a runtime error (#9910) (fzaninotto)
  • Fix <List> should not render <Error> component on fetch error (#9912) (fzaninotto)
  • Fix useDelete doesn't delete record if its id is zero (#9894) (adguernier)
  • Update <ArrayInput> to use SourceContext instead of cloning children (#9911) (adguernier)
  • Update <SelectArrayInput> to use default record representation when used inside <ReferenceArrayInput> (#9902) (djhi)
  • Upgrade FakeRest to 4.0 (#9908) (fzaninotto)
  • [TypeScript] Fix types of Field components (#9903) (slax57)
  • [Dev] Fix useRegisterMutationMiddleware stories (#9899) (djhi)
  • [Dev] Deduplicate yarn.lock (#9897) (fzaninotto)
  • Backport changes from master (#9923) (slax57)

v5.0.0-beta.3

v5.0.0-beta.2

  • Fix middlewares do not handle optimistic cases (#9875) (djhi)
  • Fix ra-core is missing react-error-boundary dependency (#9873) (djhi)
  • Fix broken app build by downgrading query-string (#9871) (djhi)
  • Upgrade prettier to v3 (#9874) (djhi)
  • Backport changes from master to next (#9866) (djhi)

v5.0.0-beta.1

v5.0.0-beta.0

v4.16.19

v4.16.18

  • Fix <Datagrid> uses wrong element for "Select All" label (#9826) (fzaninotto)
  • Fix <ListView> crashes when inside a tab (#9824) (fzaninotto)
  • Fix warning about defaultProps in React 18.3 (#9832) (djhi)
  • Bump ejs from 3.1.8 to 3.1.10 (#9814) (dependabot bot)
  • [Doc] Improve doc for <Autocomplete onCreate> and similar props (#9858) (fzaninotto)
  • [Doc] Add missing fetchUtils import to make custom httpClient snippet clearer in TypeScript (#9843) (adguernier)
  • [Doc] update italian locale reference (#9830) (christianascone)
  • [Doc] Fix Input usage mentions disabled instead of readOnly (#9825) (fzaninotto)
  • [Typescript] Fix compilation error in <MenuItemLink>, <ResettableTextField> and <InspectorButton> with latest @types/react (#9853) (ilia-os)
  • [Storybook] Fix <TitlePortal> stories (#9834) (djhi)

v4.16.17

  • Fix combineDataProviders doesn't work when returned by an async function (#9798) (fzaninotto)

v4.16.16

  • Fix <Admin requireAuth> forbids access to custom routes with no layout (#9786) (fzaninotto)
  • [Doc] Add Soul data provider (#9776) (fzaninotto)
  • [Doc] Update third-party Inputs to add link to Google Places AutocompleteInput (#9771) (quentin-decre)
  • [Doc] Update <Search> and <SearchWithResult> to introduce queryOptions (#9779) (erwanMarmelab)
  • [Doc] Update RBAC to better explain the difference between the built-in actions (#9766) (slax57)
  • [Doc] Fix <SimpleForm> has wrong import for <RichTextInput> (#9775) (anthonycmain)
  • [Doc] Fix <RichTextInput> typo on TipTap (#9759) (adguernier)
  • [Doc] Update <JsonSchemaForm> to add details about available widgets (#9758) (adguernier)
  • [TypeScript] Fix warning in create-react-admin (#9728) (hbendev)

v5.0.0-alpha.1

  • Fixed failed v5.0.0-alpha.0 release

v5.0.0-alpha.0

  • Add automatic query cancellation to all data provider hooks using abort signal (#9612) (slax57)
  • Add SourceContext to allow for deep form nesting without prop forwarding (#9533) (djhi)
  • Upgrade react-router to 6.22.0, use data router by default, stabilize useWarnWhenUnsavedChanges, and remove <Admin history> prop (#9657) (slax57)
  • Upgrade react-query to v5 and react to v18 (#9473) (djhi)
  • Update all inputs to be fullWidth by default (#9704) (fzaninotto)
  • Update <Link> to underline links by default (#9483) (fzaninotto)
  • Update <Admin> to have a default dark theme (#9479) (adguernier)
  • Update <Datagrid expand> to remove prop injection (#9719) (fzaninotto)
  • Update <Datagrid rowClick> to use resource definition by default (#9466) (slax57)
  • Update <SimpleShowLayout> to accept a custom direction (#9705) (fzaninotto)
  • Update Field components to leverage SourceContext (#9620) (djhi)
  • Update useGetRecordRepresentation to get better defaults (#9650) (erwanMarmelab)
  • Update useInfiniteGetList to skip getOne cache population for large responses (#9536) (slax57)
  • Update withLifecycleCallbacks to support a wildcard and an array of callbacks (#9577) (quentin-decre)
  • Update combineDataProviders to work with custom methods using more than 2 parameters (#9676) (karpushchenko)
  • Update ra-data-graphql-simple to support DELETE_MANY and UPDATE_MANY (#9393) (maxschridde1494)
  • Update ra-data-graphql-simple to support sparse field (#9392) (maxschridde1494)
  • Update create-react-admin to make it usable in non-interactive mode (#9544) (djhi)
  • Update create-react-admin to include <CheckForApplicationUpdate> in default <Layout> (#9509) (arimet)
  • Remove support for IE (#9530) (slax57)
  • Remove cloneElement in list actions and bulk actions (#9707) (fzaninotto)
  • Remove useListController setFilters default debounce (#9682) (fzaninotto)
  • Remove injected props in <Admin> and <Layout> components (#9591) (fzaninotto)
  • Fix <TranslatableInputs> label inference regression (#9594) (djhi)
  • Fix <TextField size> cannot be overridden by theme (#9554) (PedroPerpetua)
  • [Doc] Update documentation for react-query (#9481) (djhi)
  • [Doc] Update Upgrade guide to document React-Query codemods (#9528) (slax57)
  • [Doc] Update Upgrade guide to mention that <Datagrid rowClick> is no longer false by default (#9475) (slax57)
  • [Doc] Update Upgrade guide to make the BC about using a data router clearer (#9696) (slax57)
  • [Doc] Update <AutocompleteInput> to include a tip about the abort controller (#9693) (adguernier)
  • [TypeScript] Forbid <ReferenceInput validate> (#9689) (fzaninotto)
  • [Demo] Rename isLoading to isPending (#9524) (fzaninotto)
  • [Dev] Backport changes from master (#9678) (fzaninotto)
  • [Dev] Backport changes from master (#9525) (slax57)
  • [Dev] Reduce ReactQueryDevtools button size (#9558) (adguernier)
  • [Dev] Add create-react-admin GitHub action to test new apps (#9580) (djhi)
  • [Dev] Add tests to the app generated by create-react-admin with ra-data-fakerest (#9578) (djhi)
  • [Dev] Upgrade Vite dependencies (#9565) (djhi)

v4.16.15

v4.16.14

  • Fix <FilterButton> does not support the variant prop (#9751) by (adguernier)
  • [Demo] Fix error when viewing newly created deals in CRM demo (#9733) by (erwanMarmelab)
  • Bump express from 4.17.3 to 4.19.2 (#9747) by (dependabot)
  • Bump webpack-dev-middleware from 6.1.1 to 6.1.2 (#9739) by (dependabot)
  • [Doc] Update <RichTextInput> to explain how to access the editor object (#9731) by (erwanMarmelab)
  • [Doc] Update "Writing a Data Provider" chapter to include test advice (#9738) by (fzaninotto)
  • [Doc] Update RBAC to mention ability to define permissions on an array of resources (#9729) by (erwanMarmelab)

v4.16.13

  • Fix <AutocompleteInput createLabel> (#9712) (fzaninotto)
  • Fix <AutocompleteArrayInput> triggers an infinite loop when disabled (#9717) (fzaninotto)
  • Fix <Autocomplete> loses focus on select (#9718) (fzaninotto)
  • [Doc] Fix upgrade guide suggest using defaultProps override in theme for react-admin components (#9713) (fzaninotto)
  • [Doc] Fix readOnly doc mentions focusable inputs (#9711) (adguernier)
  • [Doc] Fix <Layout> doc links to wrong anchor (#9716) (erwanMarmelab)
  • [Doc] Fix not parsed mutationOptions value in useNotify/undoable (#9697) (ValentinnDimitroff)
  • [Doc] Add mention to <AccordionFormPanel> and <AccordionSection> about label accepting an element (#9699) (erwanMarmelab)
  • [Doc] Add mention in <ReferenceManyToManyInput> about filter usage (#9720) (erwanMarmelab)
  • [Doc] Add mention in <StackedFilters> to include advice on data provider configuration (#9709) (fzaninotto)
  • [Doc] Add example for <Search> and <SearchWithResult> options prop (#9700) (erwanMarmelab)
  • [Doc] Add Reference Fields video to the relevant chapters (#9702) (fzaninotto)

v4.16.12

  • Fix support for readOnly on all RA Inputs (#9656) (erwanMarmelab)
  • Fix AutocompleteInput ignores TextFieldProps (#9681) (fzaninotto)
  • Fix <ArrayInput> should keep error state on children after unmount (#9677) (sweco-sedalh)
  • Fix <SortButton> should use the provided resource prop to build its label (#9694) (slax57)
  • Fix <ReferenceInput> throws a recoverable error in production (#9690) (fzaninotto)
  • [chore] Fix vulnerable dev dependency ip (#9673) (fzaninotto)
  • [Doc] Mention the Multi-column sorting feature of <DatagridAG> (#9674) (slax57)
  • [Doc] Fix typo in example showing custom CSV export (#9671) (kav)

v4.16.11

  • Fix <FilterForm> ignores key prop on children (#9588) (Dreamsorcerer)
  • [Demo] Fix missing tags field in simple example fake dataset raises a warning (#9660) (slax57)
  • [chore] Remove unused dependency on wait-on (#9663) (slax57)
  • [Doc] Add video tutorial to the Datagrid doc (#9666) (fzaninotto)
  • [Doc] Update Datagrid documentation regarding preferenceKey (#9649) (erwanMarmelab)
  • [Doc] Fix typo in Caching documentation (#9667) (n-kulic)

v4.16.10

  • Fix DeleteWithConfirmButton raises an error when the record is not loaded (#9636) (fzaninotto)
  • Fix field label translation concatenates previous prefix (#9648) (adguernier)
  • Fix <ReferenceInput> accepts a validate prop while it should not (#9637) (fzaninotto)
  • [TypeScript] Fix some strict null checks errors in core (#9644) (fzaninotto)
  • [Doc] Add video tutorial for the <Admin> component (#9641) (fzaninotto)
  • [Doc] Update <AccordionForm> and <AccordionFormPanel> docs (#9646) (erwanMarmelab)
  • [Doc] Update DateInput, TimeInput, and DateTimeInput chapters to mention MUI variant (#9631) (erwanMarmelab)
  • [Doc] Update docs for <Breadcrumb> (#9640) (erwanMarmelab)
  • [Doc] Add screencasts and screenshot to <EditableDatagrid> docs (#9633) (erwanMarmelab)
  • [Doc] Add warning about using setFilters with other callbacks (#9639) (fzaninotto)
  • [Doc] Fix example code for sending files in Base64 (#9647) (davidhenley)
  • [Doc] Fix authProvider images (#9654) (erwanMarmelab)
  • [Doc] Fix dataproviders images (#9653) (djhi)
  • [Doc] Fix code example in the Usage section of <SaveButton> is broken (#9651) (slax57)

v4.16.9

v4.16.8

v4.16.7

v4.16.6

  • Fix click on <Datagrid> Select All button bubbles up to parent Datagrid (#9567) (Dreamsorcerer)
  • Bump follow-redirects from 1.15.2 to 1.15.4 (#9574) (dependabot[bot])
  • [Doc] Add a section demonstrating the <Datagrid> headers pinning feature (#9564) (adguernier)
  • [Doc] Add LinuxForHealth FHIR to DataProvider List (#9572) (scheiblr)
  • [Doc] Fix jekyll trying to parse jsx code on <Edit mutationOptions> example snippet (#9573) (Szulerinio)
  • [Doc] Fix linking to wrong prop anchor on <Resource> documentation (#9570) (Szulerinio)
  • [Demo] Fix new deals do not appear in the CRM demo (#9581) (adguernier)

v4.16.5

  • Fix <AutocompleteInput> should keep working when passing custom InputProps (#9559) (adguernier)
  • Fix usePreference should throw an error when used outside a <Configurable> context (#9537) (arimet)
  • Revert "Fix <SelectArrayInput> does not use recordRepresentation" (#9563) (slax57)
  • [TypeScript] Fix error when using typed args in <WithRecord render> function (#9552) (seongwon-privatenote)
  • [TypeScript] Fix <MenuItemLink> prop type should omit placeholder (#9555) (smeng9)
  • [Doc] Improve <MarkdownField> doc (#9557) (adguernier)
  • [Doc] Better document <ReferenceOneField emptyText> prop (#9562) (slax57)

v4.16.4

  • Fix <SelectArrayInput> does not use recordRepresentation (#9532) (adguernier)
  • [Doc] Fix <DatagridAG> doc on column state persistence (#9540) (djhi)
  • [Doc] Fix typo in <Show queryOptions> doc(#9531) (slax57)
  • [Doc] Update the hooks documentation for consistent TOC (#9453) (sebashwa)
  • [Doc] Improve <MarkdownInput> documentation(#9511) (arimet)

v4.16.3

  • Fix useNotify types (#9529) (djhi)
  • Fix <AutocompleteInput TextFieldProps> are not applied (#9527) (adguernier)
  • Fix useReferenceManyFieldController does not debounce setFilters (#9523) (djhi)
  • Fix <TabbedShowLayout> displays its fields as full width blocks (#9522) (djhi)
  • Fix <ArrayInput> does not work in <FilterForm> (#9521) (djhi)
  • Fix <Datagrid>'s rowClick and <ReferenceField>'s link should scroll to top (#9510) (DavidVergnaultMoank)
  • Fix useTheme may return undefined (#9503) (djhi)
  • [Doc] Fix useInput documentation regarding errors display (#9520) (djhi)
  • [Doc] Update documentation for handling App router part (#9513) (arimet)
  • [Doc] Fix TS warnings in Connecting To A Real API tutorial (#9501) (adguernier)
  • [Doc] Removed postgrest from auth providers (#9500) (gheesh)
  • [Doc] Update <DatagridAG> doc to mention the component is lazy loaded by default (#9499) (slax57)
  • [Doc] Improve <EditableDatagrid> doc (#9494) (adguernier)

v4.16.2

  • Fix clearing a nested filter re-renders the previous value when navigating back to the list (#9491) (slax57)
  • Fix ra-data-graphql uses a Proxy, which prevents adding more methods automatically (#9487) (fzaninotto)
  • Fix useUpdateMany doesn't accept the returnPromise option at call time (#9486) (fzaninotto)
  • Fix <Pagination> logs a warning (#9474) (fzaninotto)
  • [Doc] Update ra-form-layouts dialogs documentation (#9482) (djhi)
  • [Doc] Fix snippets fails to render in JS (#9478) (fzaninotto)
  • [Doc] Add link to tutorial for headless admin (#9477) (fzaninotto)

v4.16.1

  • Fix <FileInput> should display a validation errors right away when form mode is 'onChange' (#9459) (slax57)
  • [TypeScript] Fix useRecordContext may return undefined (#9460) (groomain)
  • [Doc] Add link to new demo: Note-taking app (#9465) (fzaninotto)
  • [Doc] Add headless section in pages components (#9447) (fzaninotto)
  • [Doc] Add example showing how to add <Inspector> to a custom layout (#9458) (rossb220)
  • [Doc] Update <DatagridAG> doc to use the new package, and document the column order/size persistence (#9472) (slax57)
  • [Doc] Update authProvider and dataProvider lists to target the documentation instead of the repository's root (#9471) (slax57)
  • [Website] Reorder documentation's Discord and Github icons to match the website order (#9454) (adguernier)

v4.16.0

  • Add <SingleFieldList empty gap direction> props, and allow it to be used without children (#9439) (fzaninotto)
  • Add <LoadingIndicator onClick> prop, allowing to trigger actions (like a refresh) on click (#9420) (david-bezero)
  • Add <LocalesMenuButton icon> prop to customize the locales button icon (#9380) (djhi)
  • Add <Form disableInvalidFormNotification> to allow disabling notifications when the form is invalid (#9353) (tim-hoffmann)

v4.15.5

  • Add support for fetchOptions to <CheckForApplicationUpdate> (#9436) (smeng9)
  • Bump axios from 1.4.0 to 1.6.1 (#9438) (dependabot[bot])
  • [Typescript] Fix <CheckForApplicationUpdate> props type should allow onNewVersionAvailable (#9444) (slax57)
  • [Doc] Fix typos and anchors (#9449) (WiXSL)
  • [Doc] Fix api implementation in Remix tutorial throws a decoding error when less than 10 records are returned (#9448) (erwanMarmelab)
  • [Doc] Fix various snippets containing props forwarding (#9443) (fzaninotto)
  • [Doc] Update RBAC OSS Doc (#9435) (erwanMarmelab)
  • [Doc] Introduce classname and sx prop for SolarMenu component (#9440) (adguernier)
  • [Doc] Add documentation for <CheckForApplicationUpdate onNewVersionAvailable> (#9437) (smeng9)
  • [Storybook] Fix stories with ToggleThemeButton should not persist theme in localStorage (#9441) (erwanMarmelab)

v4.15.4

  • Fix bad url upon <FilterLiveSearch> submission (#9398) (erwanMarmelab)
  • Fix clicking on "Remove all filters" does not close the filter menu (#9415) (erwanMarmelab)
  • [TypeScript] Allow to pass custom provider types to addRefreshAuth functions (#9428) (djhi)
  • [Doc] Improve the Show section (#9423) (fzaninotto)
  • [Doc] Add documentation for <DatagridAG> (#9414) (slax57)
  • [Doc] Document <EditInDialogButton> deletion side effect (#9425) (fzaninotto)
  • [Doc] Update doc for DatagridAg scroll (#9434) (erwanMarmelab)
  • [Doc] Mention that <Create redirect> also supports a function (#9426) (situplastik)
  • [Doc] Fix duplicate import on the useListContext page (#9424) (BoboTiG)

v4.15.3

  • Fix <AutocompleteInput> clear button appears over the BulkActionsToolbar (#9413) (erwanMarmelab)
  • [Doc] Add screencasts for <StackedFiltersForm> and update code snippets (#9410) (adguernier)
  • [Doc] Add a chapter for <SearchInput> (#9409) (erwanMarmelab)
  • [Doc] Update data prodicer chapter to explain how to upload file with with FormData (#9402) (adguernier)

v4.15.2

v4.15.1

  • Fix <SelectColumnsButton> throws errors when reordering the columns (#9369) (slax57)
  • Fix <ReferenceField sx> is ignored when link={false} (#9373) (fzaninotto)
  • Fix useGetList optimistic cache update leads to ui freeze when too many records are returned (#9359) (slax57)
  • Fix <BooleanInput> color prop should be configurable globally via MUI defaultProps system (#9361) (septentrion-730n)
  • Fix security vulnerability in dev dependencies due to outdated storybook (#9374) (fzaninotto)
  • [Doc] Fix <Confirm> doc snippet mentions wrong Datagrid prop name (#9362) (omegastripes)
  • [Doc] Explain how <PasswordInput> can be used to update a password (#9354) (fzaninotto)
  • [Doc] Improve <Calendar> documentation (#9367) (mchaffotte)
  • [Doc] Improve <StackedFilters> documentation (#9364) (mchaffotte)
  • [Doc] Fix old MUI import path in code snippets (#9372) (fzaninotto)
  • [Demo] Improve customer aside (#9356) (fzaninotto)

v4.15.0

  • Add Nano, Radiant and House themes (#9316) (adguernier)
  • Add ra-i18n-i18next, an i18n adapter for i18next (#9314) (djhi)
  • Add <Menu.Item>content</Menu.Item> syntax (#9242) (fzaninotto)
  • Add support for <ReferenceArrayField queryOptions> (#9275) (adguernier)
  • Add support for confirmColor prop to <DeleteButton> and <BulkDeleteButton> (#9342) (IAmVisco)
  • Add ability to pass url state in <CreateButton> (#9319) (mchaffotte)
  • Add ability to customize ra-data-graphql-simple further (#9296) (dricholm)
  • [Doc] Update yarn linking instruction (#9341) (smeng9)

v4.14.6

  • Fix <DatagridConfigurable> editor allows to drag fields outside its list (#9351) (djhi)
  • [Doc] Fix <DatagridConfigurable> docs missing tip about unlabeled column (slax57)
  • [Doc] Fix <StackedFilters> usage examples (#9345) (mchaffotte)
  • Bump postcss from 8.4.18 to 8.4.31 (#9339) (dependabot)
  • Bump zod from 3.22.1 to 3.22.3 (#9338) (dependabot bot)

v4.14.5

  • Fix <FilterForm> freezes the app when a deeply nested filters are reset (#9337) (djhi)
  • Fix useUnique send request even if the field value is empty (#9334) (adguernier)
  • Fix <RichTextInput> does not update when its editorOptions prop changes (#9289) (djhi)
  • [Doc] Update Remix Instructions (#9329) (djhi)
  • [Doc] Update third-party component section; new date/time inputs (#9326) (ZachSelindh)

v4.14.4

  • Fix inputs with disabled={false} throw an error (workaround) (#9313) (slax57)
  • Fix useCreate does not refresh the list cache (#9312) (fzaninotto)
  • [Doc] Add i18n InputHelperText section to Inputs/useInputs docs (#9315) (ZachSelindh)
  • [Doc] Add beginner mode to hide advanced doc chapters (#9306) (fzaninotto)
  • [Doc] Fix anchors (#9305) (WiXSL)

v4.14.3

  • Fix <PrevNextButton> default style (#9290) (fzaninotto)
  • [Doc] Add <SolarLayout> component (#9282) (fzaninotto)
  • [Doc] Add link to ra-auth-google, authProvider for Google Identity (#9284) (fzaninotto)
  • [Doc] Improve tutorial screencast (#9298) (fzaninotto)
  • [Doc] Explain how to disable menu item with RBAC (#9293) (adguernier)
  • [Doc] Add Real Time Notifications section in Realtime introduction (#9304) (djhi)
  • [Doc] Update <CreateDialog> documentation about edit conflict (#9295) (djhi)
  • [Doc] Update <ReferenceManyToManyInput> documentation about children default value (#9294) (djhi)
  • [Doc] Fix typo in useRegisterMutationMiddleware introduction part (#9291) (youjin-10)
  • [Doc] Fix typo in Features example (#9286) (fzaninotto)
  • [Demo] Fix ReviewList shows horizontal scrollbar on mobile (#9297) (fzaninotto)

v4.14.2

Failed release, do not use.

v4.14.1

  • Fix filters not matching inputs are ignored without syncWithLocation (#9283) (djhi)
  • Fix create-react-admin does not include gitignore (#9280) (djhi)
  • Fix <RichTextInput> does not trigger onBlur (#9272) (slax57)
  • Fix <TopToolbar>: React does not recognize the hasCreate prop on a DOM element (#9267) (slax57)
  • Fix usePermissions should only log errors in development mode (#9262) (NidhiSharma63)
  • [Doc] Improve Example REST Implementation when calling create with partial data (#9276) (slax57)
  • [Doc] Improve <Breadcrumb> documentation (#9271) (fzaninotto)
  • [Doc] Improve <ReferenceManyToManyInput> documentation (#9270) (adguernier)
  • [Doc] Improve and reorder <ReferenceManyToManyField> documentation (#9269) (adguernier)
  • [Doc] Fix external link in <FileInput> and <ImageInput> (#9268) (WiXSL)
  • [Doc] Fix <SaveButton> example (#9266) (WiXSL)
  • [Doc] Explain how to lazy load <RichTextInput> (#9263) (fzaninotto)
  • [Doc] Fix typos on Admin, Architecture, EditTutorial, Features, Fields, Inputs, and Tutorial pages (#9259) (mchaffotte)
  • [Demo] Fix preferences are shared between demos (#9264) (mchaffotte)

v4.14.0

  • Add support for lazy-loaded React components (#9260) (fzaninotto)
  • Include full record in <AutocompleteInput> and <AutocompleteArrayInput>'s onChange (#9245) (slax57)
  • Fix top margin of <TopToolbar> to move content up when there is no filter (#9232) (fzaninotto)
  • Add <SortButton sx> prop to customize button style (#9223) (fzaninotto)
  • Add <ResourceMenuItems> to facilitate custom menus (#9212) (fzaninotto)
  • Add <PrevNextButtons> for <Show> and <Edit> views (#9165) (adguernier)
  • Fix Filter Form to show remove button after the input (#9224) (fzaninotto)
  • Fix <PrevNextButtons> to fetch less aggressively (#9209) (fzaninotto)
  • Change the definition of sort order to ASC|DESC (#8466) (zhujinxuan)

v4.13.4

  • Fix <AutocompleteInput>'s onInputChange is never called (#9240) (tdnl)
  • Fix typo in deprecated <Datagrid> rowStyle message (#9252) (onefifth)
  • [Demo] Add lazy loading to CRM demo to illustrate code splitting (#9255) (fzaninotto)
  • [Doc] Fix typo double text (#9253) (oxwazz)
  • [Doc] Fix typo in <RichTextInput> documentation (#9244) (mhfortuna)
  • [Doc] Fix typos and invalid code fences languages (#9238) (djhi)

v4.13.3

  • Fix <NumberInput> and <BooleanInput> programmatic focus (#9221) (fzaninotto)
  • Fix useReferenceManyFieldController fails with error when the record is not yet present (#9236) (djhi)
  • Fix bulk actions toolbar styling issue on mobile (#9222) (fzaninotto)
  • [TypeScript] Add inline documentation for most common components (#9234) (fzaninotto)
  • [Doc] Update sx sections to point to the new SX documentation (#9233) (fzaninotto)
  • [Doc] Fix docs anchors and typos (#9235) (WiXSL)
  • [Doc] Fix explanations context in <ReferenceManyToManyInput> documentation (#9228) (adguernier)
  • [Doc] Fix <List actions> example throws an error (#9220) (fzaninotto)
  • [Doc] Fix startup command in project Readme file (#9231) (azizChebbi)

v4.13.2

  • Fix Guessers should not log in CI by default (#9218) (fzaninotto)
  • Fix package.json should mention peer dependency on react-is (#9201) (kamiyo)
  • Fix validation errors from resolvers are not translated (#9191) (djhi)
  • [Doc] WizardForm: document ability to pass progress={false} (#9216) (slax57)
  • [Doc] Fix typo in useInfiniteGetList doc (#9210) (codyavila)
  • [Doc] Convert <Datagrid> documentation to TS (#9207) (djhi)
  • [Doc] Convert <Admin> documentation to TS (#9206) (djhi)
  • [Doc] display a comment inviting to switch to TS if transpiled code is empty (#9205) (adguernier)
  • [Doc] Add screenshot and screencast for <ReferenceManyToManyInput> and <ReferenceManyToManyField> (#9204) (adguernier)
  • [Doc] Update the Data Fetching documentation (#9200) (fzaninotto)
  • [TypeScript] Fix withLifecycleCallbacks beforeSave return type (#9199) (djhi)

v4.13.1

  • Fix <ArrayInput> does not apply default values set on inputs (#9198) (djhi)
  • Fix <ReferenceInput queryOptions> does not apply to getMany query (#9197) (fzaninotto)
  • Fix <UpdateButton> with custom notification doesn't close the confirmation dialog (#9196) (fzaninotto)
  • Fix <FilterLiveSearch> uses label as placeholder by default (#9185) (fzaninotto)
  • [TypeScript] Fix missing types for TranslationMessages (#9187) (bicstone)
  • [Doc] Refactor Theming documentation (#9193) (fzaninotto)
  • [Doc] Fix <NumberInput> usage in Filter Forms (#9186) (fzaninotto)
  • [Doc] Convert Inputs Tutorial Examples to TS (#9183) (djhi)
  • [Doc] Convert List Tutorial Examples to TS (#9181) (djhi)

v4.13.0

  • Add <FilterListItem icon> prop to show an icon for each filter list item (#9150) (Guy-Adler)
  • Add transform prop to <DateField> and <NumberField> (#9147) (fzaninotto)
  • Add <RecordRepresentation> to streamline rendering a record as string (#9095) (djhi)
  • Add <UpdateButton> to let users update the current record (#9088) (djhi)
  • Add <CheckForApplicationUpdate> to suggest a reload when the application code has changed (#9059) (djhi)
  • Add <Datagrid rowSx> prop to customize row style for each record (#8925) (zhujinxuan)
  • Update <SimpleList> to fallback to recordRepresentation when not given primaryText (#9172) (fzaninotto)
  • Update <TitlePortal> to allow customization of the page title style (#9171) (fzaninotto)
  • Update <List> mobile layout to display actions first (#9170) (fzaninotto)
  • Update <Input> components width on mobile to make them full width by default (#9169) (fzaninotto)
  • Update <TranslatableInputs> to allow vertical layout (#9126) (slax57)
  • Update <Confirm> to accept a React node as confirmTitle or confirmContent (#9115) (yurassic)
  • Fix <SelectInput> throws error when fetching choices manually (#9179) (fzaninotto)
  • Fix <SelectInput> translates choices even inside a <ReferenceInput> (#9176) (fzaninotto)
  • Fix <SingleFieldList> children don't use default link color (#9174) (fzaninotto)
  • Fix ra-data-provider-fakerest getMany doesn't preserve the ids order (#9168) (fzaninotto)
  • Fix Fields Record Type Parameter (#9092) (djhi)
  • [Doc] Fix tutorial misses step to link references together (#9167) (fzaninotto)

v4.12.4

  • Fix <FilterLiveSearch> reset button does not reset the value (#9149) (fzaninotto)
  • Fix deprecated defaultProps warnings in React 18 (#9124) (adguernier)
  • [Doc] Add documentation about <BulkUpdateFormButton> and <InputSelectorForm> (#9145) (adguernier)
  • [Doc] Improve <TranslatableFields> chapter (#9154) (adguernier)
  • [Doc] Fix Next.js tutorial for app and pages router (#9131) (adguernier)
  • [Doc] Fix <Admin loginPage={false}> leads to an infinite loop (#9166) (fzaninotto)
  • [Doc] Fix <AutoSaveToolbar> should be used as a ReactElement (#9157) (adguernier)
  • [Doc] Fix <WizardForm> snippet to use a custom progress bar (#9163) (adguernier)
  • [Doc] Fix canAccess and <IfCanAccess> documentation about wildcard action fallback (#9144) (adguernier)
  • [Doc] Fix default perPage value in useList (#9139) (smeng9)
  • [Doc] Fix <Confirm> description of confirm and cancel icon types (#9140) (smeng9)

v4.12.3

  • Fix <FileField> should not propagate click (#9133) (slax57)
  • [TypeScript] Fix TS errors with <ArrayField> and <ChipField> in stories (#9132) (slax57)
  • [Doc] Rename Architecture page to Key Concepts (#9078) (fzaninotto)
  • [Doc] Fix HowTos order and syntax in various chapters (#9123) (fzaninotto)
  • [Doc] Fix deprecated bulkActionButtons prop of List component (#9135) (smeng9)
  • [chore] Bump semver from 5.7.1 to 5.7.2 (#9091) (dependabot[bot])

v4.12.2

  • Fix useUnique should allow value if the only matching record is the current one (#9118) (djhi)
  • Call checkError when getPermissions fails (#9117) (djhi)
  • Fix useGetManyReference default onSuccess throws when the query is disabled (#9116) (slax57)
  • Fix <TranslatableInputs> should support fullWitdh and sx props (#9104) (djhi)
  • Fix remove unsupported propTypes on <List> (#9101) (WiXSL)
  • Fix <SimpleFormIterator> with <FormDataConsumer> should not re-apply default values (#9094) (slax57)
  • [Demo] Improve CRM Demo Kanban code (#9114) (slax57)
  • [Demo] Replace react-beautiful-dnd by @hello-pangea/dnd to support React 18 (#9097) (slax57)
  • [Doc] add sections to explain explicitly how to disable features like bulk actions (#9086) (adguernier)
  • [Doc] Remove emptyText prop from <AutoCompleteArrayInput> doc as it is not supported (#9073) (gitstart)

v4.12.1

  • Fix closing browser tab loses undoable mutations without warning (#9072) (adguernier)
  • [Doc] Improve a bit reference to Material UI (#9087) (oliviertassinari)
  • [Doc] Fix code examples syntax errors (#9083) (WiXSL)
  • [Doc] Fix missing close tag in <List> aside snippet (#9082) (slax57)
  • [Doc] fix a typo: replace ise by use in NumberInput doc (#9081) (adguernier)
  • [Doc] Fix react-router outdated doc links (#9079) (slax57)
  • [Doc] Add doc for <BulkUpdateButton> (#9077) (slax57)
  • [Doc] fix a typo in variable template example using polyglot (#9076) (adguernier)
  • [Doc] Add missing backticks for default empty value example (#9075) (adguernier)
  • [Doc] Update Tutorial to use TypeScript by default (#9074) (adguernier)
  • [Doc] Fix <AutompleteInput create> prop example (#9071) (adguernier)
  • [Doc] Fix <ReferenceManyField> chapter snippets to match the example data (#9067) (eboss-dev)

v4.12.0

  • Add unique validator (#8999) (djhi)
  • Allow disabling store persistence of the list parameters (#9019) (djhi)
  • Add ability to refetch permissions on demand (#8955) (mmateja)
  • Add support for mutationOptions in <BulkUpdateButton> (#9035) (KonkretneKosteczki)
  • Add eslint, prettier and default vite gitignore to create-react-admin (#9055) (djhi)
  • Memoize <AutocompleteInput>'s filterToQuery and improve <AutocompleteInput> and <AutocompleteArrayInput>'s docs about props stability (#9046) (djhi)
  • Update <Link> to honor the underline prop (#8977) (fzaninotto)
  • Fix <DeleteButton> doesn't allow to override the text color (#9060) (adguernier)
  • Fix warning about string value passed to BooleanInput (#9056) (adguernier)
  • Fix demos don't allow to visualize source maps (#9047) (fzaninotto)
  • Fix custom input's onChange handlers should have access to updated context value (#8910) (WiXSL)
  • Upgrade to TS 5 (#8937) (djhi)
  • [Doc] Add SmartRichTextInput, an AI assistant for rich text content (#9052) (fzaninotto)
  • [Doc] Document useRegisterMutationMiddleware (#9031) (djhi)
  • [Doc] Better explain input's default label (#9069) (adguernier)
  • [Doc] Fix sortBy prop value in "Combining Two Fields" chapter (#9048) (adguernier)
  • [Doc] fix links to TanStack Query V3 doc (#9057) (adguernier)
  • [Doc] Fix explanations in "Controlled Mode" section of TabbedShowLayout.md (#9045) (adguernier)
  • [Doc] Fix anchors and typos (#9054) (WiXSL)
  • [Doc] fix a typo in ReferenceOneField documentation (#9053) (adguernier)
  • [Doc] Fix a typo in FieldsForRelationships.md (#9049) (adguernier)
  • [Doc] Fix a typo in TabbedForm.md (#9041) (adguernier)

v4.11.4

  • Fix Input components add a bottom margin even when helperText is false (#9037) (adguernier)
  • Fix <Loading> custom message raises a missing translation key warning (#9036) (adossas-spdrm)
  • Fix linter warnings (#9033) (fzaninotto)
  • Fix <RadioButtonGroupInput> does not honor id prop in option labels (#9025) (fzaninotto)
  • Fix linter warnings (#9024) (fzaninotto)
  • Fix <RichTextInput> toolbar appearance (#9018) (fzaninotto)
  • [Doc] Fix useList example, with page option (#9040) (adguernier)
  • [Doc] Fix missing constant in List tutorial example (#9032) (adguernier)
  • [Doc] Improve description of RBAC tab, panel, section, and step (#9030) (adguernier)
  • [Doc] Fix link to German translation package (#9028) (tommylenz)
  • [DOC] - Fix typo on useGetTree documentation (#9027) (adguernier)
  • [Doc] Update DataProvider file upload documentation to leverage withLifeCycleCallbacks (#9022) (djhi)

    v4.11.3

  • Fix Save button might stay disabled when using <ArrayInput> with default values (#8971) (henryhobhouse)
  • Fix <Admin> should call authProvider.getPermissions only when given a child function (#9001) (adguernier)
  • Fix <ListView> does not apply CSS classes to its child components (#8995) (djhi)
  • Update ra-input-rich-text tiptap dependencies (#8997) (djhi)
  • [Doc] Add PredictiveTextInput chapter (#9016) (fzaninotto)
  • [Doc] Automatically convert TS examples to JS (#9005) (djhi)
  • [Doc] Mention RBAC forms in documentation (#8996) (djhi)
  • [Doc] Add documentation for Remix v2 routing conventions (#9017) (djhi)
  • [Doc] Add references throughout the documentation about linking two inputs (#9015) (djhi)
  • [Doc] Fix Next.js pages router installation misses src directory (#9012) (fzaninotto)
  • [Doc] Fix broken link in Next installation tutorial (#9011) (fzaninotto)
  • [Doc] Use WebM and MP4 videos instead of GIF for EE components (#9006) (slax57)
  • [Doc] Fix broken link to useLockOnMount in useLock (#9002) (slax57)
  • [Doc] Fix missing closing tag in custom AppBar example code (#9000) (adguernier)
  • [Doc] Update links to the React documentation (#8998) (adguernier)
  • [JSDoc] Fix <ToggleThemeButton> deprecated props JSDoc (#8994) (slax57)

v4.11.2

  • Fix <ReferenceField> line height isn't consistent with other fields (#8976) (fzaninotto)
  • Fix configurable does not have a targetable root class (#8980) (djhi)
  • Fix <Admin> fails when used in Next.js server components (#8990) (fzaninotto)
  • Fix English translation of auth error message (#8970) (joebordes)
  • Fix linter warnings (#8978) (fzaninotto)
  • Bump vite from 3.2.0 to 3.2.7 (#8981) (dependabot)
  • Fix <AutocompleteArrayInput> 'custom options' story (#8983) (slax57)
  • [TypeScript] Fix <WithRecord> render prop type (#8993) (slax57)
  • [TypeScript] Fix FunctionField render function type expects a nullable record (#8963) (elstgav)
  • [Doc] Add <AutoSave> documentation (#8969) (fzaninotto)
  • [Doc] Add <TreeInput> and <ReferenceNodeInput> chapters (#8974) (fzaninotto)
  • [Doc] Better explain the type of getSource and scopedFormData in <FormDataConsumer> (#8979) (slax57)
  • [Doc] Fix broken link in Realtime documentation (#8991) (fzaninotto)
  • [Doc] Fix <ReferenceArrayInput> section about custom query filter (#8989) (fzaninotto)
  • [Doc] Fix <CreateInDialogButton> usage example (#8988) (slax57)
  • [Doc] Fix links to react-hook-form's doc (#8984) (slax57)
  • [Doc] Fix <Confirm> prop table overflows (#8985) (fzaninotto)
  • [Doc] Fix Remix tutorial mentions outdated postgrest adapter (#8982) (fzaninotto)
  • [Demo] Fix tag list on Mobile (#8975) (fzaninotto)

v4.11.1

  • Fix <AutocompleteInput> should not use matchSuggestion when in a <ReferenceInput> (#8956) (slax57)
  • Fix <ListView> should show custom empty component with partial pagination (#8945) (yanchesky)
  • [TypeScript] Fix inference errors in Field components (#8962) (fzaninotto)
  • [TypeScript] Fix regression in type of <FunctionField> render (#8964) (slax57)
  • [Doc] Add Next.js app router install instructions (#8965) (fzaninotto)
  • [Doc] Fix NextJS tutorial for the latest version of create-next-app (#8938) (djhi)
  • [Doc] Fix dataProvider.getList() response format error message does not take partial pagination into account (#8957) (yanchesky)
  • [Doc] Fix create-react-admin usage with npx (#8961) (fzaninotto)

v4.11.0

  • Add <WithListContext> component (#8917) (fzaninotto)
  • Expose setNotifications callback in <NotificationContext> to allow for a custom notifications center (#8914) (smeng9)
  • Add purifyOptions prop to <RichTextField> (#8905) (slax57)
  • Add queryOptions prop to <ReferenceField> (#8895) (WiXSL)
  • Add ability to default to dark mode when users prefer it (#8874) (fzaninotto)
  • Simplify form reset on record change, and forward supported props from useAugmentedForm to useForm (#8911) (slax57)
  • Fix useGetList default onSuccess throws when the query is disabled (#8941) (slax57)
  • Fix <SimpleForm> and <TabbedForm> do not sanitize the resetOptions prop (#8915) (slax57)
  • [TypeScript] Allow to provide the record type to fields and validate the source and sortBy prop (#8863) (djhi)
  • [TypeScript] Fix types that should accept a react-admin record (#8862) (djhi)

v4.10.6

  • Fix ra-language-french package.json to avoid including tsconfig (#8939) (djhi)
  • Fix create-react-admin adds unnecessary files (#8935) (djhi)
  • [TypeScript] Fix <Create> generic record type should not require an id field (#8923) (djhi)
  • [Doc] Fix tutorial with create-react-admin (#8934) (fzaninotto)
  • [chore] Update Storybook to v7 & Cypress to use Vite (#8936) (djhi)

v4.10.5

  • Fix create and edit controller's save callback should use calltime meta param (#8933) (slax57)
  • Fix create-react-admin does not include its templates (#8932) (djhi)

v4.10.4

  • Fix <DatagridConfigurable> inspector hides the wrong column when using empty children (#8929) (fzaninotto)
  • Fix <DatagridConfigurable> fails to render when using a Field with a label element (#8928) (fzaninotto)
  • Fix <TextField> and <RichTextField> don't translate the emptyText (#8924) (fzaninotto)
  • Fix <SaveButton> spinner while submitting (#8920) (fzaninotto)
  • [Doc] Fix video playback on iOS (#8922) (slax57)
  • [Doc] Fix <List disableSyncWithLocation> doc about persisting list params in the store (#8919) (fzaninotto)
  • [Doc] Document type parameter in generic hooks (#8916) (djhi)

v4.10.3

  • Fix <ReferenceField> link function is called with referencing record instead of referenced record (#8899) (djhi)
  • Fix ReferenceFieldView backwards compatibility (#8912) (djhi)
  • Fix create-react-admin requires node 16 (#8902) (fzaninotto)
  • [Typescript] Fix Layout's sidebar prop type (#8887) (smeng9)
  • [Doc] Add Advanced Tutorial about Custom Tags Selector (#8906) (slax57)
  • [Doc] Update Datagrid's isRowSelectable description and examples (#8901) (WiXSL)
  • [Doc] fix import statements in example code (#8896) (charlie-ac)
  • [Doc] add casdoor auth provider (#8894) (akriventsev)
  • [Doc] Add Supabase realtime adapter (#8893) (fzaninotto)
  • [Doc] Update tutorial to use create-react-admin (#8881) (djhi)

v4.10.2

  • Fix custom redirect in pessimistic <Edit> or <Create> when using warnWhenUnsavedChanges (#8882) (slax57)
  • Fix create-react-admin package manifest (#8888) (djhi)
  • [Doc] Fix <Menu.ResourceItem> example should use the name prop (#8886) (septentrion-730n)
  • [Doc] Update DataProvider List with ra-strapi-rest v4 (#8865) (nazirov91)

v4.10.1

  • Republish all packages, including the create-react-admin installer (fzaninotto)

v4.10.0

Note: This release wasn't published to npm, use version 4.10.1 or higher.

  • Add create-react-admin installer (#8833) (djhi)
  • Add <InfiniteList> and <InfinitePagination> components (#8781) (fzaninotto)
  • Add ability to change the sort, filter and selection of <ArrayField> (#8802) (fzaninotto)
  • Add ability to configure the remove icon of <FileInputPreview> (#8756) (PennyJeans)
  • Fix <Datagrid> does not apply className to its root element (minor BC) (#8804) (slax57)
  • Fix useHandleCallback sometimes causes infinite redirection loop (#8861) (djhi)
  • Fix <AppBar alwaysOn> hides sidebar menu on scroll (#8856) (slax57)
  • Fix <SimpleFormIterator> new item's fields default empty string instead of null (#8792) (kriskw1999)
  • [Doc] Fix reference to Material UI (#8857) (oliviertassinari)
  • [Doc] Fix Show documentation misses the aside prop (#8855) (fzaninotto)
  • [Doc] Convert GIF files to WebM (#8767) (slax57)
  • [TypeScript] Add some utilities to improve generics (#8815) (IAmVisco)
  • [TypeScript] Improve useRedirect and useCreatePath types (#8811) (djhi)

v4.9.4

  • Fix GraphQL data provider when using different a custom credential type (#8847) (@rlucia)
  • Fix <AppBar> title disappears on locale change (#8846) (@slax57)
  • Fix empty <ImageField> does not apply sx prop (#8850) (@RoBYCoNTe)
  • [Doc] Replace codesandbox links by stackblitz for issue reproduction (#8853) (@slax57)
  • [Doc] Fix examples of custom UserMenu items across the docs to support keyboard navigation (#8837) (@smeng9)
  • [Doc] Fix WithRecord usage in Datagrid to remind the label requirement (#8851) (@fzaninotto)
  • [Doc] Add more details about useDefineAppLocation in the MultiLevelMenu docs (#8841) (@slax57)
  • [TypeScript] Fix <Button> should accept user defined Material UI color palettes as color prop (#8832) (@septentrion-730n)
  • [TypeScript] Fix <DateField> props types (#8844) (@elstgav)

v4.9.3

  • Fix useInput callbacks are mutable (#8824) (@fzaninotto)
  • Fix <Form> should only trigger field validation on submit if not told otherwise (#8826) (@slax57)
  • Fix <ReferenceOneField> shows wrong sort order when used in a <Datagrid> (#8825) (@fzaninotto)
  • Fix <Datagrid rowClick> PropTypes (#8823) (@slax57)
  • [Doc] Fix typo in EditGuesser (#8834) (@thatzacdavis)
  • [Doc] Improve usage examples for <ReferenceInput> and <ReferenceArrayInput> (#8821) (@fzaninotto)

v4.9.2

  • Fix addRefreshAuthToAuthProvider should not try to call getIdentity if it does not exist on the original AuthProvider (#8810) (djhi)
  • Fix editorProps prop is ignored in <RichTextInput> (#8809) (ArnaudD)
  • Fix useReferenceArrayInputController does not pass meta to getMany (#8803) (djhi)
  • Fix <FilterForm> infinite loop when used in a <ReferenceManyField> (#8800) (fzaninotto)
  • Fix layout padding inconsistency on low resolution screens (#8794) (soullivaneuh)
  • [Doc] Fix various markdown syntax warnings causing incorrect HTML (#8818) (fzaninotto)
  • [Doc] Update chinese(zh) locale package (#8813) (haxqer)

v4.9.1

v4.9.0

  • Add ability to pass null to TrueIcon or FalseIcon in <BooleanField> (#8760) (slax57)
  • Improve AppBar Customization (#8681) (fzaninotto)
  • Allow to customize how <FilterListItem> applies filters (#8676) (djhi)
  • Introduce withRefreshAuth (#8574) (djhi)
  • Add ability to change <SelectArrayInput>'s size prop and fix outlined variant (#8562) (amilosmanli)
  • Add server side validation support (#7938) (djhi)
  • Add a codesandbox config for the tutorial (#8753) (djhi)
  • Fix <ReferenceManyCount> rendering link incorrectly (#8752) (oleg-semyonov)
  • [Doc] Update grammar in README.md (#8747) (tylertyssedal)
  • [Doc] Fix useRecordContext explanation for forms (#8743) (fzaninotto )
  • [Doc] Add Directus data and auth providers (#8759) (djhi)

We released ra-directus that contains a DataProvider and an AuthProvider to work with Directus.

We also released new landing pages for both React-admin and the Enterprise Edition. Check them out!

v4.8.4

  • Include the to prop in memoization check of <CreateButton> and <ShowButton>. (#8741) (djhi)
  • Fix graphql global introspection caching. (#8740) (djhi)
  • Fix <Count> and <ReferenceManyCount> should allow to override the default sort. (#8732) (slax57)
  • [Doc] Add AuthProvider and DataProvider for SurrealDB. (#8739) (djedi23 )
  • [Doc] Fix missing await in fetchJson doc. (#8733) (slax57)

v4.8.3

  • Fix <FilterFormInput> should not override its children's size if they provide one explicitly (#8693) (slax57)
  • Fix <ReferenceInput> throws an error when referencing the same resource as <Edit> and the reference is undefined (#8719) (slax57)
  • Fix some components are translating labels twice (#8700) (djhi)
  • Fix <SelectArrayInput> does not display its label correctly in outlined variant (#8705) (sebastianbuechler)
  • Fix <UrlField> click should cancel Datagrid's row click (#8708) (slax57)
  • [Doc] Better document <ReferenceManyField>'s source prop (#8726) (slax57)
  • [Doc] add Strapi v4 provider (#8725) (garridorafa)
  • [Doc] Add documentation for fetchJson (#8712) (slax57)
  • [Doc] Fix documentation regarding <RecordContextProvider> usage (#8716) (postor )
  • [Doc] Improve <Confirm> documentation (#8711) (fzaninotto)
  • Use Vite for the CRM demo (#8696) (djhi)

v4.8.2

  • Fix <Labeled> ignores fullWidth when label is false (#8689) (slax57)
  • Fix <AutocompleteInput> when record has a different shape between getList and getMany (#8687) (slax57)
  • Fix <Configurable> elements don't allow to edit a text field (#8682) (fzaninotto)
  • Fix <DatagridConfigurable> column ordering feature does not work in Firefox (#8673) (slax57)
  • [Typescript] Fix <Datagrid rowClick> type and documentation (#8677) (djhi)
  • [TypeScript] Add type to downloadCSV function (#8686) (zhujinxuan)
  • [Doc] Add ra-auth-msal to the authProvider list (#8703) (slax57)
  • [Doc] Fix typo in Vite documentation (#8692) (djhi)
  • [Doc] Add global definition to the Vite example, and offer to install the Roboto font locally (#8680) (slax57)
  • [Doc] Fix <MenuItem> example usage in Upgrade guide (#8678) (WiXSL)
  • [Doc] Add troubleshooting section to the Routing chapter (#8669) (fzaninotto)
  • [Demo] Remove Webpack bundler in simple example (#8694) (djhi)

v4.8.1

  • Fix <Notification> raises a Material UI warning when message is a string (#8666) (slax57)
  • Fix <ArrayField> breaks when value is null (#8659) (slax57)
  • Fix <SimpleForm> save toolbar hides content on mobile (#8656) (fzaninotto)
  • [TypeScript] Fix bad type deprecation on onError type (#8668) (djhi)
  • [TypeScript] Fix bad casing on onError type (#8667) (djhi)
  • [Doc] Explain <ReferenceOneField> usage with one-to-many relationships (#8660) (fzaninotto)
  • [Doc] Fix Remix installation instructions to avoid react-router error (#8655) (fzaninotto)
  • [Doc] Fix typos, snippets and file extensions in Tutorial (#8607) (erikvanderwerf)
  • [Doc] Improve <CheckboxGroupInput translateChoice> code example (#8657) (WiXSL)
  • [Demo] Fix Datagrid shows gutter on last row (#8661) (slax57)

v4.8.0

  • Add ability for <List> children to handle the empty state (#8585) (djhi)
  • Add ability to override available routes for a <Resource> (#8640) (slax57)
  • Add support for <ExportButton meta> and <BulkExportButton meta> (#8636) (fkowal)
  • Add ability to use a React Node as useNotify message (#8580) (fzaninotto)
  • Add ability for <Datagrid isRowSelectable> to show a disabled checkbox for unselectable rows (#8650) (WiXSL)
  • Improve performance by memoizing mutation callbacks (#8526) (rkfg)
  • Fix shouldUnregister prop used in an Input logs a DOM warning (#8653) (fzaninotto)
  • Fix <CheckboxGroupInput helperText> placement and color (#8652) (fzaninotto)
  • Fix useList filter option not working with nested objects (#8646) (WiXSL)
  • [TypeScript] Make <FormDataConsumer> generic (#8389) (Gabriel-Malenowitch)
  • [Doc] Add section in <Breadcrumb> documentation about nested resources (#8648) (fzaninotto)
  • [Doc] Fix useMutation usage examples use the wrong syntax (#8647) (WiXSL)

v4.7.6

This release contains a security fix. You must upgrade to this version if you use <RichTextField> with rich text data that isn't sanitized server-side.

  • [Security] Fix XSS vulnerability in <RichTextField> (#8644) (fzaninotto)
  • Fix <FilterForm> cannot clear filter with complex object value (#8637) (slax57)
  • [Doc] Add <StackedFilters> chapter (#8631) (fzaninotto)

v4.7.5

  • Fix <FileInput> label color (#8625) (fzaninotto)
  • Fix cannot override <CreateButton> and <EditButton> style with a theme (#8624) (IAmVisco)
  • Fix ra-input-rich-text dependencies on tiptap (#8622) (slax57)
  • [Doc] Fix useList with useGetList example (#8634) (slax57)
  • Bump http-cache-semantics from 4.1.0 to 4.1.1 (#8620) (dependabot)

v4.7.4

v4.7.3

  • Fix <AutocompleteArrayInput> when value is not an array (#8608) (djhi)
  • Fix <NumberInput> should support entering a decimal number with a transitory invalid value (#8610) (slax57)

v4.7.2

  • Fix useGetManyAggregate error when ids is not an array (#8603) (djhi)
  • Fix <AutocompleteInput> when multiple is true and value is not an array (#8602) (djhi)
  • Fix <SelectArrayInput> error when value is not an array (#8601) (djhi)
  • Fix <AutocompleteInput> flickers inside <ReferenceInput> (#8599) (djhi)
  • [Doc] Fix typo in <Search> example (#8579) (AdamMcquiff)
  • [Doc] Add Features chapter (#8598) (fzaninotto)
  • [Doc] Add illustration to list and edit tutorials (#8588) (fzaninotto)
  • [Doc] Add HelpDesk demo (#8583) (fzaninotto)
  • Bump ua-parser-js from 0.7.31 to 0.7.33 (#8600) (dependabot)

v4.7.1

  • Fix <LoginForm> logs a warning in latest Chrome (#8559) (fayazpn)
  • [Doc] Add new authProviders (auth0, cognito) (#8558) (djhi)
  • [Doc] Fix typos in v4 Upgrade instructions (#8577) (harryghgim)
  • [Doc] Fix <AutoCompleteArrayInput> doc about disableCloseOnSelect (#8569) (TurtIeSocks)
  • [Doc] Fix various typos (#8568) (WiXSL)
  • [Doc] Fix missing <Show disableAuthentication> prop description (#8565) (septentrion-730n)
  • [Doc] Fix Data Providers doc about typed fetchJson utility (#8563) (slax57)
  • [TypeScript] Fix <DatagridRowR rowClick> type (#8561) (stesie)
  • Bump json5 from 1.0.1 to 1.0.2 dependenciesPull requests that update a dependency(#8552) (dependabot)

v4.7.0

  • Add lifecycle callbacks (beforeDelete, afterUpdate, etc.) to facilitate dataProvider customization (#8511) (fzaninotto)
  • Add <Count> and <ReferenceManyCount> components (#8492) (fzaninotto)
  • Add /login-callback route and new optional authProvider.handleLoginCalback() method (#8457) (djhi)
  • Add ability to set anchorOrigin in useNotify (#8541) (fzaninotto)
  • Add ability to pass multiple children to <List> and <Create> (#8533) (fzaninotto)
  • Add <TabbedForm.Tab> and <TabbedShowLayout.Tab> shortcuts (#8525) (fzaninotto)
  • Add ability to pass a tab count in <TabbedForm.Tab> and <TabbedShowLayout.Tab> (#8543) (fzaninotto)
  • Add data sharing across tabs in ra-data-local-storage (#8542) (fzaninotto)
  • Fix <AutocompleteInput create> does not support nested optionText (#8556) (slax57)
  • Use react-query for useAuthState and useAuthenticated (#8496) (djhi)
  • Deprecate usePermissionsOptimised (#8521) (fzaninotto)
  • [TypeScript] Add ability to extend the authProvider (#8551) (djhi)
  • [Doc] Add Realtime documentation (#8555) (fzaninotto)
  • [Doc] Add <DataTimeInput> section about how to build a parse function (#8553) (slax57)
  • [Doc] Fix instructions for setting up a redirection url for third-party auth (#8494) (fzaninotto)

4.6.3

  • Fix <ListGuesser> links to Edit view even though there is only a ShowView (#8546) (WiXSL)
  • Fix notifications with type 'warning' should use the warning text color from the Material UI palette (#8532) (Seojun-Park)
  • Fix notifications with type 'warning' should use the warning color from the Material UI palette (#8519) (Seojun-Park)
  • [Doc] Improve Index/Reference page (#8550) (fzaninotto)
  • [Doc] Improve <Search> usage documentation (#8527) (fzaninotto)
  • [Doc] Fix <ContainerLayout> is hard to find (#8547) (fzaninotto)
  • [Doc] Fix Theming doc does not mention limitations of custom error page (#8538) (slax57)
  • [Doc] Fix <XXXInput helperText> description to explain that it cannot be used inside a filter (#8531) (slax57)
  • [Doc] Fix useList hook doc contains wrong examples (#8524) (fzaninotto)
  • [Doc] Fix <ImageInput accept> prop examples (#8514) (slax57)
  • [Doc] Show nav sidebar on main navigation page (#8461) (fzaninotto)

4.6.2

  • Fix <ReferenceArrayInput> and <AutoCompleteInput> when identifiers have the wrong type (#8500) (septentrion-730n)
  • Fix warnWhenUnsavedChanges when navigating to the Show view (#8512) (slax57)
  • Fix useGetIdentity throws an error when no authProvider.getIdentity is defined (#8509) (slax57)
  • Fix <Datagrid> positioning of bulk action buttons (#8504) (fzaninotto)
  • Fix incorrect <Ready> page when dynamically load routes with no resources (#8490) (smeng9)
  • Fix <Ready> page points to the wrong documentation URL (#8495) (fzaninotto)
  • [TypeScript] Fix return type of useShowContext, useEditContext, and useCreateContext (#8497) (fzaninotto)
  • [TypeScript] Fix useReferenceManyFieldController argument type (#8491) (fzaninotto)
  • [Doc] Fix <LocalesMenuButton>'s custom AppBar example and polyglotI18nProvider documentation (#8452) (smeng9)
  • [Doc] Fix <Menu> donc contains invalid code example (#8502) (Aikain)
  • [Doc] Fix <Menu> example misses JSX closing tag (#8493) (the133448)
  • Bump express from 4.16.4 to 4.17.3 (#8487) (dependabot)

4.6.1

  • Fix <SelectColumnsButton referenceKey> prop handling (#8432) (wcoppens)
  • Fix <TextInput> missing placeholder with Material UI v5.4 (#8439) (kosmotema)
  • Fix <ResourceMenuItem> throws an error when used with only <Resource> as <Admin> children (#8473) (slax57)
  • Fix useReferenceInputController does not pass meta to useReference (#8477) (stesie)
  • Fix ra-input-richtext TipTap dependencies on prosemirror (#8470) (slax57)
  • Fix setSubmissionErrors contains unused code (#8482) (slax57)
  • [Doc] Fix <Datagrid> doc contains invalid code example (#8474) (Aikain)
  • [Doc] Fix <ArrayInput> preview misses clear all button (#8467) (slax57)
  • [TypeScript] Fiw TranslationMessages missing types (#8462) (Aikain)
  • Bump decode-uri-component from 0.2.0 to 0.2.2 dependenciesPull requests that update a dependency file (#8460) (dependabot)

4.6.0

  • Add UI to reorder fields in <DatagridConfigurable> and <SimpleFormConfigurable> (#8416) (fzaninotto)
  • Add <SimpleFormConfigurable> component (#8395) (fzaninotto)
  • Add <Menu.ResourceItem> component to facilitate menu customization (#8392) (fzaninotto)
  • Add "clear all" button in <SimpleFormIterator> (#8302) (Seojun-Park)
  • Add ability to refresh the user identity in useGetIdentity (#8372) (fzaninotto)
  • Add <ReferenceOneField queryOptions> support (#8348) (fzaninotto)
  • Add support for GraphQL v16 in ra-data-graphql (#8421) (arjunyel)
  • Fix <SavedQueryFilterListItem> sets wrong value for displayedFilters query parameter (#8459) (groomain)
  • Fix <ToggleThemeButton> requires an extra click when initial value is dark (#8455) (septentrion-730n)
  • Fix<NumberInput parse> parses 0 as string (#8454) (slax57)
  • Fix <NumberInput format> does not get triggered after function change (#8453) (smeng9)
  • Fix <ArrayInput> doesn't allow null as value (#8449) (WiXSL)
  • Fix <ResettableTextfield> does not show focus on clear buttons (#8447) (septentrion-730n)
  • Fix <FormDataConsumer> usage with Field children (#8445) (WiXSL)
  • Fix <UserEdit> save usage in simple example (#8435) (WiXSL)
  • Fix useFormGroup isDirty / isTouched state cannot have non-boolean values (#8433) (WiXSL)
  • [Doc] Fix <Datagrid> expand screen capture with expand all button (#8456) (slax57)
  • [Doc] Fix useEditContext example typo (#8444) (guilbill)

v4.5.4

  • Fix <NumberInput> applies format and parse twice (#8442) (fzaninotto)
  • [TypeScript] Fix <ReferenceArrayInput> props type marks children as required (##8440) (fzaninotto)

v4.5.3

  • Fix <TabbedFormView toolbar> prop type validation (#8436) (kosmotema)
  • Fix <NumberInput> does not pass format and parse props to useInput (#8422) (WiXSL)
  • Fix <NumberInput> does not show helperText with an onBlur prop and mode='onBlur' (#8403) (WiXSL)
  • Fix <SelectInput> does not sanitize the shouldUnregister prop (#8413) (WiXSL)
  • Fix <SimpleForm> and <TabbedForm> use outdated prop types (#8414) (WiXSL)
  • [Doc] Fix <AutocompleteInput> wrongly references react-autosuggest props (#8424) (WiXSL)
  • [Doc] Fix <SelectColumnsButton> usage example in List view (#8417) (WiXSL)
  • [Doc] Fix useList filterCallback prop description (#8404) (WiXSL)
  • [Doc] Fix <FormDataConsumer> usage example for <SimpleFormIterator> (#8359) (WiXSL)
  • [Doc] Fix Vite tutorial misses Roboto font (#8419) (WiXSL)
  • [Doc] Fix Vite tutorial CSS setup (#8415) (WiXSL)
  • [Doc] Fix Next.js tutorial uses CamelCase for folder name (#8437) (jayenashar)

v4.5.2

  • Fix authProvider hooks support for redirectTo: absolute URL (#8382) (fzaninotto)
  • Fix authProvider hooks support for redirectTo: false (#8381) (fzaninotto)
  • Fix <FormDataConsumer> values not being up-to-date on mount (#8340) (WiXSL)
  • Fix <DatagridConfigurable> ignores children without label or source (#8376) (WiXSL)
  • Fix <SelectColumnsButton> styles (#8391) (WiXSL)
  • Bump loader-utils from 1.4.1 to 1.4.2 dependenciesPull requests that update a dependency file(#8396) (dependabot)
  • [Doc] Fix <FilterList> example and anchor (#8401) (WiXSL)
  • [Doc] Fix useReference hook docs (#8385) (WiXSL)
  • [Doc] Fix <AutocompleteInput optionText> defaultValue (#8386) (WiXSL)
  • [Doc] Fix missing error type in useNotify (#8398) (septentrion-730n)
  • [Doc] Improve server side validation example (#8378) (WiXSL)
  • [Doc] Add mention about asterix decoration in required inputs (#8383) (fzaninotto)
  • [Doc] Add AppWrite data provider (#8399) (fzaninotto)

4.5.1

  • Fix <RichTextInput> cursor moves to the end while typing (#8365) (WiXSL)
  • Fix <SelectColumnsButton> not being responsive (#8362) (WiXSL)
  • Fix <Appbar> buttons don't have consistent spacing (#8356) (fzaninotto)
  • Fix <BulkDeleteButton> doesn't clear selection when used inside <ReferenceManyField> (#8358) (fzaninotto)
  • Fix <ReferenceManyField> does not show pagination when using partial pagination (#8354) (fzaninotto)
  • Fix typo in ra-language-french translations (#8349) (asurare)
  • Fix Inputs layout is broken when rendering the Login page first (#8368) (fzaninotto)
  • Fix no-code example codesandbox (#8352) (fzaninotto)
  • Bump loader-utils from 1.4.0 to 1.4.1 (#8371) (dependabot)
  • [Doc] Add missing <Admin notification> prop (#8369) (WiXSL)
  • [Doc] Add <InspectorButton> documentation (#8346) (smeng9)
  • [Doc] Update the tutorial to use Vite instead of create-react-app (#8351) (fzaninotto)
  • [Demo] Fix demos use different versions of Vite (#8345) (fzaninotto)

v4.5.0

  • Add <SelectColumnsButton> and <DatagridConfigurable> components (#8274) (fzaninotto)
  • Add support for <ReferenceArrayInput queryOptions> (#8339) (WiXSL)
  • Add the ability to use <ReferenceArrayInput> without child (#8332) (fzaninotto)
  • Add support for <ReferenceOneField> sort and filter props (#8306) (nicgirault)
  • Add <CSSBaseline> to the default layout for better UI (#8216) (fzaninotto)
  • Fix <SelectInput> throws cannot read property map of undefined error on undefined choices (#8309) (thdk)
  • Fix <AutocompleteInput> should only add an empty option when there is an emptyText (#8305) (WiXSL)
  • Fix <AutocompleteInput> does not repopulate suggestions on blur in when used inside <ReferenceInput> (#8303) (slax57)
  • Fix <AutocompleteInput validate={required()}> displays empty choice (#8296) (slax57)
  • Fix <RadioButtonGroupInput options> prop was ignored (#8299) (fzaninotto)
  • Fix <AutocompleteArrayInput> shows undefined on blur (#8331) (fzaninotto)
  • Fix <CheckboxGroupInput labelPlacement> prop throws a DOM error (#8294) (WiXSL)
  • Fix <CheckboxGroupInput options> prop is ignored (#8291) (fzaninotto)
  • Fix <FilterList> custom label raises a missing translation key warning (#8325) (slax57)
  • Fix <ListButton> doesn't show "Remove all filters" item when using alwaysOn filters (#8324) (WiXSL)
  • Fix <List> page display on dataProvider error (#8319) (WiXSL)
  • Fix <RichTextInput> doesn't update when record field updates (#8314) (WiXSL)
  • Fix localStorageStore deletes non-react-admin items on version change (#8315) (fzan)
  • Bump terser from 5.10.0 to 5.15.1 (#8323) (dependabot)
  • Bump ansi-regex from 4.1.0 to 4.1.1 (#8321) (dependabot)
  • [Doc] Add <ContainerLayout> and <HorizontalMenu> documentation (#8342) (fzaninotto)
  • [Doc] Add Discord server reference in the issue template (#8298) (WiXSL)
  • [Doc] Add tutorial about changing the form validation mode (#8307) (slax57)
  • [Doc] Add example API calls to ra-data-simplerest (#8301) (fzaninotto)
  • [Doc] Fix JsDoc snippets to access record from context instead of props (#8337) (WiXSL)
  • [Doc] Fix examples to access record and id from context instead of props (#8335) (WiXSL)
  • [Doc] Fix Theming typos (#8334) (WiXSL)
  • [Doc] Fix Vite tutorial default style (#8333) (fzaninotto)
  • [Doc] Fix anchors and typos (#8330) (WiXSL)
  • [Doc] Fix Tutorial to better explain component composition (#8327) (fzaninotto)
  • [Doc] Fix <AutocompleteArrayInput> doc (#8322) (fzaninotto)
  • [Doc] Fix Input docs (#8316) (fzaninotto)
  • [Doc] Fix Store snippet about versionning (#8313) (fzan)
  • [Doc] Fix navigation panel version in 404 page (#8311) (slax57)
  • [Doc] Fix typo in useListContext and useChoicesContext hooks (#8310) (cinaaaa)
  • [Doc] Fix typo in Create chapter mentioning the <TextInput multiline> prop (#8290) (thdk)
  • [Doc] Fix Forms documentation to clarify incompatibility of <SaveButton type='button'> with custom Form's onSubmit (#8286) (WiXSL)
  • [Demo] Move e-commerce demo from webpack to vite (#8317) (fzaninotto)

v4.4.4

  • Fix <ArrayInput> throws an error when providing a helperText (#8276) (slax57)
  • Fix <ArrayInput> makes edited form always dirty on input blur (#8275) (WiXSL)
  • Fix label position config in <CheckboxGroupInput> (#8260) (zhujinxuan)
  • Fix warnWhenUnsavedChange crashes the app when using react-router >= 6.4 (#8272) (fzaninotto)
  • Fix useGetRecordId missing export (#8283) (WiXSL)
  • [Doc] Fix missing upgrade information about <Field> in <SimpleForm> (#8280) (clement-escolano)
  • [Doc] Add <CreateInDialogButton>, <EditInDialogButton> and <ShowInDialogButton> to docs (#8271) (slax57)
  • [Doc] Fix links to <EditInDialogButton> and <CreateInDialogButton> (#8284) (fzaninotto)
  • Bump prismjs from 1.25.0 to 1.27.0 (#8268) (dependabot)
  • Bump node-forge from 1.2.1 to 1.3.1 (#8267) (dependabot)
  • Bump async from 2.6.3 to 2.6.4 (#8266) (dependabot)

v4.4.3

  • Fix <Loading> component doesn't translate messages (#8269) (WiXSL)
  • [Doc] Fix typos in Input chapter (#8270) (WiXSL)

v4.4.2

  • Fix null value support in inputs (#8262) (slax57)
  • Fix <AutocompleteInput> doesn't allow clearing the inputs in certain scenarios (#8238) (WiXSL)
  • Fix <Loading> displays translation messages even though it should not (#8261) (alioguzhan)
  • Fix <Loading> message contains trailing dot (#8257) (alioguzhan)
  • Fix internal code workflow for tighter permissions (#8253) (slax57)
  • [Doc] Add ra-keycloak authProvider (#8263) (slax57)
  • [Doc] Fix missing filterToQuery prop in <AutocompleteInput> and <AutocompleteArrayInput> components (#8251) (WiXSL)

v4.4.1

  • Fix format and parse on <AutocompleteInput> and <SelectInput> (#8237) (byymster)
  • Fix <SelectInput> and <AutocompleteInput> change empty references (#8234) (fzaninotto)
  • Fix <SelectInput emptyValue> accepts null value (#8235) (fzaninotto)
  • Fix <RadioButtonGroupInput> inside <ReferenceInput> when reference ids are numbers (#8229) (slax57)
  • Fix useEditController returns wrong redirectTo value (#8243) (WiXSL)
  • Fix <Datagrid>'s ExpandAllButton conflicts with expandSingle prop (#8221) (WiXSL)
  • Fix development dependencies causing security alerts (#8230) (fzaninotto)
  • Fix <ReferenceInput> story contains a non-story (#8228) (WiXSL)
  • Fix missing test for <SimpleFormIterator> (#8215) (WiXSL)
  • [TypeScript] Fix useCreateController parameter type for onError effect (#8242) (WiXSL)
  • [TypeScript] Fix unused TranslationMessage (#8223) (bicstone)
  • [Doc] Fix <RichTextInput> example (#8245) (WiXSL)
  • [Doc] Fix <RichTextInput> toolbar customization example (#8239) (WiXSL)
  • [Doc] Fix <List perPage> doc misses mention of <Pagination rowsPerPages> relationship (#8244) (WiXSL)
  • [Doc] Fix Upgrade guide typo (#8240) (WiXSL)
  • [Doc] Fix CHANGELOG (#8219) (WiXSL)

v4.4.0

  • Add <Configurable> components, make <SimpleList> accept template strings (#8145) (fzaninotto)
  • Add useInfiniteGetList hook (#8063) (arimet)
  • Add sanitizeEmptyValues prop to Form components to replace empty values by null (#8188) (fzaninotto)
  • Add emptyText and emptyValue support in <AutocompleteInput> (#8162) (WiXSL)
  • Add cache to usePermissions (#8196) (hiaselhans)
  • Add ability to create independent store configurations for different lists of same resource (#8073) (septentrion-730n)
  • Add emptyText translation on Field components (#8132) (oguhpereira)
  • Add ra-data-local-forage data provider (#7959) (arimet)
  • Add queryOptions support in <ReferenceInput> (#8192) (WiXSL)
  • Add better UI to <SimpleFormIterator> (#8124) (fzaninotto)
  • Add expand/collapse all toggle to <Datagrid> header (#8152) (hiaselhans)
  • Add submit event as second argument of <Form> submit handler (#8199) (djhi)
  • Add ability to have custom dataProvider method that don't return a data object (#8159) (oguhpereira)
  • Add ability to set custom routes as <Resource> children (#8079) (hiaselhans)
  • Add support for getLocales in Polyglot i18nProvider (#8143) (fzaninotto)
  • Add support for filter callbacks in useList (#8116) (oguhpereira)
  • Add ability to hide saved queries in <FilterButton> (#8113) (oguhpereira)
  • Add useGetRecordId hook to make react-admin components more versatile (#8103) (arimet)
  • Fix null values cause warning in forms (#8212) (fzaninotto)
  • Fix <SimpleFormIterator> defaultValues when adding a record (#8204) (WiXSL)
  • Fix <ReferenceField> generates a link even though there is nothing to link to (#8202) (thibault-barrat)
  • Fix <FormTab> not turning red after <ArrayInput> global validation error (#8198) (thibault-barrat)
  • Fix warning in Field components (#8158) (fzaninotto)
  • Update Cypress to 10.9.0 (#8211) (arimet)
  • [TypeScript] Fix <Layout> misses sx prop (#8209) (djhi)
  • [TypeScript] Fix useDelete id type doesn't use generic type (#8208) (zhujinxuan)
  • [Doc] Fix outdated tip related to unsupported feature in Server Side validation (#8205) (WiXSL)
  • [Doc] Fix broken links in Show documentation (#8203) (LabisAnargyrou)
  • [Doc] Add useGetRecordId section (#8107) (arimet)

v4.3.4

  • Fix <SimpleForm> does not sanitize react-hook-form props (#8186) (WiXSL)
  • Fix <ReferenceInput> fetching error makes <AutocompleteInput> unusable (#8183) (fzaninotto)
  • Fix cannot let anonymous users access dashboard (#8180) (fzaninotto)
  • Fix <Datagrid> error when queryOptions contains enable: false (#7987) (yanchesky)
  • [Doc] Fix <FormDataConsumer> usage example (#8189) (WiXSL)
  • [Doc] Add community page (#8187) (fzaninotto)
  • [Doc] Fix "Linking two inputs" code snippet (#8184) (fzaninotto)
  • [Doc] Fix Custom Filter Form example (#8177) (WiXSL)
  • [Doc] Fix linkType prop doc for <SimpleList> and <SingleFieldList> (#8171) (riexn)

v4.3.3

  • Fix <Confirm> doesn't pass props to the underlying Material UI <Dialog> component (#8176) (WiXSL)
  • Fix performance issue in useGetList and useGetManyReferences (#8174) (djhi)
  • Fix localStorageStore.reset() does not remove all items (#8161) (fzaninotto)
  • [Doc] Fix upgrade doc mentions wrong syntax for <Admin layout> prop (#8169) (herndlm)
  • [doc] Fix custom layout examples miss props forwarding (#8170) (herndlm)
  • [Doc] Fix Input chapter example about sanitizing empty values (#8167) (Cimanel)
  • [Doc] Fix missing import in Routing chapter (#8164) (herndlm)
  • [Doc] Fix useDelete usage in JSDoc (#8160) (slax57)

v4.3.2

  • Fix useFormState sometimes returns outdated state (#8138) (WiXSL)
  • Fix <ArrayInput> not showing validation error message (#8154) (WiXSL)
  • Fix <FileInput> and <ImageInput> not showing validation error message (#8150) (WiXSL)
  • Fix <AppBar className> prop is ignored (#8148) (WiXSL)
  • Fix <ReferenceManyField> row selection is shared for a given resources (#8149) (WiXSL)
  • Fix useNotify() triggers useless rerenders (#8136) (fzaninotto)
  • Fix <AutocompleteInput> does not allow zero as value (#8144) (WiXSL)
  • [Doc] Add documentation for the <SavedQueriesList> component (#8157) (fzaninotto)
  • [Doc] Fix tutorial about sanitizing empty values (#8156) (fzaninotto)
  • [Doc] Fix Theming doc mentions old syntax of <Menu.Item> (#8137) (fzaninotto)

v4.3.1

  • Fix <SelectInput> reorders choices by id (#8135) (fzaninotto)
  • Fix global validation not firing after submit with <ArrayInput> (#8118) (slax57)
  • Fix useGetManyAggregate throws "filter is not a function" when getting 401 (#8131) (matthieuMay)
  • Fix <AutocompleteInput clearOnBlur> has no effect (#8123) (WiXSL)
  • Fix dataProvider hooks do not handle pageInfo when updating getList query cache (#8105) (slax57)
  • Fix guesser for of <ReferenceField> and <ReferenceArrayField> do not use recordRepresentation (#8104) (fzaninotto)
  • Fix useGetList's onSuccess side effect overriding internal one (#8102) (slax57)
  • [Doc] Fix ambiguity about <ReferenceInput> label prop (#8128) (fzaninotto)
  • [Doc]: Fix ra-rbac links (#8127) (slax57)
  • [Doc] Fix code error in usage example of ra-data-local-storage README (#8122) (rnllv)
  • [Doc] Fix outdated link to ra-data-postgrest data provider (#8111) (scheiblr)
  • [Doc] Fix <ReferenceArrayField> doc to use a child-less syntax first (#8117) (fzaninotto)
  • [Doc] Fix package name for <JsonSchemaForm> (#8106) (arimet)
  • [Doc] Fix typo in <ReferenceField emptyText> documentation (#8112) (LabisAnargyrou)
  • [Doc] Fix <TabbedForm> chapter to explain how to force scrollable variant (#8109) (arimet)

v4.3.0

v4.2.8

  • Fix <ArrayInput> doesn't support scalar values (#8090) (fzaninotto)
  • Fix <CoreAdmin store> prop is ignored (#8088) (fzaninotto)
  • Fix <Notification multiLine> prop is ignored (#8078) (arimet)
  • Fix <ImageInput> includes useless class names (#8066) (thibault-barrat)
  • [TypeScript] Add resettable prop to SelectInputProps (#8071) (thibault-barrat)
  • [Doc] Fix upgrade guide still mentioning <TextInput transform> pop (#8089) (Cimanel)
  • [Doc] Fix typos in <ReferenceArrayField> doc (#8087) (zackha)
  • [Doc] Fix typos in migration to v4 guide (#8084) (Cimanel)
  • [Doc] Add WooCommerce in available DataProvider list (#8081) (zackha)
  • [Doc] Add Express & Mongoose in available DataProvider list (#8076) (NathanAdhitya)
  • [Doc] Fix installation instructions in tutorial project (#8074) (zackha)
  • [Doc] Fix missing label prop in <ReferenceInput> and <ReferenceArrayInput> docs (#8068) (thibault-barrat)

v4.2.7

v4.2.6

v4.2.5

v4.2.4

v4.2.3

  • Fix: Can't un-toggle filter through secondary action button in aside list (#7982) (septentrion-730n)
  • Fix: useChoicesContext props should take precedence over context (#7967) (djhi)
  • Fix: individually import lodash modules to reduce bundle size (#7962) (Jkker)
  • Fix: <Pagination> cannot be used outside a ListContext (#7956) (fzaninotto)
  • Fix: security alerts on development packages (#7953) (fzaninotto)
  • [TypeScript] Fix <Admin> used with function child and fragment does not compile (#7981) (fzaninotto)
  • [doc] Fix UserMenu customization documentation (#7979) (ApolloRisky)
  • [chore] Update lerna (#7951) (fzaninotto)

v4.2.2

  • Fix <AppBar> jiggles when scrolling down rapidly (#7947) (fzaninotto)
  • Fix <BulkDeleteWithConfirmButton> does not work when mutationMode is undoable (#7948) (fzaninotto)
  • [Doc] Fix <EditBase> and useEditController unsupported record prop (#7950) (fzaninotto)
  • [Doc] Fix <AutocompleteInput> choices description (#7949) (fzaninotto)
  • [Doc] Fix Upgrade guide mentions incorrect import in "Removed connected-react-router" section (#7945) (Matra-Master)
  • [Doc] Missing import in custom routes documentation (#7941) (septentrion-730n)

4.2.1

  • Fix warnings in <Menu> (#7931) (djhi)
  • Fix Stick menu to top when <AppBar> is collapsed (#7930) (septentrion-730n)
  • Fix ra-data-simple-rest create does not return server data (#7925) (dylanlt)
  • Fix <AutocompleteInput> should show options after selection (#7909) (djhi)
  • Fix <AutocompleteInput> create text is undefined when using a function as optionText (#7908) (septentrion-730n)
  • Fix <ArrayInput> does not apply the margin prop (#7905) (djhi)
  • Fix <ReferenceArrayInput> does not fetch defaultValues applied on its child (#7904) (djhi)
  • Fix test files are in JS instead of TSX (#7893) (fzaninotto)
  • Fix <ReferenceArrayField> throw error when its value is not an array (#7899) (shreyas-jadhav)
  • Fix ra-data-graphql-simple response parser for embedded arrays and objects (#7895) (djhi)
  • Fix <TabbedForm> ignores custom resource prop (#7891) (fzaninotto)
  • [TypeScript] Fix missing null checks in form helpers (#7894) (fzaninotto)
  • [Doc] Fix useAuthProvider documentation (#7927) (sunil-sharma-999)
  • [Doc] Assign variable before export default in examples (#7926) (sunil-sharma-999)
  • [Doc] Add installation instructions for CRA, Next.js and Remix (#7921) (fzaninotto)
  • [Doc] Add documentation for the <Menu> component (#7907) (fzaninotto)
  • [Doc] Fix examples using wrong key for setting the theme mode (#7906) (pibouu)
  • [Doc] Correct <MenuItemLink> active state configuration (#7901) (septentrion-730n)
  • [Doc] Add documentation for the <Layout> component (#7900) (fzaninotto)
  • [Doc] Add Next.js integration tutorial (#7879) (fzaninotto)

4.2.0

  • Add ability to set meta in page components (#7841) (fzaninotto)
  • Add ability to accept more than one child in <Reference> Fields (#7812) (fzaninotto)
  • Add support for <ReferenceField emptyText> when the reference is missing (#7851) (fzaninotto)
  • Add ability to specify available locales on the i18nProvider (#7758) (djhi)
  • Add support for custom toolbar buttons in <RichTextInput> (#7816) (bladx)
  • Add responsiveness to the <RichTextInput> toolbar (#7863) (bladx)

v4.1.6

v4.1.5

v4.1.4

v4.1.3

  • Fix <BooleanInput> and <CheckboxInput> don't have focus states (re-add ripple) (#7772) (andrico1234)
  • Fix edit and show controllers do not handle falsy identifiers (#7790) (djhi)
  • Fix sourcemaps in packages build (#7803) (djhi)
  • Fix user cannot to load saved queries when alwaysOn filters are empty (#7786) (fzaninotto)
  • Fix useUpdate passes old record to onSuccess in optimistic mode (#7783) (djhi)
  • Fix <Menu> storybook is missing (#7776) (septentrion-730n)
  • [Doc] Fix custom menu items example (#7804) (davidhenley)
  • [Doc] Fix typo in Theming code snippet (#7802) (AntonOfTheWoods)
  • [Doc] Fix Theming doc uses outdated syntax for conditional formatting example (#7799) (fzaninotto)
  • [Doc] Fix Enterprise Edition modules syntax following 4.0 release (#7795) (fzaninotto)
  • [Doc] Fix <DualListInput> menu item misses the premium badge (#7789) (davidhenley)
  • [Doc] Restructure Translation Documentation (#7759) (djhi)

v4.1.2

  • Fix DatagridContext and useDatagridContext aren't exported (#7779) (djhi)
  • Fix <ArrayInput> doesn't allow null as value (#7768) (septentrion-730n)
  • Fix <AutocompleteArrayInput> accepts true as disableClearable value (#7766) (septentrion-730n)
  • [Typescript] Fix <FunctionField> generic typing restriction (#7770) (septentrion-730n)
  • [TypeScript] Fix <FilterLiveSearch> missing fullWidth prop and harmonize label prop type between CommonInputProps and LabeledProps (#7757) (septentrion-730n)
  • [Doc] Fix quick filters screencast doesn't show saved filters (#7778) (septentrion-730n)

v4.1.1

  • Fix <DateTimeInput validate={required()} /> doesn't work correctly (#7744) (djhi)
  • Fix validate function errors messages are not display when passed as translatable object (#7741) (djhi)
  • Fix useUpdateMany does not support the returnPromise option (#7740) (djhi)
  • Fix cannot remove <SimpleForm> and <TabbedForm> toolbar with toolbar={false} (#7738) (djhi)
  • Fix <Admin> calls its child function without permissions while loading them (#7737) (djhi)
  • Fix useConfigureAdminRouterFromChildren when child function return null (#7731) (djhi)
  • Fix <TabbedForm> ignores the sx prop (#7721) (slax57)
  • Fix <Loading> ignores the sx prop (#7723) (slax57)
  • Fix <Form> submit cannot be prevented with event.preventDefault (#7715) (slax57)
  • Fix <AutocompleteInput> tests regression (#7714) (slax57)
  • [Doc] Fix typo in useSaveContext code snippet (#7747) (wgiddens)
  • [Doc] Fix <SelectArrayInput> doc mentions non-existent prop resettable (#7743) (djhi)
  • [Doc] Fix <SaveButton> is documented in two different chapters (#7742) (fzaninotto)
  • [Doc] Fix typo in custom form layout example (#7734) (ApolloRisky)
  • [Doc] Fix useGetOne section about query aggregation (#7732) (fzaninotto)
  • [Doc] Fix global theme overrides example (#7727) (mediafreakch)
  • [Doc] Fix Form Validation section mentions ability to do both async validation per input and global validation (#7726) (slax57)
  • [Doc] Fix <BooleanInput> example for overriding check icon (#7720) (mediafreakch)
  • [Doc] Fix tutorial example cannot be run in CodeSandbox (#7713) (slax57)
  • [TypeScript] Fix <Button> component props accepts a record (#7764) (fzaninotto)
  • [TypeScript] Fix <Button> component props (#7750) (djhi)
  • [TypeScript] Fix <SingleFieldList> rejects the sx prop (#7735) (djhi)
  • [TypeScript] Fix missing useMutation error typing definitions (#7722) (soullivaneuh)
  • [TypeScript] Fix cannot specify the error type in mutation hooks (#7698) (soullivaneuh)

v4.1.0

v4.0.5

  • Fix <ReferenceField> sometimes gets stuck on loading state (#7708) (djhi)
  • Fix <ReferenceInput> sometimes gets stuck on loading state (#7707) (djhi)
  • Fix <ReferenceArrayInput> with <AutocompleteArrayInput> throws error if the array is empty (#7694) (slax57)
  • Fix <FormTab> doesn't highlight selected tab label (#7693) (slax57)
  • Fix <Filter> shows filter button even though there is no filter to add (#7691) (fzaninotto)
  • Fix <TextInput> changes 'on' into 'false' (#7682) (Andonyaa)
  • [Doc] Fix "Save And Add Another" example in forms section (#7709) (slax57)
  • [Doc] Fix missing doc for <Admin queryClient> prop (#7704) (fzaninotto)
  • [Doc] Fix Validation chapter misses section explaining that global and input level validation can not be combined (#7703) (slax57)

v4.0.4

  • Fix cannot use theme to override input variant (#7636) (fzaninotto)
  • Fix <NumberInput> edge cases (#7673) (fzaninotto)
  • Fix <ShowBase>, <CreateBase> and <EditBase> components don't support resource override via props (#7652) (slax57)
  • Fix inconsistent casing for translation keys of ra-input-rich-text (#7683) (friday)
  • Fix warning when using some valid <Button color> values (#7681) (smeng9)
  • [TypeScript] Fix <Button> component prop type (#7664) (okovpashko)
  • [Doc] Fix "Prefilling the Form" example in Create chapter (#7684) (slax57)
  • [Doc] Fix <RichTextInputToolbar> example in ra-input-rich-text chapter (#7671) (friday)
  • [Doc] Fix <SaveButton formId> prop should be called <SaveButton form> (#7658) (smeng9)

v4.0.3

  • Fix <SimpleFormIterator disableRemove> doesn't receive the record argument (#7645) (andrico1234)
  • Fix cannot create an admin without resources (#7609) (djhi)
  • Fix cannot define ressource config based on Permissions (#7606) (djhi)
  • Fix <Admin> forbids login when authProvider.setPermissions() isn't implemented (#7642) (djhi)
  • Fix <SimpleFormIterator> children display wrong labels (#7641) (djhi)
  • Fix style overrides in <SimpleFormIterator> (#7630) (andrico1234)
  • Fix ability to disable redirect in useCreateController (#7633) (waltheri)
  • Fix <FileInput> no longer passes source to name attribute (#7619) (djhi)
  • Fix <FileInput> doesn't accept options prop (#7611) (fzaninotto)
  • Fix duplicate key error in <SingleFieldList> (#7617) (djhi)
  • Fix Form validation when <SaveButton type> is "button" (#7557) (WiXSL)
  • Fix NullableBooleanInput helper text doesn't take isSubmitted into account (#7553) (afilp)
  • [TypeScript] Fix ra-data-graphql options type (#7638) (arjunyel)
  • [TypeScript] Fix <Button/> props type mention unsupported icon prop (#7627) (smeng9)
  • [Doc] Fix wrong import in List docs (#7647) (davidhenley)
  • [Doc] Fix Edit doc mentions unsupported prop (#7628) (fzaninotto)
  • [Doc] Fix <ArrayField> doc mentions unsupported fieldKey prop (#7613) (smeng9)
  • [Doc] Fix instructions for using react-admin in a sub path (#7612) (fzaninotto)
  • [Doc] Add Prisma REST to the list of third-party Data Providers (#7568) (mshd)

v4.0.2

  • Publish GraphQL data provider packages (#7607) (fzaninotto)
  • Fix missing <Admin queryClient> prop (#7558) (joshq00)
  • Fix logout doesn't reset resource registration (#7539) (fzaninotto)
  • Fix <ListGuesser> does not update when resource changes (#7605) (djhi)
  • Fix cannot set custom icon in <BooleanInput> (#7556) (WiXSL)
  • Fix cannot clear filter form when clicking the clerar button on Firefox (#7574) (smeng9)
  • Fix <RichTextInput> buttons don't update correctly (#7585) (djhi)
  • [TypeScript] Fix missing <ArrayInput sx> prop (#7571) (djhi)
  • [TypeScript] Fix <SelectInput choices> type only allow Records (#7595) (bingluen)
  • [TypeScript] Fix <SelectInput> / <SelectArrayInput> onChange handler (#7519) (WiXSL)
  • [Doc] Add an example GraphQL data provider (#7602) (fzaninotto)
  • [Doc] Fix missing <SelectInput> props (#7566) (smeng9)
  • [Doc] Fix Upgrade instructions for List views (#7563) (hjr3)
  • [Doc] Fix Upgrade instructions regarding router imports (#7562) (hjr3)

v4.0.1

  • Fix <DateTimeInput> doesn't work when used as filter (#7551) (WiXSL)
  • Fix <BooleanInput> helper text doesn't use isSubmitted (#7552) (afilp)
  • Fix <SimpleForm> should not accept mutationMode prop (#7533) (WiXSL)
  • Fix React warning when using a <Datagrid> on data without an id (#7548) (WiXSL)
  • Fix outdated propTypes on a few components (#7535) (WiXSL)
  • [Doc] Fix <Datagrid> usage example shows bulk actions (#7547) (WiXSL)
  • [Doc] Fix <Datagrid> body snippet is missing <RecordContextProvider> (#7546) (fzaninotto)
  • [Doc] Fix link to the ra-rbac module (#7545) (artnest)
  • [Doc] Fix typo in useEditContext section (#7542) (usman-coe)
  • [Doc] Fix typo in <List> component section (#7536) (Eric013)
  • Fix yarn.lock and dependencies versions (#7532) (WiXSL)

v4.0.0

React-admin v4 focuses on modernizing the inner workings of the library. It improves the developper experience a great deal, and paves the way for future changes. It is the result of 6 months of intensive refactoring, development, and test.

The following list concerns version 4.0.0, as well as all the pre-releases (alpha, beta, and rc).

🎉 New features

  • Add <Admin requireAuth> to hide the app until auth is checked (#7475)
  • Add <Admin basename> to allow mounting react-admin inside a sub path (#7100, #6917)
  • Add the ability to pass custom params to all dataProvider hooks (#7116)
  • Add support for partial pagination (i.e. no total) (#7120)
  • Add support for sx props in all ra-ui-materialui components (#7175)
  • Add headless <Form> component (#7087)
  • Add <ReferenceOneField> (#7060)
  • Add <CustomRoutes> (#7345)
  • Add useStore and persistent preferences (backport from ra-enterprise) (#7158, #7366)
  • Add Saved Queries (#7354)
  • Add <ToggleThemeButton> (#7340)
  • Add <LocalesMenuButton> (#7332)
  • Add useSetTheme (#7008)
  • Add combineDataProvider helper (#7055)
  • Add <Datagrid expandSingle> to limit the number of expanded rows to 1 (#7454)
  • Add <ChoicesContextProvider> in all ReferenceInputs to avoid child cloning and allow choices filtering, pagination, and sorting (#7185)
  • Add <FileInput validateFileRemoval> prop to allow confirmation before file deletion (#7003)
  • Add ability to register custom <Resource options> (#7392)

📦 Dependency Updates

  • Add React 18 compatibility (#7377)
  • Upgrade material-ui to v5 (#6650)
  • Use react-query for data fetching instead of home made solution (#6779, #6916, #7006, #7016, #7025, #6891, #7035, #7020, #7035, #7001)
  • Replace react-final-form with react-hook-form (#7087)
  • Upgrade react-router to V6 (#6873)
  • Replace Quill by TipTap in <RichTextInput> (#7153)
  • Upgrade dependencies to their latest major versions

🏹 Updated Syntax

  • Change the Record TypeScript name to RaRecord (#7078)
  • Change data provider hooks signature to reflect the data provider signature
  • Remove prop injection and child cloning, use context instead (#7060, #7218, #7215, #7214, #7207, #7206, #7205, #7203).
  • Remove record prop injection
  • Remove permissions injection in main route controllers (#6921)
  • Avoid cloning Inputs components to pass variant and margin, and document theme override instead (#7223)
  • Rename loading to isLoading in authProvider hooks return type (#7334)
  • Rename initialValues to defaultValues in <Form> (caused by switch to react-hook-form)
  • Move bulkActionButtons from <List> to <Datagrid> (#7114)
  • Rename currentSort to sort (#7076)
  • Change setSort signature to make it consistent across components (#7065)
  • Use Material UI autocomplete instead of our own (#6924, #6971)
  • Rename <TranslationProvider> to <I18nContextProvider>
  • Switch <WithPermissions> wrapping to a useAuthenticated hook in main controllers (#6921)
  • Move <Notification> component into <AdminUI> to avoid gotchas when overriding the layout (#7082)

🧹 Cleanup

  • Remove Redux (#7177)
  • Remove redux-saga and saga-based side effects (#6684)
  • Remove connected-react-router (#6704)
  • Remove basePath (#7100)
  • Remove addLabel prop in Field components (#7223)
  • Remove Resource initialization, Store Resource definitions in Context rather than in store (#7051)
  • Remove HOCs (like addField) and render props
  • Remove useQuery and useMutation (as react-query already provides them) (#7001)
  • Remove application cache and validUntil (#7001)
  • Remove useVersion (#7001)
  • Remove allowEmpty prop in choice inputs (#7200)
  • Remove deprecated sort prop in <DataGridHeaderCell> (#7065)
  • Remove <FormWithRedirect> and handleSubmitWithRedirect (#7087)
  • Remove TestContext (<AdminContext> does the trick) and ra-test (#7148)
  • Remove declarative side effects support in dataProvider (#6687)
  • Remove useGetMatching (use getList instead) (#6916)
  • Remove support for undoable prop now that we have mutationMode (#6711)
  • Remove withTranslate HOC (#7157)
  • Remove ra-test (#7148)
  • Use esbuild instead of webpack for simple example
  • Use GitHub actions instead of Travis for CI

📚 Updated Documentation

  • The v4 documentation was deeply reorganized to allow easier discovery and faster navigation.
  • Most of the common hooks and components now have a dedicated documentation page.
  • We've added a Storybook to help you discover the components API.
  • The demos (e-commerce, CRM) were updated to show how to build application in idiomatic react-admin.

🪜 Upgrade Guide

As this is a major release, there are breaking changes. We documented all the changes required in a react-admin v3 application to make it compatible with version 4 in the react-admin v4 Upgrade Guide.

📊 Statistics

Since react-admin counts about 112,000 lines of code, this means that 90% of the codebase was touched.

💌 Thank You

Many thanks to all the contributors (whether they helped developing, testing, documenting, proofreading react-admin v4), and in particular to the core team (fzaninotto, djhi, WiXSL) for their hard work.

v3.19.11

v3.19.10

  • Fix <CheckboxGroupInput> changes selected values type (#7248) (WiXSL)
  • Fix <DateField> shows wrong date on negative time zones (#7242) (fzaninotto)
  • [Doc] Fix <DateInput> example of format and parse with Date object as value (#7233) (WiXSL)
  • Bump minor dependencies

v3.19.9

(failed release, do not use)

v3.19.8

  • Fix <FilterButton> throws bad error if no filters are present (#7227) (WiXSL)
  • Fix page remains the same when changing perPage in <ReferenceXXX> Fields (#7213) (WiXSL)
  • Fix useNotify doesn't allow multi line notifications (#7188) (WiXSL)
  • Fix <AutocompleteInput> erases input while typing (#7173) (WiXSL)
  • Fix resolveBrowserLocale tests (#7194) (FernandoKGA)
  • Fix <Toolbar alwaysEnableSaveButton> doesn't accept false (#7167) (WiXSL)
  • Fix <ReferenceArrayInput> logs console warning in certain cases (#7165) (WiXSL)
  • Fix DOM warnings when using <SelectArrayInput> as child of <ReferenceArrayInput> (#7015) (ZachSelindh)
  • Fix failing admin test when running all tests together (#7136) (thdk)
  • Fix GraphQL data provider swallows the Apollo Error (#6956) (hlubek)
  • [TypeScript] Fix BooleanInputProps isn't exported (#7144) (alanpoulain)
  • [Doc] Fix bad url in Inputs documentation (#7230) (WiXSL)
  • [Doc] Add SQLite data provider (#7201) (fzaninotto)
  • [Doc] Add TreeQL / PHP-CRUD-API data provider (#7141) (itsjavi)
  • [Doc] Fix <XXXInput initialValue> description when the value is null (#7139) (WiXSL)

v3.19.7

  • Fix <SimpleFormIterator> assigns items indexes incorrectly (#7123) (WiXSL)
  • Fix error messages can't be copied (#7115) (WiXSL)
  • Fix <ArrayInput> could make the form dirty on initialization (#7112) (WiXSL)
  • Fix race condition accessing redux store after logout (#7105) (WiXSL)
  • Fix dom warning when overriding <AutocompleteInput> styles (#6486) (mohandes-jiri)
  • [Doc] customizing and disabling item reordering for <ArrayInput> (#7104) (vaizki)
  • [Doc] Fix code snippet for choice creation in <AutocompleteArrayInput> and <SelectArrayInput> (#7086) (kristelvdakker)
  • [Doc] Fix dead link in Data Providers documentation (#7063) (Fabious)
  • Bump dependencies for security warnings (#7092) (#7128) (#7126) (#7090)

v3.19.6

  • Fix loading indicator keeps spinning on permissions error when logoutUser is false (#7044) (WiXSL)
  • Fix redirect=false after save doesn't clear the form (#7041) (WiXSL)
  • Fix <SelectArrayInput optionText> function not fully supported with create item (#7039) (WiXSL)
  • Fix <AutocompleteArrayInput optionText> function not supported with create item set (#7038) (WiXSL)
  • Fix <SelectInput optionText> for create (#7031) (WiXSL)
  • Fix <SelectArrayInput optionText> for create (#7030) (WiXSL)
  • [Demo] Fix typescript error (#7045) (WiXSL)
  • [Demo] Update Create-React-App to V5 (#7022) (fzaninotto)

v3.19.5

  • Fix <Autocomplete> fails when used inside a <FormDataConsumer> (#7013) (WiXSL)
  • Fix updateMany throws an error for undefined ID in ra-data-graphql-simple (#7002) (djhi)
  • Fix warning for unrecognized enableGetChoices prop when using <SelectInput> as child of <ReferenceInput> (#6999) (ZachSelindh)
  • [Doc] Fix typos (#7012) (WiXSL)

v3.19.4

  • Fix list <FilterButton> is not accessible (#6967) (WiXSL)
  • Fix incorrect exporter when switching resource (#6989) (WiXSL)
  • Fix <ArrayField> doesn't accept <SimpleList> as child (#6975) (Luwangel)
  • Fix unit tests require build first (#6983) (WiXSL)
  • [TypeScript] Fix <SimpleList toolbar> doesn't allow false value (#6969) (ZachSelindh)
  • [TypeScript] Fix ToolbarProps to be compatible with FormWithRedirectOwnProps definition (#6994) (WiXSL)
  • [TypeScript] Fix missing definition for <ReferenceFieldController label> prop (#6745) (kevinmamaqi)
  • [TypeScript] Fix <ArrayInput> proptype definition (#6617) (WiXSL)
  • [Doc] Fix typo in <Tab> jsDoc (#6959) (erakli)
  • [Demo] Fix <SelectInput label> is overridden in simple project (#6920) (WiXSL)

v3.19.3

  • Fix <ArrayInput> issue with initialValue (#6932) (djhi)
  • Fix <Datagrid> select all rows fails over multiple pages (#6950) (WiXSL)
  • Fix <Notification> component appears only once when saving several times (#6929) (wbojaume)
  • Fix useList isn't usable with asynchronously fetched data (#6899) (djhi)
  • Fix <FilterListItem> styles can't be overridden via theme (#6941) (kristelvdakker)
  • Fix <List bulkActionButtons> prop does not handle the value true (#6926) (WiXSL)
  • Fix <SidebarToggleButton> is not exported (#6911) (WiXSL)
  • Fix <Tab> children are missing the fullWidth prop when addLabel is set (#6915) (WiXSL)
  • Fix useReferenceArrayInputController sets loading prop incorrectly (#6914) (WiXSL)
  • Fix e2e tests fail on a clean install (#6938) (WiXSL)
  • Fix wrong imports in tests (#6931) (djhi)
  • Fix warn about unsaved changes when modifying <CheckGroupInput> or <ArrayInput> components (#6954) (WiXSL)
  • [TypeScript] Fix types in tests (#6949) (WiXSL)
  • [Doc] Add Blitzjs data provider (#6945) (Fidym)
  • [Doc] Fix authProvider example (#6933) (WiXSL)
  • [Doc] Fix code examples of <FormDataConsumer> (#6936) (WiXSL)
  • [Doc] Fix mention of deprecated createMuiTheme in theming docs (#6918) (AntoineCrb)
  • [Doc] Fix useNotify examples encourage a deprecated syntax (#6912) (WiXSL)
  • [Demo] Fix no-code-demo does not work in CodeSandbox (#6463) (smeng9)
  • [Demo] Update simple example dependencies (#6930) (djhi)
  • [Demo] Fix deprecation warnings in simple project (#6903) (WiXSL)

v3.19.2

  • Fix <SimpleForm> warns of unsaved changes when the form is submitting (#6895) (WiXSL)
  • Fix useMutation not considering returnPromise option (#6886) (WiXSL)
  • Fix package duplication in yarn.lock slows down react-admin CI (#6874) (fzaninotto)
  • [TypeScript] Fix include side effects in <DeleteButton> props type (#6877) (WiXSL)
  • [Demo] Fix authProvider.getIdentity() returns an object instead of a promise in simple demo (#6881) (WiXSL)
  • [Doc] Fix typo in README (#6875) (CoreyB26)
  • [Doc] Fix various typos (#6872) (WiXSL)
  • [Doc] Fix List actions examples (#6742) (erakli)

v3.19.1

  • Fix sidebar is displayed over the content (#6723) (djhi)
  • Fix warnWhenUnsavedChanges warns too often (#6719) (djhi)
  • Fix useNotify shows a warning if only one argument is passed (#6760) (WiXSL)
  • Fix runtime error when type is not supplied to useNotify (#6713) (danielhusar)
  • Fix notify function when no type is passed (#6768) (nidebo)
  • Fix <SimpleFormIterator> transition animations on add and remove items (#6871) (WiXSL)
  • Fix simple CodeSandbox (#6781) (djhi)
  • Fix <DateInput> breaks <SimpleFormIterator> (#6763) (djhi)
  • Fix <Login> page isn't customizable through Material UI theme (#6762) (djhi)
  • Fix call time parameters don't take priority in useMutation (#6761) (djhi)
  • Bump minor dependencies
  • [TypeScript] Fix Graphql Providers Types (#6724) (djhi)
  • [TypeScript] Make previousData of DeleteParams optional (#6536) (m0rtalis)
  • [Doc] Add GeoServer data provider (#6778) (sergioedo)
  • [Doc] Add paragraph about carbon footprint in README (#6774) (fzaninotto)
  • [Doc] Add link to images in tutorial (#6771) (ocxers)
  • [Doc] Fix typo in Architecture chapter (#6740) (HobbitCodes)
  • [Doc] Fix typo in Theming chapter (#6714) (afilp)
  • Fix Material UI's urls reference for version 4 (#6702) (WiXSL)
  • [Doc] Add getIdentity function to the authProvider reference (#6697) (WiXSL)
  • [Doc] Improve useRedirect description and examples (#6696) (WiXSL)

v3.19.0

🚀 New Features

  • Allow lazy loading of choices in ReferenceInput (#6013) (@ValentinH)
  • Add support for custom url in SimpleList (#6594) (djhi)
  • Added support for customizing the styles of the Datagrid expand panels (#6596) (mjomble)
  • Blur input on suggestion create (#6646) (andrico1234)
  • Add support for multiline notifications (#6670) (WiXSL)
  • Introduce simpler signature for the notify function returned by useNotify (#6671) (WiXSL)
  • Returns error from controllers & add support for custom onFailure on useShowController and useEditController (#6680) (djhi)
  • Extract sidebar toggle button (#6603) (djhi)
  • [GraphQL] Upgrade graphql packages dependencies (Apollo v3) (#6614) (djhi)

🐛 Bug Fixes

  • Fix Material UI 4.12 deprecation warnings (#6587) (fzaninotto)
  • Refactor ArrayInput and SimpleFormIterator with context (#6612) (djhi)
  • Refactor graphql providers and migrate to the new dataProvider signature (#6628) (djhi)
  • [GraphQL]: Fix Simple Response Parser Modify all Objects (#6643) (djhi)
  • [GraphQL]: add basic network error handling (#6648) (djhi)
  • Fix remove unused import (#6676) (WiXSL)
  • Fix react import (#6677) (WiXSL)

🟦 Types

  • Upgrade TypeScript version to 4.4 (#6588) (fzaninotto)
  • Support custom DataProvider type with useDataProvider (#6605) (djhi)
  • Fix simple project type errors (#6637) (WiXSL)
  • Fix export TranslationMessages StringMap type (#6638) (WiXSL)
  • Add missing types for TranslationMessages (#6640) (Aikain)

📚 Docs

v3.18.3

  • Fix custom menus do not shrink when sidebar is closed (#6635) (djhi)
  • Fix undoable bulk actions failure by refreshing the view (#6616) (WiXSL)
  • Fix datagrid usage inside reference array input (#6589) (djhi)
  • Fix tests console errors and warnings (#6578) (WiXSL)
  • [TypeScript] Fix DataProvider and RouteWithoutLayout some types (#6634) (djhi)
  • [TypeScript] Fix TranslatableInputs props interface (#6633) (djhi)
  • [Doc] Add DatagridHeader to reference section (#6631) (WiXSL)
  • [Doc] Fix typos in several examples (#6623) (WiXSL)
  • [Doc] Add SimpleForm component prop description and example (#6611) (WiXSL)
  • [Doc] Fix scrollable TabbedForm usage description (#6608) (WiXSL)
  • [Doc] Fixed naming of getMany ids params (#6604) (davidhenley)
  • [Doc] Updated README of ra-data-graphql-simple for function components (#6555) (Panzki)

v3.18.2

  • Fix displayName prop in Field components (6569) (WiXSL)
  • Fix submitErrorsMutators form mutator is not exported (6586) (djhi)
  • Fix linkToRecord syntax when pointing to the show page (6575) (ValentinnDimitroff)
  • Fix <UrlField> font size differs from other fields (6568) (WiXSL)
  • Fix <EmailField> font size differs from other fields (6567) (fzaninotto)
  • [Doc] Add mentions of supabase data & auth providers and Tip Tap rich text input (6590) (djhi)
  • [Doc] Fix examples of ra-test usage with fake dataProviders (6600) (DjebbZ)
  • [TypeScript] Remove FunctionComponent usage from RichTextInput (6577) (WiXSL)
  • [Doc] Fix <AutocompleteArrayInput> image link typo (6574) (WiXSL)
  • [Doc] Fix outdated link to Django REST Framework dataProvider (6571) (fzaninotto)
  • [TypeScript] Rename and export Mutation props (6576) (WiXSL)

v3.18.1

  • Fix BooleanField doesn't show label when used in a Show view (6553) (WiXSL)
  • Fix Field components don't show labels when used in a Show view (6564) (WiXSL)
  • Fix "Something went wrong" issue when using <SelectArrayInput> & <SelectInput> (6558) (djhi)

v3.18.0

🎨 UI Changes

  • <Sidebar>: Make it fixed when users scroll vertically (6534) (fzaninotto)
  • <TranslatableInputs>: Reduce language tabs margin to allow more languages to be used (6484) (fzaninotto)

🚀 New Features

  • <SimpleFormIterator>: Add support for reordering items (6433) (djhi)
  • <SimpleList>: Add RecordContext to allow usage of Field components in primaryText, secondaryText, and tertiaryText (6552) (djhi)
  • <Datagrid>: Add header prop to override the header row (6496) (fzaninotto)
  • useRedirect: Add support for absolute URLs to facilitate third-party authentication providers (OAuth, OpenID Connect) (6469) (fzaninotto)

🐛 Bug Fixes

  • Fix quick create suggestion label when using custom optionText (6551) (djhi)
  • Fix devDependencies of individual packages (6540) (quentingarcia)

🟦 Types

  • Export many internal ra-core prop types for easier override (6543) (WiXSL)
  • Fix dataProvider.delete response type marks data as optional (6548) (WiXSL)
  • Remove FC usage from <SimpleFormIterator> and Docs (6546) (WiXSL)
  • Remove FC usage from <AdminContext> (6545) (WiXSL)
  • Remove FC usage from <Field> components (6538) (WiXSL)
  • Remove FC usage from examples (6519) (WiXSL)
  • Remove FC usage from ra-core components (6515) (WiXSL)

📚 Docs

✨ Demos

  • Fix implicit any type prevents TypeScript compilation of e-commerce demo (6556) (fzaninotto)
  • Fix simple demo on IE11 (6544) (djhi)
  • Fix demo on IE11 (6542) (djhi)

v3.17.3

  • Fix <BooleanInput initialValue> overrides existing value from record (6533) (fzaninotto)
  • Fix <ArrayField> forbids empty component in child <Datagrid> (6524) (fzaninotto)
  • Fix useList pagination total (6500) (yksflip)
  • [Doc] Add link to auth tutorials for Auth0, AzureAD, and Loopback (6535) (fzaninotto)
  • [Doc] Fix typo in readme file (6527) (WiXSL)
  • [Doc] Fix emptyText prop description in Fields documentation (6525) (fzaninotto)
  • [RFR] Remove FC usage from ra-ui-materialui components (6514) (WiXSL)

v3.17.2

v3.17.1

  • Fix propType warning in <BulkExportButton> (6479) (fzaninotto)
  • Fix propType warning in delete buttons (6472) (djhi)
  • Fix props.options.labelWidth not being applied in <SelectArrayInput> (6465) (WiXSL)
  • Fix ignored inputRef in <AutocompleteInput> & <AutocompleteArrayInput> (6458) (djhi)
  • [TypeScript] Fix type of <SelectInput classes> prop (6456) (djhi)
  • [TypeScript] Fix missing translation message types (6426) (Aikain)
  • [Doc] Add ra-supabase to data providers list (6481) (djhi)
  • [Doc] Add usage for useList (6480) (djhi)
  • [Doc] Fix authentication examples (6467) (WiXSL)
  • [Doc] Improve Submission Validation example (6466) (WiXSL)
  • [Demo] Improve learning experience by keeping component names in React DevTools (6457) (fzaninotto)
  • [Doc] Fix minor syntax errors in code examples (6449) (WiXSL)
  • [Doc] Fix <BulkUpdateButton> example (6447) (WiXSL)
  • [Doc] Fix typos, anchors and code samples (6446) (WiXSL)
  • [Doc] Add link to ReactPage Integration in the third-party Inputs list (6444) (macrozone)
  • [Doc] added link to @bb-tech/ra-components in the third-party Inputs list (6443) (sivaavkd)

v3.17.0

  • Add ability to define filters as an array of Inputs (6368) (fzaninotto)
  • Add support for image path value in <SimpleList leftAvatar> (6418) (fzaninotto)
  • Add ability to hide Input labels with label={false} (6381) (VikrantShirvankar)
  • Add links to the <Error> page to help troubleshooting (6367) (fzaninotto)
  • Add ability to redirect to a custom page on logout (6326) (andrico1234)
  • Add useList, a way to reuse the list pagination/sorting/filtering client-side logic (6321) (6378) (djhi)
  • Add <SimpleFormIterator> label function (6305) (iamstiil)

v3.16.6

  • Fix <Empty> component isn't properly exported (6419) (djhi)

v3.16.5

  • Fix "Deprecated findDOMNode" warning in StrictMode (6398) (fzaninotto)
  • Fix <DateTimeInput> does not include timezone for initialValue (6401) (djhi)
  • Fix <TranslatableInputs> ignores child input label (6415) (mjomble)
  • Fix <Empty> component isn't exported (6416) (djhi)
  • [Demo] Improve dataProvider logging in GraphQL demo (6405) (fzaninotto)
  • [Doc] Add mention of <RichTextInput> display bug and userland fix (6403) (fzaninotto)

v3.16.4

  • [Demo] Optimize data loading in e-commerce demo (6392) (djhi)
  • [Demo] Fix CRM demo points to bad source file (6389) (fzaninotto)
  • [Doc] Fix a typo in main Readme (6390) (aminetakha)
  • [Doc] Fix incomplete side effect hooks documentation (6388) (fzaninotto)
  • [Doc] Fix misleading explanation of <List syncWithLocation> prop (6385) (fzaninotto)
  • [Doc] Fix <ListBase> snippet doesn't explain how to override the title (6383) (fzaninotto)
  • [Doc] Fix wrong ending tags in Actions documentation (6382) (Cornul11)

v3.16.3

  • Fix useInput incorrectly sets default value for numbers (6374) (djhi)
  • [Doc] Fix <Show aside> prop format is component instead of element (6376) (fzaninotto)
  • [Doc] Improve ListActions override (6218) (WiXSL)
  • [Doc] Fix code snippet in custom field example (6365) (neps-in)
  • [Doc] Add ra-data-eve to DataProviders chapter (6362) (smeng9)

v3.16.2

v3.16.1

v3.16.0

  • Update window title on page change (6119) (andrico1234)
  • Expose refetch in hooks and components (6237) (fzaninotto)
  • Add ability to set location state via useRedirect (6293) (despatates)
  • Disable <SaveButton/> while Inputs are being validated asynchronously (6288) (WiXSL)
  • Thrown an error when using a Reference field without the associated Resource (6266) (fzaninotto)
  • Add <BulkUpdateButton> component (6072) (WiXSL)
  • Fix logout button appears in two different menus (6230) (fzaninotto)
  • Fix <AutocompleteInput> choice creation support (6328) (djhi)
  • Fix useGetMany loaded state (6319) (djhi)
  • Fix <DatagridRow> nb columns computation occurs too often (6307) (WiXSL)
  • Fix errors and warnings in tests (6299) (WiXSL)
  • [TypeScript] Add UserMenuProps type (6320) (fzaninotto)
  • [TypeScript] Fix TabbedShowLayoutProps's tabs should be optional (6310) (WiXSL)
  • [TypeScript] Add the ability to type <SimpleList> callbacks (6254) (fzaninotto)
  • [Doc] Fix wrong link in Fields documentation (6325) (Cornul11)
  • [Doc] Fix CHANGELOG glitches (6311) (WiXSL)
  • [Doc] Update Polish translation maintainer (6297) (Tymek)
  • [Doc] Fix mention of non-existent fullWith attribute in <SelectArrayInput> (6291) (WiXSL)
  • [Doc] Add data example for ra-simple-rest (6278) (karltaylor)
  • [Lab] ra-no-code - Introduce Resource Configuration (6217) (djhi)
  • [Lab] ra-no-code - Introduce ApplicationsDashboard (6221) (djhi)
  • [Lab] ra-no-code - Add support for simple references (6246) (djhi)

v3.15.2

  • Fix performance regression causing unnecessary redraws (6285) (fzaninotto)
  • Fix missing margin prop in several Labeled components (6282) (WiXSL)
  • Fix defaultValue and initialValue props don't work in Edit views (6272) (djhi)
  • Fix performance of <Layout> rerenders (6264) (WiXSL)
  • Fix useQueryWithStore outputs incorrect loaded field when enabled is false (6262) (fzaninotto)
  • [Doc] Fix wrong return value in custom validator example (6296) (WiXSL)
  • [Doc] Fix hook name in on-the-fly choice creation examples for <SelectInput> and <AutocompleteInput> (6286) (andrico1234)
  • [Doc] Fix bad readability of <ReferenceInput> examples (6281) (WiXSL)
  • [Doc] Fix <TestContext> JSDoc (6276) (WiXSL)
  • [Doc] Fix missing reference to success notification type in useNotify() hook documentation (6273) (WiXSL)

v3.15.1

  • Add CRM example (6242) (fzaninotto)
  • Fix logout button appears in two different menus (6230) (fzaninotto)
  • Fix <SkipNavigationButton> component isn't exported (6263) (WiXSL)
  • Fix useMutation internal test syntax (6261) (WiXSL)
  • Fix <AutocompleteArrayInput optionText> when used with a function value (6256) (djhi)
  • Fix useQueryWithStore returns loading=true when enabled is false (6249) (djhi)
  • [TypeScript] Fix <SelectField> doesn't accept <Typography> props (6253) (fzaninotto)
  • [TypeScript] Fix missing translation item create_item (6248) (Aikain)
  • [Doc] Fix typos in useDelete and useDeleteMany JsDocs examples (6260) (WiXSL)
  • [Doc] Fix useDelete and useUpdate JsDocs examples (6238) (WiXSL)
  • [Doc] Fix dataProvider hooks incorrectly document error state as loaded=true instead of false (6252) (fzaninotto)
  • [Doc] Fix minor typos in <FileInput> and <ImageInput> props description (6243) (olliebennett)

v3.15.0

  • Add support for quick choice creation in <SelectInput>, <AutocompleteInput>, <SelectArrayInput>, and <AutocompleteArrayInput> (6215) (djhi)
  • Add ability to call specialized dataProvider hooks with specialized parameters (6168) (fzaninotto)
  • Add ability to refetch a query in useQuery and useQueryWithStore (6130) (djhi)
  • Add <Datagrid empty> prop to display column headers even on empty lists (6164) (andrico1234)
  • Add <AppBar container> props to override the root App Bar element (6178) (WiXSL)
  • Add <RouteWithoutLayout> component to enable TS-compatible custom routes with noLayout (6158) (fzaninotto)
  • Add support for truthy/falsy values in <BooleanField> (6027) (WiXSL)
  • Add customReducers to <TestContext> (6067) (ValentinnDimitroff)
  • Fix custom mutators crash <SimpleForm> and <TabbedForm> (6209) (WiXSL)
  • Fix hideFilter called repeatedly only registers the last call (6226) (fzaninotto)
  • Fix warning in <UrlField> when value is nullish and emptyText is empty (6176) (OoDeLally)
  • [Doc] Fix typo in example of <SaveButton disabled> handling (6232) (SleepWalker)
  • Fix undoable prop behavior (6153) (ThieryMichel)
  • [Doc] Fix custom <DatagridRow> example (6223) (WiXSL)
  • [TypeScript] Export PublicFieldProps and InjectedFieldProps types (so devs can use them to define their own field components) (6219) (jtomaszewski)
  • [TypeScript] Fix useMutation requires payload argument (6182) (jtomaszewski)
  • [Lab] Bootstrap ra-no-code package (6211) (djhi)

v3.14.5

  • Fix <DateIpnut> and <DateTimeInput> are broken on Safari (6199) (djhi)
  • Fix <Notification> undo button's color on success type (6193) (WiXSL)
  • [TypeScript] Publish data-generator typings (6204) (floo51)
  • [TypeScript] Fix ra-data-local-storage types (6203) (djhi)
  • [TypeScript] Fix view action component types aren't exported (6200) (djhi)
  • [TypeScript] Fix sidebar width type in application theme (6197) (jtomaszewski)
  • [Doc] Add OData data provider (6206) (jvert)
  • [Doc] Update tutorial images (6205) (fzaninotto)
  • [Doc] Fix custom fields documentation doesn't use useRecordContext (6201) (djhi)

v3.14.4

  • Fix useGetMany does not respect the enabled option (6188) (djhi)
  • Fix 'Cannot set property validating of undefined' error when conditionally rendering a form component (6186) (ThieryMichel)
  • Fix useWarnWhenUsavedChanges fails on nested fields (6185) (djhi)
  • Fix warning when using <BulkDeleteButton> without props (6165) (fzaninotto)
  • Fix Menu icon isn't aligned with the sidebar icons (6161) (JayKaku)
  • Fix missing query string after successful login (6129) (makbol)
  • [Doc] Add link to Google Sheet data provider (6187) (fzaninotto)
  • [Doc] Fix missing documentation about the ResourceContext (6183) (fzaninotto)
  • [Doc] Fix broken link to source in Testing Permissions documentation (6181) (YashJipkate)
  • [Doc] Fix typo in <FormDataConsumer> usage JSDoc (6169) (WiXSL)
  • [Doc] Fix typo in withDataProvider hook example (6160) (f-jost)
  • [Doc] Fix outdated link for Swedish translation (6156) (kolben)

v3.14.3

  • Fix <Field textAlign> prop doesn't accept value center (6152) (WiXSL)
  • Fix runtime warnings when <SimpleList> displays skeleton while loading (6146) (fzaninotto)
  • Fix useRedirect does not handle query strings (6145) (fzaninotto)
  • Fix logout notification may appear more than once (6144) (fzaninotto)
  • Fix submit errors cannot have translation arguments (6140) (djhi)
  • Fix <RadioButtonGroupInput> emits runtime warnings (6139) (djhi)
  • Fix <ArrayInput> validation (6136) (djhi)
  • Fix <Datagrid> logs a warning about invalid prop hasBulkActions of type array (6122) (RoBYCoNTe)
  • [TypeScript] Fix minor type errors in ra-ui-material-ui and validate (6147) (fzaninotto)
  • [Doc] Fix <Labeled> documentation is missing resource and source props usage (6138) (djhi)
  • [Doc] Add illustration for the <Aside> component (6132) (fzaninotto)
  • [Doc] Add link to ra-acl auth package (6123) (andrico1234)

v3.14.2

  • Fix <Datagrid> requires too many props when used standalone (6115) (fzaninotto)
  • Fix console warnings from <Error> component (6114) (fzaninotto)
  • Fix <UserMenu> hides the scrollbar (6113) (fzaninotto)
  • Fix <UserMenu> dropdown positioning (6105) (djhi)
  • Fix <Admin customRoutes> aren't used when the resources are empty (6112) (fzaninotto)
  • Fix ra-ui-material-ui dependency version on ra-core (6111) (fzaninotto)
  • [TypeScript] Fix missing import in ra-core hook utils (6071) (WiXSL)
  • [Doc] Fix <TabbedForm syncWithLocation> example (6097) (djhi)

v3.14.1

  • Fix performance regression (6096) (fzaninotto)
  • [TypeScript] Fix <SingleFieldList component> doesn't accept string components (6094) (fzaninotto)

v3.14.0

  • Add ability to use record from context in Field components (5995) (fzaninotto)
  • Add <Datagrid isRowExpandable prop (5941) (WiXSL)
  • Add useResourceLabel hook (6016) (djhi)
  • Add ability to use an element as label in <FormTab> (6061) (WiXSL)
  • Add ability to use an element as label in <FilterListItem> (6034) (fzaninotto)
  • Add ability to call useGetList without pagination, sort, or filter params (6056) (fzaninotto)
  • Add ability to omit basePath in buttons (6041) (fzaninotto)
  • Add ability to omit basePath in Reference fields (6028) (fzaninotto)
  • Add support for <SingleFieldList component> (6036) (fzaninotto)
  • Add support for <Labeled fullWidth> (6089) (seniorquico)
  • Add support for <ArrayInput helperText> (6062) (WiXSL)
  • Add debounce to <AutocompleteArrayInput> setFilter call (6003) (djhi)
  • Add success notification type (5961) (WiXSL)
  • Add support for a React element as <Confirm content prop value (5954) (andrico1234)
  • Fix refresh strategy to avoid empty page while refreshing (6054) (fzaninotto)
  • Fix performance issue in forms with many validators (6092) (djhi)
  • Fix <ReferenceArrayField> passes empty data to child when loaded (6080) (fzaninotto)
  • Fix typo in private variable name in useGetList code (6069) (WiXSL)
  • [TypeScript] Fix ra-input-rich-text is missing types (6093) (fzaninotto)
  • [TypeScript] Fix <SimpleList> and other list components can't be used without context (6090) (fzaninotto)
  • [TypeScript] Export more types for ra-ui-materialui Input components props (6086) (tdnl)
  • [TypeScript] Fix typo in <FormWithRedirect> props types (6085) (djhi)
  • [TypeScript] Fix type definition for <Datagrid rowClick> prop doesn't allow for functions that return a Promise (6060) (jvert)
  • [Doc] Fix error in snippet for custom error page (6091) (danangekal)
  • [Doc] Fix installation snippet for 'ra-data-local-storage (6083) (luoxi)

v3.13.5

  • Fix <FilterLiveSearch> looses its value upon navigation (6066) (djhi)
  • Fix <AutocompleteInput> and <AutocompletearrayInput> options appear behind Dialog (6065) (fzaninotto)
  • Fix <DeleteWithConfirmButton> propagates click event down to <DatagridRow> (6063) (WiXSL)
  • Fix <ReferenceInput> incorrectly sets the total value (6058) (WiXSL)
  • [TypeScript] Fix useGetList return type assumes data and ids are possibly undefined (6053) (fzaninotto)
  • [TypeScript] Fix useRecordContext doesn't work without props (6046) (fzaninotto)
  • [Doc] Fix various typos and doc anchors (6059) (WiXSL)
  • [Doc] Fix missing newline in Inputs chapter (6064) (WiXSL)
  • [Doc] Fix <Admin ready> prop doesn't appear in the side navigation (6048) (WiXSL)
  • [Doc] Fix typo in bulkActionButtons documentation (6043) (WiXSL)
  • [Doc] Fix react-admin package README is out of date (6042) (WiXSL)
  • [Doc] Fix outdated indonesian translation (5937) (danangekal)

v3.13.4

  • Fix Go to definition goes to the compiled code in VSCode (6039) (fzaninotto)
  • Fix <RecordContext> and useRecordContext internal representation (6038) (djhi)
  • Fix simple example in Webpack version (for CodeSandbox) (6037) (djhi)
  • Fix actions={false} in a View component throws a runtime warning (6033) (fzaninotto)
  • Fix <Admin> with no i18nProvider logs warnings for missing translations (6032) (fzaninotto)
  • Fix duplicated export in ra-ui-materialui Form components (6030) (adrien-may)
  • [TypeScript] Fix cannot pass custom appbar to Layout (6035) (yasharzolmajdi)
  • [Doc] Fix missing mention of <Labeled> in Fields doc (6040) (fzaninotto)
  • [Doc] Synchronize Readme files (5994) (WiXSL)

v3.13.3

  • Fix <SortButton> labels must have a valid translation message (6029) (fzaninotto)
  • Fix useRecordSelection function name (6021) (WiXSL)
  • Fix warnings about missing props when using <List> as a standalone component (6017) (fzaninotto)
  • Fix Form looses dirty field values after cancelling navigation (6005) (djhi)
  • [Doc] Fix CHANGELOG typos (6018) (WiXSL)

v3.13.2

  • Fix <NullabelBooleanInput> ignores defaultValue prop (6002) (djhi)
  • Fix error when missing field type in ra-data-graphql-simple (5999) (Kilometers42)
  • Fix <TabbedForm> tab headers don't turn red on validation error (5984) (djhi)
  • Fix validate on submit doesn't reset validation errors (5962) (alanpoulain)
  • Fix forward compatibility between react-admin packages (5989) (fzaninotto)
  • Fix <TabbedFormView> component isn't exported (6011) (WiXSL)
  • Fix <SimpleFormView> component isn't exported (6006) (WiXSL)
  • [TypeScript] Fix TS error on <CheckboxGroupInput> label styles (6001) (andrico1234)
  • [TypeScript] Fix <AutoCompleteArrayInput> Props Interface isn't exported (5990) (djhi)
  • [TypeScript] Fix missing field in interface of <DeleteButton> props (5998) (DjebbZ)
  • [Doc] Improve design on search modal (5991) (zyhou)
  • [Doc] Fix section title level in List and Create/Edit chapters (6010) (fzaninotto)
  • [Doc] Fix <SimpleForm> JDocs (6004) (WiXSL)
  • [Doc] Fix missing DataProviderContext in Querying the API chapter (5988) (fzaninotto)
  • [Doc] Fix wrong sortBy prop prescription in <ReferenceField> documentation (5983) (guilbill)

v3.13.1

  • Fix <ReferenceArrayInput> props drilling (5977) (djhi)
  • Fix <ReferenceArrayInput> passes wrong props to children (5975) (djhi)
  • Fix flaky e2e tests (5982) (djhi)
  • Fix flaky e2e tests (5963) (djhi)
  • Fix flaky unit tests (5980) (djhi)
  • [Doc] Fix dataProvider.deleteMany response format in Tutorial (5973) (tbrrt11)
  • [Doc] Fix ra-data-local-storage package name in installation instructions (5972) (Kiailandi)
  • [Doc] Fix default value for useListContext().perPage (5967) (WiXSL)
  • [Doc] Fix missing reference to <DashboardMenuItem> component (5966) (WiXSL)
  • [Doc] Fix incomplete <UserMenu> description and reference (5965) (WiXSL)
  • [Doc] Fix buttons anchors in Reference section (5964) (WiXSL)
  • [Doc] Fix scrollable <TabbedForm> example (5960) (WiXSL)

v3.13

  • [BC Break] Move test utils (<TestContext>, renderWithRedux, renderHook) out of ra-core into a new ra-test package (5846) (djhi)

This is a slight BC break in development: any import of the Test utils from "ra-core" will fail and must be replaced by an import or "ra-test".

-import { renderWithRedux, useMatchingReferences} from 'react-admin';
+import { useMatchingReferences} from 'react-admin';
+import { renderWithRedux } from 'ra-test';
  • Add scroll to top on key navigation links (5905) (fzaninotto)
  • Add enabled options to query hooks to allow dependent queries (5849) (ValentinH)
  • Add ability to disable routing in <TabbedForm> and <TabbedShowLayout> (5945) (djhi)
  • Add ability to disable options in <SelectArrayInput> (5940) (paulo9mv)
  • Add support for selecting a range of <Datagrid> rows shift + click (5936) (m4theushw)
  • Add ability to override the <UserMenu> component style (5918) (WiXSL)
  • Add support for array values in <ReferenceArrayField> filter (5887) (srosset81)
  • Add ListContext in <ReferenceArrayInput> (5886) (djhi)
  • Migrate simple example to Vite.js instead of Webpack for faster development (5857) (djhi)
  • Fix <CheckboxGroupInput> style error when used in <ReferenceArrayInput> (5953) (djhi)
  • Fix unused ccs rule in <CreateButton> (5915) (WiXSL)
  • Fix <ShowButton> does not re-render when the disabled prop changes (5914) (WiXSL)
  • Fix <CreateButton> does not re-render when the disabled prop changes (5866) (andrico1234)
  • [TypeScript] Fix compilation fails with @types/react@17 (5950) (fzaninotto)
  • [Doc] Add buttons CSS API (5913) (WiXSL)
  • [Doc] Add CSS API for the <Toolbar> component (5955) (WiXSL)
  • [Doc] Fix snippet about custom query for <Datagrid> (5951) (Shumuu)
  • [Doc] Fix typos in docs and comments (5946) (WiXSL)
  • [Doc] Add <MenuItemLink> component CSS API reference (5919) (WiXSL)

v3.12.5

  • Fix useGetManyReference loading state detection (5931) (djhi)
  • Fix warning about required resource prop in components using ResourceContext (5929) (WiXSL)
  • Fix simple example doesn't run on CodeSandbox (5928) (ValentinH)
  • Fix warning about <ReferenceField label> prop when using an element as value (5927) (ValentinH)
  • Fix skipped Loading tests (5925) (djhi)
  • Fix <FunctionField> misses PropType for the render prop (5924) (WiXSL)
  • Fix form children props are overridden (5895) (djhi)
  • [Doc] Add lb4, processmaker3, and mixer data provider links (5939) (ckoliber)
  • [Doc] Fix minor typos (5912) (WiXSL)
  • [TypeScript] Fix data provider mutation types don't allow to specify Record type (5934) (andrico1234)

v3.12.4

  • Fix useQueryWithStore doesn't change loading state false when stacked queries end (5922) (djhi)
  • Fix <SkipNavigationButton> does not allow global CSS override via theme (5917) (WiXSL)
  • Fix <ReferenceArrayInputView> propTypes warning about required resource prop (5916) (ValentinH)
  • Fix warning when passing partial props to useListContext and other view context hooks (5802) (Luwangel)
  • Fix <SaveButton> incorrectly checks <FormContext> presence (5911) (djhi)
  • Fix <TabbedForm> does not display errors in hidden tabs on submit (5903) (djhi)
  • [Doc] Fix <SelectField> definition (5923) (WiXSL)
  • [Doc] Fix minor typo in Authorization introduction (5920) (jormaechea)

v3.12.3

  • Failed release

v3.12.2

  • Fix <DeleteWithConfirmButton> does not allow to override resource (5884) (djhi)
  • Fix List view error after delete when using a field with no record test (5900) (fzaninotto)
  • Fix <Datagrid> fails when selectedIds is undefined (5892) (jtomaszewski)
  • Fix useInput doesn't pass down the isRequired option (5812) (FACOLOMBANI)
  • Fix <ReferenceManyField> throws error after insert (5877) (fzaninotto)
  • Fix <ArrayInput> always overrides disabled prop in its child Inputs (5876) (djhi)
  • [TypeScript] Add missing classes prop on <SimpleFormIterator> (5890) (ValentinH)
  • [Doc] Fix <List> prop list is duplicated and incomplete (5880) (f-jost)
  • [Doc] Fix Custom App example (5897) (f107)
  • [Doc] Fix various links anchors (5875) (WiXSL)
  • [Doc] Fix minor typos in jsDoc of ra-ui-materialui components (5889) (WiXSL)
  • [Doc] Fix minor typo in <ReferenceInput> jsDoc (5885) (WiXSL)

v3.12.1

  • Fix missing type for ra.navigation.skip_nav translation message (5867) (bicstone)
  • Fix error when using <List> outside of a ResourceContext (5863) (fzaninotto)
  • Fix <DeleteButton mutationMode> handling (5855) (djhi)
  • Fix form.restart is not a function error (5852) (fzaninotto)
  • Fix regression on <ArrayInput> children validation (5850) (djhi)
  • Fix <TranslatableInputs> layout (5848) (djhi)
  • Fix regression in <SaveButton> causing an error about missing <FormContext> (5842) (djhi)
  • Fix missing French translation for the ra.navigation.skip_nav message (5841) (adrien-may)
  • [TypeScript] Fix onSuccess / onFailure types (5853) (fzaninotto)
  • [Doc] Improve Reference section (5864) (WiXSL)
  • [Doc] Fix typo in <List aside> example (5861) (vdimitroff)
  • [Doc] Add documentation for linkToRecord (5860) (jgabriele)
  • [Doc] Fix typo in <ResourceContextProvider> documentation (5859) (abdusco)
  • [Doc] Fix typos in code snippets (5845) (WiXSL)
  • [Doc] Fix onSuccess callback signature for optimistic and undoable queries (5851) (fzaninotto)
  • [Doc] Added hindi transations to the ecosystem (5798) (harshit-budhraja)

v3.12.0

  • Add support for submission validation errors in <Edit> and <Create> (5778) (alanpoulain)
  • Add <Edit mutationMode> prop, deprecate <Edit undoable> prop, and add optimistic mutation mode (5799) (fzaninotto)
  • Add support for keyboard navigation in Menu (5772) (andrico1234)
  • Add skip to content button when navigating with the keyboard (5804) (andrico1234)
  • Add ability to use <List> inside another page, without location sync (5741) (djhi)
  • Add <TranslatableInputs> and <TranslatableFields> to edit and show translatable content (5810) (djhi)
  • Add loading state support to the children of <ReferenceInput> (5767) (djhi)
  • Add Form Groups to better show the validation status of a group of inputs (5752) (djhi)
  • Add <MenuItemLink TooltipPops> to override tooltips in menus (5714) (WiXSL)
  • Add <SimpleForm component> to override the root component in forms (5703) (WiXSL)
  • Upgrade test dependencies (5679) (Luwangel)
  • Fix typos in CHANGELOG (5839) (WiXSL)
  • Fix syncWithLocation DOM warnings when using <List> (5837) (fzaninotto)
  • Fix useResourceDefinition isn't overridable with Props (5829) (djhi)
  • Fix white page on load when using <WithPermissions> twice (5822) (fzaninotto)
  • Fix useQueryWithStore flaky Test (5800) (djhi)
  • [TypeScript] Fix <Edit transform> and <Create transform> types don't accept async transformation (5818) (Developerius)
  • [Doc] Fix deprecated Hasura data provider (5820) (cpv123)
  • [Doc] Add coreBOS dataProvider (5817) (joebordes)

v3.11.4

  • Fix "dataProvider should return a rejected Promise" error in GraphQL providers (5795) (fzaninotto)
  • Fix Redux store is duplicated when the <Admin> component updates (5793) (djhi)
  • Fix "Please login to continue" notification remains after login (5789) (fzaninotto)
  • [Demo] Fix double spinner on loading and TS warnings (5790) (fzaninotto)
  • [TypeScript] Fix FormWithRedirect types aren't exported (5809) (djhi)
  • [Doc] Fix custom <Menu> example misses Dashboard link (5811) (fzaninotto)
  • [Doc] Fix documentation about the undoable prop, which only works in <Edit> and not <Create> (5806) (alanpoulain)
  • [Doc] Fix Create method API call URL example in `ra-data-json-server (5794) (tjsturos)

v3.11.3

  • Fix <EditGuesser> is broken (5756) (maaarghk)
  • Fix <AutocompleteInput> doesn't work decorated with <ReferenceInput> (5763) (djhi)
  • Fix warning about unsaved change when using ArrayInputs (5776) (djhi)
  • Fix uncaught error when dataProvider fails on undoable forms (5781) (fzaninotto)
  • Fix resource context fallback in <EditGuesser> and <ShowGuesser> (5762) (djhi)
  • [Demo] Fix Review Edit warning due to missing <EditContext> (5780) (fzaninotto)
  • [Demo] Fix app doesn't need a CSS preprocessor (5765) (fzaninotto)
  • [TypeScript] Fix the type of the custom theme used in <Admin> (5784) (djhi)
  • [TypeScript] Fix the return type of the exporter function used in <List> (5782) (ohbarye)
  • [Doc] Fix various typos in Input components prop lists (5777) (WiXSL)
  • [Doc] Fix typo in saveModifiers code comment (5770) (DjebbZ)
  • [Doc] Fix <AutocompleteInput resettable> prop isn't documented (5769) (fzaninotto)
  • [Doc] Fix minor typos in code comments (5758) (WiXSL)
  • [Doc] Fix bad return types and typos in jsDocs for ra-core and ra-ui-material-ui packages (5690) (WiXSL)

v3.11.2

  • Fix SaveContext error when no context is supplied (5738) (WiXSL)
  • Fix getPossibleReferences.possibleValues prop gets overridden after one call (5737) (WiXSL)
  • Fix "Cannot read property 'fullName' of undefined" error after logout (5735) (etienne-bondot)
  • Fix <ReferenceInput> does not show loader while possible values and reference record are loading (5731) (fzaninotto)
  • Fix <Create>, <Edit> and <Show> cannot be used outside of a <ResourceContextProvider> (5730) (fzaninotto)
  • Fix <EditGuesser> is broken (5728) (fzaninotto)
  • Fix findDOMNode warning in StrictMode when using <SimpleFormIterator> (5725) (fzaninotto)
  • Fix DOM warning when using <Edit transform> (5705) (fzaninotto)
  • [Doc] Fix typos in jsDoc, comments and string literals (5739) (WiXSL)
  • [Doc] Add ra-language-malay translation (5736) (kayuapi)
  • [Doc] Fix authProvider.getIdentity() signature in Authentication doc (5734) (adrien-may)
  • [Doc] Fix ra-data-json-server getMany is documented as multiple getOne calls (5729) (fzaninotto)
  • [Doc] Fix custom query with <Datagrid> example uses incorrect resource (5726) (fzaninotto)
  • [Doc] Fix typo in useSelectionState jsdoc (5715) (DjebbZ)
  • [Doc] Fix Changelog links (5712) (WiXSL)
  • [Doc] Fix wrong anchor in useListContent examples list (5711) (WiXSL)

v3.11.1

  • Fix select empty option in <AutocompleteInput> does not reset the input (5698) (AnkitaGupta111)
  • Fix <Empty> list component does not display when the Resource has no create component (5688) (djhi)
  • Fix <ExportButton> doesn't take permanent filter into account (5675) (fzaninotto)
  • Fix <Confirm> dialog shows a scroll bar on mobile (5674) (rkfg)
  • Fix <ReferenceField> and <ReferenceArrayField> performance by showing loader only after a delay (5668) (djhi)
  • [Doc] Fix link to react-final-form Field documentation in CreateEdit chapter (5689) (WiXSL)
  • [Doc] Fix outdated Hasura Data Provider reference (5686) (djhi)
  • [Doc] Fix syntax in actions example for useUpdate (5681) (abdenny)
  • [Doc] Fix custom theme doc doesn't explain how to override default theme (5676) (fzaninotto)
  • [Doc] Fix typos in Tutorial doc (5669) (paulo9mv)

v3.11.0

Starting with this version, react-admin applications send an anonymous request on mount to a telemetry server operated by marmelab. You can see this request by looking at the Network tab of your browser DevTools:

https://react-admin-telemetry.marmelab.com/react-admin-telemetry

The only data sent to the telemetry server is the admin domain (e.g. "example.com") - no personal data is ever sent, and no cookie is included in the response. The react-admin team uses these domains to track the usage of the framework.

You can opt out of telemetry by simply adding disableTelemetry to the <Admin> component:

// in src/App.js
import * as React from "react";
import { Admin } from 'react-admin';

const App = () => (
    <Admin disableTelemetry>
        // ...
    </Admin>
);
  • Add domain telemetry on app mount (5631) (djhi)
  • Add ability to access (and override) side effects in SaveContext (5604) (djhi)
  • Add support for disabled in <ArrayInput> (5618) (fzaninotto)
  • Add ability to customize the notification element in the <Login> page (5630) (hieusmiths)
  • Disable ripple effect on Buttons for improved performance (5598) (fzaninotto)
  • Fix <TestContext> doesn't contain notifications node (5659) (fzaninotto)
  • Fix <Filter> fails to show compound filters with no default value (5657) (fzaninotto)
  • Fix "Missing translation" console error when the dataProvider fails (5655) (fzaninotto)
  • Fix <FilterListItem> doesn't appear selected when more than one filter is applied (5644) (fzaninotto)
  • Fix usePermissions always triggers a re-render even though the permissions are unchanged (5607) (fzaninotto)
  • [Doc] Add rowStyle example usage to <SimpleList> jsDoc (5661) (vdimitroff)
  • [Doc] Fix <ReferenceField link> prop type to show that it accepts a function (5660) (vdimitroff)
  • [Doc] Fix missing import in List example (5658) (WiXSL)
  • [Doc] Fix syntax error in <List exporter> prop usage (5649) (WiXSL)
  • [Doc] Fix Sidebar size change resets the theme color (5646) (zheya08)
  • [Doc] Fix <ReferenceInput> and <ReferenceArrayInput> JSDocs point to the wrong dataProvider method (5645) (WiXSL)
  • [Doc] Add mention of saved queries in List chapter (5638) (fzaninotto)
  • [Doc] Fix <Admin history> prop injection documentation misses package version constraint (5538) (fzaninotto)

v3.10.4

  • Fix ra-data-simple-rest delete method fails because of bad header (5628) (fzaninotto)
  • Fix <FilterButtonMenuItem> isn't exported (5625) (fzaninotto)
  • Fix support for async validators in Create and Edit forms (5623) (djhi)
  • Fix useless rerenders in minor components (5616) (WiXSL)
  • Fix <AppBar> rerenders too often (5613) (fzaninotto)
  • Fix <ReferenceManyField> rerenders too often (5612) (fzaninotto)
  • Fix <ReferenceArrayInput> doesn't humanize the source if no label is given (5606) (alanpoulain)
  • [TypeScript] Fix <EditActionsProps> type is missing (5614) (fzaninotto)

v3.10.3

  • Fix <Datagrid optimized> freezes when using expand (5603) (fzaninotto)
  • Fix warning about deprecated prop in useCreateController (5594) (djhi)
  • Fix Edit notifications are not shown in React 17 (5583) (djhi)
  • Fix <ReferenceField> doesn't accept the emptyText prop (5579) (fzaninotto)
  • Fix logout causes error in useGetList (5577) (fzaninotto)
  • Fix <Sidebar> width cannot be modified by the child <Menu> (5575) (djhi)
  • Fix <FilterListItem> doesn't accept object values (5559) (mjattiot)
  • [TypeScript] Export SimpleFormIteratorProps interface (5595) (djhi)
  • [Doc] Fix create and edit controller usage documentation (5597) (fzaninotto)
  • [Doc] Fix typos in <XXXBase> components jsdoc (5589) (WiXSL)

v3.10.2

  • Fix ra-data-simple-rest delete response mime type (5568) (djhi)
  • Fix ra-data-graphql-simple delete result (5567) (djhi)
  • Fix Loading route missing theme (5560) (thcolin)
  • Fix variant and margin prop on an input have no effect inside a Filter form (5555) (fzaninotto)
  • [Demo] Fix missing Roboto font in e-commerce demo (5566) (fzaninotto)
  • [Doc] Fix link formatting in "Writing your own input" documentation (5556) (fzaninotto)
  • [Doc] Fix typos in Theming doc (5546) (DjebbZ)
  • [Doc] Fix code examples in TypeScript (5548) (WiXSL)
  • [Doc] Improve List chapter screenshots and cross-links (5543) (fzaninotto)
  • [Doc] Add link to MrHertal/react-admin-json-view package for JSON field and input (5542) (MrHertal)
  • [Doc] Update tutorial link (5540) (WiXSL)
  • [Doc] Fix sample REST translation of dataProvider calls in Tutorial (5535) (ayhandoslu)
  • [Doc] Fix sample REST translation of dataProvider calls in Data Providers documentation (5536) (ayhandoslu)

v3.10.1

  • Fix <ReferenceInput> ignores sort prop (5527) (djhi)
  • Fix <ExportButton> doesn't use UTF-8 mimetype (5499) (ValentinnDimitroff)
  • Fix setImmediate is not defined error when using SSR (5523) (fzaninotto)
  • Fix useDataProvider throws 'options is undefined' error when called without arguments (5524) (fzaninotto)
  • Fix options prop not being injected to View elements (5511) (WiXSL)
  • [TypeScript] Fix View types (5532) (djhi)
  • [Doc] Improve some docs anchors visibility (5515) (WiXSL)
  • [Doc] Add missing <Datagrid> css rules (5522) (WiXSL)
  • [Doc] Add ra-compact-ui to the Ecosystem docs (5520) (ValentinnDimitroff)
  • [Doc] Fix code examples errors and typos in jsDoc (5517) (ValentinnDimitroff)
  • [Doc] Fix typos (5510) (WiXSL)
  • [RFR] Fix typo in README example (5503) (janakact)
  • Use React 17 in examples to make sure react-admin works with this version (5453) (fzaninotto)
  • Migrate CI to GitHub Actions (5508) (djhi)

v3.10.0

  • Add <RecordContext> and Base components for Edit, Create and Show (5422) (djhi)
  • Add <ResourceContext> (5456) (djhi)
  • Update the <ResourceContext> to store a scalar instead of an object (5489) (fzaninotto)
  • Update <Reference> elements to use <ResourceContext> (5502) (fzaninotto)
  • Add ability to reset an <AutocompleteInput> (5396) (fzaninotto)
  • Add ability to disable redirection after logout (5458) (fzaninotto)
  • Add ability to customize the ready screen on empty admins (5441) (fzaninotto)
  • Add ability to disable the <UserMenu> without rewriting the <AppBar> (5421) (Luwangel)
  • Add ability to hide notification when authProvider.checkAuth() or authProvider.checkError() fail (5382) (fzaninotto)
  • Add ability to specify record type in <FunctionField> (5370) (fzaninotto)
  • Add ability to infer field type from data (5485) (fzaninotto)
  • Add rest props sanitizer for Fields and Inputs (5392) (fzaninotto)
  • Speed up show & hide filter (5411) (fzaninotto)
  • Fix typo on bulk action labels in French translation (5494) (etienne-bondot)
  • Fix <EmailField> with target prop fails TypeScript compilation (5488) (fzaninotto)
  • Fix crash when navigating away during undo period (5487) (fzaninotto)
  • Fix <ShowButton> does not update on to prop change (5483) (rkfg)
  • Fix error when using withDataProvider without options argument (5481) (fzaninotto)
  • [TypeScript] Fix layout component type (5473) (fzaninotto)
  • [TypeScript] Add rowStyle prop to SimpleList (5252) (ValentinnDimitroff)
  • [Doc] Improve Auth Provider chapter (5493) (fzaninotto)
  • [Doc] Fix typo (5482) (WiXSL)
  • [Doc] Fix docs typos and grammar (5480) (WiXSL)
  • [Demo] use stepper for customer actions (5472) (fzaninotto)

v3.9.6

v3.9.5

  • Fix Custom Menu doesn't always receive onMenuClick prop (5435) (fzaninotto)
  • Fix <Appbar> custom content flickers when loading (5434) (fzaninotto)
  • Fix several eslint warnings (5433) (Luwangel)
  • Fix <AutocompleteArrayInput> doesn't support the disabled prop (5432) (fzaninotto)
  • Fix Edit view doesn't work with ra-data-graphql-simple if resource id is of type Int! (5402) (EmrysMyrddin)
  • Fix useDataProvider signature prevents custom methods usage (5395) (djhi)
  • [TypeScript] Add type for theme (5429) (djhi)
  • [TypeScript] Export and Rename Pagination Types (5420) (djhi)
  • [Doc] Fix typos (5431) (WiXSL)
  • [Doc] Fix typos (5412) (WiXSL)

v3.9.4

  • Fix <AutocompleteInput> suggestions appear beneath Dialog (5393) (fzaninotto)
  • [TypeScript] Fix missing types for <AppBar> and other layout components (5410) (fzaninotto)
  • [TypeScript] Fix compilation error on defaultIdentity (5408) (fzaninotto)
  • [TypeScript] Fix missing path prop in Tab component type (5386) (nickwaelkens)
  • [Demo] Improve Order Edit UI (5407) (fzaninotto)
  • [Doc] Fix "Link to filtered list" snippet incorrectly requires all query parameters (5401) (fzaninotto)
  • [Doc] Add warning about inconsistent record shapes in custom data provider instructions (5391) (fzaninotto)
  • [Doc] Fix specialized dataProvider hooks usage (5390) (fzaninotto)
  • [Doc] Fix linking two inputs example (5389) (fzaninotto)
  • [Doc] Fix custom login snippet missing theme (5388) (fzaninotto)
  • [Doc] Remove Input defaultValue syntax with a function (5387) (fzaninotto)
  • [Doc] Replace TypeScript code by js code in examples documentation(5385) (WiXSL)
  • [Doc] Fix <EmailField> and <UrlField> definitions (5384) (WiXSL)
  • [Doc] Fix <FileInput> props table format documentation(5383) (WiXSL)

v3.9.3

  • Fix dataProvider fails silently when response has wrong type (5373) (fzaninotto)
  • Fix default authProvider.getIdentity() triggers infinite loop (5381) (fzaninotto)
  • Fix duplicated lodash package when bundling react-admin without tree shaking (5380) (impronunciable)
  • Fix default AuthContext value fails TypeScript compilation (5372) (fzaninotto)
  • Fix unused css rules in Input components (5345) (WiXSL)
  • Fix support for className prop in <SimpleFormIterator> (5368) (edulix)
  • [Doc] Fix rendering a Datagrid outside a Resource instructions (5371) (fzaninotto)
  • [Doc] Add Inputs and Fields CSS Api documentation (5346) (WiXSL)
  • [Doc] Add open in Gitpod button in README (5364) (nisarhassan12)
  • [Doc] Fix Demo Video Links in the READMEs of ra- packages (5369) (djhi)
  • [Doc] Add mentions of the Enterprise Edition components in documentation (5363) (fzaninotto)
  • [Doc] Fix wrong link in shop demo's README (5357) (DjebbZ)
  • [Doc] Fix links to source code following TypeScript migration (5358) (WiXSL)
  • [Doc] Add react-router link in Resource documentation (5356) (WiXSL)
  • [Doc] Fix typo in CreateEdit chapter introduction (5355) (pamuche)
  • [Doc] Fix useAuthState hook js docs (5351) (WiXSL)
  • [Doc] Fix import in <AdminUI> code example (5352) (WiXSL)

v3.9.2

  • Add onSuccess and onFailure props to <DeleteButton> (5310) (gavacho)
  • Fix sideEffect saga can throw undefined as error (5315) (Hemant-yadav)
  • Fix ra-data-graphql only considers resource implementing GET_ONE and GET_LIST (5305) (Kilometers42)
  • Fix <TabbedShowLayout> resolves path incorrectly if first tab is null (5312) (WiXSL)

v3.9.1

  • Fix packages dependencies pointing to react-admin beta and causing duplicate packages (5347) (WiXSL)

v3.9.0

  • Emit TypeScript types (5291) (fzaninotto)
  • Add user name and avatar on the top bar (5180) (fzaninotto)
  • Add ability to use a custom count header in ra-data-simple-rest data provider instead of Content-Range (5224) (alexisjanvier)
  • Add localStorage data provider (5329) (fzaninotto)
  • Add ability to customize the option labels of <NullableBooleanInput> (5311) (gavacho)
  • Add ability to pass custom icons to <BooleanField> to show as values (5281) (WiXSL)
  • Add ability to disable notifications of useCheckAuth and useLogoutIfAccessDenied hooks (5255) (WiXSL)
  • Fix warning about <Error> component proptypes when using string error (5341) (fzaninotto)
  • Convert <Tab> component to TypeScript (5342) (fzaninotto)
  • Fix <Edit> logs warning when using transform prop (5332) (fzaninotto)
  • Fix <NullableBooleanInput> empty value isn't selectable (5326) (fzaninotto)
  • Fix <Edit> refreshes dirty forms if tab is backgrounded (5319) (WiXSL)
  • Fix TypeScript types (5318) (djhi)
  • Fix TypeScrip types (5313) (djhi)
  • Fix warning when passing FieldProps to <Input> components (5300) (fzaninotto)
  • Fix TypeScript types (5298) (djhi)
  • Fix <LoadingIndicator> does not get class overrides (5279) (WiXSL)
  • Fix IsRowSelectable return type (5278) (WiXSL)
  • Fix useGetIdentity fails when there is no authProvider (5209) (fzaninotto)
  • Fix <Datagrid> doesn't support forwarding ref (5202) (jeiea)
  • [BC Break] Rename duplicate Sort, Filter and Navigation types to allow type emission from react-admin (5257) (fzaninotto)
  • [Doc] Fix missing link to <DateTimeInput> in reference documentation (5340) (Hettomei)
  • [Doc] Fix a typo in the ra-data-local-storage readme (5333) (WiXSL)
  • [Doc] Fix <UserMenu> example in theming docs (5328) (ceracera)
  • [Doc] Add link to a new REST data provider, variant of ra-data-simple-rest, allowing configurable id field (5290) (zachrybaker)
  • [Doc] Fix the instructions for customizing the Toolbar in <SaveButton> (5285) (Luwangel)
  • [Doc] Add ra-enterprise packages to Ecosystem documentation (5284) (djhi)
  • [Doc] Fix http docs links (5277) (WiXSL)
  • [Doc] Fix changelog links (5276) (WiXSL)
  • [Doc] Fix minor typo in Actions documentation (5274) (lipusal)

For the changelog of older releases, check the GitHub repository: