diff --git a/README.md b/README.md index 6d649d39966..2bb98a71997 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ See the [Data Providers documentation](https://marmelab.com/react-admin/DataProv ## Batteries Included But Removable -React-admin is designed as a library of loosely coupled React components built on top of [material-ui](http://material-ui.com/), in addition to controller functions implemented the Redux way. It is very easy to replace one part of react-admin with your own, e.g. to use a custom datagrid, GraphQL instead of REST, or bootstrap instead of Material Design. +React-admin is designed as a library of loosely coupled React components built on top of [material-ui](https://material-ui.com/), in addition to controller functions implemented the Redux way. It is very easy to replace one part of react-admin with your own, e.g. to use a custom datagrid, GraphQL instead of REST, or bootstrap instead of Material Design. ## Examples diff --git a/docs/Admin.md b/docs/Admin.md index 52a789c5f9f..16e1288f062 100644 --- a/docs/Admin.md +++ b/docs/Admin.md @@ -217,7 +217,7 @@ See the [Theming documentation](./Theming.md#using-a-custom-menu) for more detai ## `theme` -Material UI supports [theming](http://material-ui.com/customization/themes). This lets you customize the look and feel of an admin by overriding fonts, colors, and spacing. You can provide a custom material ui theme by using the `theme` prop: +Material UI supports [theming](https://material-ui.com/customization/themes). This lets you customize the look and feel of an admin by overriding fonts, colors, and spacing. You can provide a custom material ui theme by using the `theme` prop: ```jsx import { createMuiTheme } from '@material-ui/core/styles'; diff --git a/docs/Authorization.md b/docs/Authorization.md index ff8ccf2ceb5..281ddc65efd 100644 --- a/docs/Authorization.md +++ b/docs/Authorization.md @@ -160,7 +160,7 @@ export const UserList = ({ permissions, ...props }) => ## Restricting Access to the Dashboard -React-admin injects the permissions into the component provided as a [`dashboard`]('./Admin.md#dashboard), too: +React-admin injects the permissions into the component provided as a [`dashboard`](./Admin.md#dashboard), too: ```jsx // in src/Dashboard.js diff --git a/docs/CreateEdit.md b/docs/CreateEdit.md index 96c94e3a58f..e7e4e4e3280 100644 --- a/docs/CreateEdit.md +++ b/docs/CreateEdit.md @@ -832,7 +832,7 @@ Here are the props received by the `Toolbar` component when passed as the `toolb **Tip**: Don't forget to also set the `redirect` prop of the Form component to handle submission by the `ENTER` key. -**Tip**: To alter the form values before submitting, you should use the `handleSubmit` prop. See [Altering the Form Values before Submitting](./Actions.md#altering-the-form-values-before-submitting) for more information and examples. +**Tip**: To alter the form values before submitting, you should use the `handleSubmit` prop. See [Altering the Form Values before Submitting](#altering-the-form-values-before-submitting) for more information and examples. ## Variant @@ -951,7 +951,7 @@ export const UserEdit = ({ permissions, ...props }) => ## Altering the Form Values before Submitting Sometimes, you may want your custom action to alter the form values before actually sending them to the `dataProvider`. -For those cases, you should know that every button inside a form [Toolbar](/CreateEdit.md#toolbar) receive two props: +For those cases, you should know that every button inside a form [Toolbar](#toolbar) receive two props: - `handleSubmit` which calls the default form save method - `handleSubmitWithRedirect` which calls the default form save method but allows to specify a custom redirection diff --git a/docs/CustomApp.md b/docs/CustomApp.md index 6e9e513765f..48fe238b5a5 100644 --- a/docs/CustomApp.md +++ b/docs/CustomApp.md @@ -251,4 +251,4 @@ const App = () => ( Note that this example still uses ``, because this component lazily initializes the store for the resource data. -This application has no sidebar, no theming, no [auth control](./Authentication.md#restricting-access-to-a-custom-page) - it's up to you to add these. From there on, you can customize pretty much anything you want. +This application has no sidebar, no theming, no [auth control](./Authentication.md#useauthenticated-hook) - it's up to you to add these. From there on, you can customize pretty much anything you want. diff --git a/docs/DataProviders.md b/docs/DataProviders.md index 66593fc51f7..ae491860abe 100644 --- a/docs/DataProviders.md +++ b/docs/DataProviders.md @@ -58,7 +58,7 @@ You can find an example Data Provider implementation at the end of this chapter. The react-admin project includes 4 Data Providers: -* Simple REST: [marmelab/ra-data-simple-rest](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-simple-rest) ([read more below](#simple-rest)). It serves mostly as an example. Incidentally, it is compatible with the [FakeRest](https://github.com/marmelab/FakeRest) API. +* Simple REST: [marmelab/ra-data-simple-rest](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-simple-rest) ([read more below](#usage)). It serves mostly as an example. Incidentally, it is compatible with the [FakeRest](https://github.com/marmelab/FakeRest) API. * **[JSON server](https://github.com/typicode/json-server)**: [marmelab/ra-data-json-server](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-json-server). Great for prototyping an admin over a yet-to-be-developed REST API. * [Graphcool](https://www.graph.cool/): [marmelab/ra-data-graphcool](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-graphcool). A provider for GraphQL servers following the Graphcool convention. Incidentally, this package builds up on [marmelab/ra-data-graphql](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-graphql), which lets you develop providers for other GraphQL conventions. * Local JSON: [marmelab/ra-data-fakerest](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-fakerest). Based on a local object, it doesn't even use HTTP. Use it for testing purposes. @@ -88,7 +88,7 @@ Developers from the react-admin community have open-sourced Data Providers for m If you've written a Data Provider for another backend, and open-sourced it, please help complete this list with your package. -**Tip**: In version 1, react-admin was called [admin-on-rest](/admin-on-rest) (AOR), and developers shared Data Providers for even more backends. Due to breaking changes in v2, these providers are no longer working. Fortunately, Data Providers aren't complex pieces of code, and using legacy Data Provider with a recent react-admin version requires minimal changes. If you are a maintainer of one of these projects, we would warmly welcome an upgrade. +**Tip**: In version 1, react-admin was called [admin-on-rest](https://github.com/marmelab/admin-on-rest) (AOR), and developers shared Data Providers for even more backends. Due to breaking changes in v2, these providers are no longer working. Fortunately, Data Providers aren't complex pieces of code, and using legacy Data Provider with a recent react-admin version requires minimal changes. If you are a maintainer of one of these projects, we would warmly welcome an upgrade. * **[DynamoDb](https://github.com/abiglobalhealth/aor-dynamodb-client)**: [abiglobalhealth/aor-dynamodb-client](https://github.com/abiglobalhealth/aor-dynamodb-client) * **[Epilogue](https://github.com/dchester/epilogue)**: [dunghuynh/aor-epilogue-client](https://github.com/dunghuynh/aor-epilogue-client) diff --git a/docs/Ecosystem.md b/docs/Ecosystem.md index 638edca3602..4c839248e9c 100644 --- a/docs/Ecosystem.md +++ b/docs/Ecosystem.md @@ -68,8 +68,8 @@ See the [translation](./Translation.md#available-locales) page. ## Miscellaneous - [marmelab/ra-realtime](https://github.com/marmelab/react-admin/tree/master/packages/ra-realtime): enable realtime updates -- [marmelab/ra-tree-ui-materialui](https://github.com/marmelab/react-admin/blob/master/packages/ra-tree-ui-materialui/): Components to show data represented as a tree. This package is part of our [Labs](/Labs.md) experimentations. This means it misses some features and might not handle all corner cases. Use it at your own risks. Besides, we would really appreciate some feedback! -- [marmelab/ra-tree-core](https://github.com/marmelab/react-admin/blob/master/packages/ra-tree-core/): Components providing the logic but no UI to show data represented as a tree. This package is part of our [Labs](/Labs.md) experimentations. This means it misses some features and might not handle all corner cases. Use it at your own risks. Besides, we would really appreciate some feedback! +- [marmelab/ra-tree-ui-materialui](https://github.com/marmelab/react-admin/blob/master/packages/ra-tree-ui-materialui/): Components to show data represented as a tree. Only compatible with react-admin v2 for now. +- [marmelab/ra-tree-core](https://github.com/marmelab/react-admin/blob/master/packages/ra-tree-core/): Components providing the logic but no UI to show data represented as a tree. Only compatible with react-admin v2 for now. - [ra-customizable-datagrid](https://github.com/fizix-io/ra-customizable-datagrid): plugin that allows to hide / show columns dynamically. - [FusionWorks/react-admin-google-maps](https://github.com/FusionWorks/react-admin-google-maps): Input/view components for displaying location using Google Maps. - [api-platform/admin](https://api-platform.com/docs/admin): create a fully featured admin using React Admin for API supporting the [Hydra Core Vocabulary](http://www.hydra-cg.com/), including but not limited to APIs created using the [API Platform framework](https://api-platform.com) diff --git a/docs/FAQ.md b/docs/FAQ.md index 002c168e846..ed424c38581 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -170,7 +170,7 @@ You can declare a resource without `list` prop, to manage reference for example: But with the default menu, resources without `list` prop aren't shown. -In order to have a specific resource without `list` prop listed on the menu, you have to [write your own custom menu](./Theming.html#using-a-custom-menu). +In order to have a specific resource without `list` prop listed on the menu, you have to [write your own custom menu](./Theming.md#using-a-custom-menu). ```jsx const MyMenu = ({ resources, onMenuClick, logout }) => ( diff --git a/docs/Fields.md b/docs/Fields.md index 8b5a8927d05..005dca5ca3d 100644 --- a/docs/Fields.md +++ b/docs/Fields.md @@ -163,7 +163,7 @@ If you need to override it, you can use the `valueLabelTrue` and `valueLabelFals ## `` -Displays a value inside a ["Chip"](http://material-ui.com/demos/chip), which is Material UI's term for a label. +Displays a value inside a ["Chip"](https://material-ui.com/components/chips), which is Material UI's term for a label. ```jsx import { ChipField } from 'react-admin'; diff --git a/docs/Inputs.md b/docs/Inputs.md index 72452610981..f6d064866c8 100644 --- a/docs/Inputs.md +++ b/docs/Inputs.md @@ -359,7 +359,7 @@ import FavoriteIcon from '@material-ui/icons/Favorite'; ![CustomBooleanInputCheckIcon](./img/custom-switch-icon.png) -Refer to [Material UI Switch documentation](http://material-ui.com/api/switch) for more details. +Refer to [Material UI Switch documentation](https://material-ui.com/api/switch) for more details. `` renders as a dropdown list, allowing to choose between true, false, and null values. @@ -458,7 +458,7 @@ Refer to [Material UI Checkbox documentation](https://material-ui.com/api/checkb ## `` -Ideal for editing dates, `` renders a standard browser [Date Picker](https://material-ui.com/demos/pickers/#date-pickers), so the appearance depends on the browser (and falls back to a text input on safari). +Ideal for editing dates, `` renders a standard browser [Date Picker](https://material-ui.com/components/pickers/#date-pickers), so the appearance depends on the browser (and falls back to a text input on safari). ```jsx import { DateInput } from 'react-admin'; @@ -472,7 +472,7 @@ import { DateInput } from 'react-admin'; ## `` -An input for editing dates with time. `` renders a standard browser [Date and Time Picker](https://material-ui.com/demos/pickers/#date-amp-time-pickers), so the appearance depends on the browser (and falls back to a text input on safari). +An input for editing dates with time. `` renders a standard browser [Date and Time Picker](https://material-ui.com/components/pickers/#date-amp-time-pickers), so the appearance depends on the browser (and falls back to a text input on safari). ```jsx import { DateTimeInput } from 'react-admin'; @@ -496,7 +496,7 @@ Previews are enabled using `` children, as following: ``` -Writing a custom field component for displaying the current value(s) is easy: it's a standard [field](./Fields.md#writing_your_own_field_component). +Writing a custom field component for displaying the current value(s) is easy: it's a standard [field](./Fields.md#writing-your-own-field-component). When receiving **new** files, `ImageInput` will add a `rawFile` property to the object passed as the `record` prop of children. This `rawFile` is the [File](https://developer.mozilla.org/en-US/docs/Web/API/File) instance of the newly added file. This can be useful to display information about size or mimetype inside a custom field. @@ -510,7 +510,7 @@ If the default Dropzone label doesn't fit with your need, you can pass a `placeh ``` -Note that the image upload returns a [File](https://developer.mozilla.org/en/docs/Web/API/File) object. It is your responsibility to handle it depending on your API behavior. You can for instance encode it in base64, or send it as a multi-part form data. Check [this example](./DataProviders.md#decorating-your-rest-client-example-of-file-upload) for base64 encoding data by extending the REST Client. +Note that the image upload returns a [File](https://developer.mozilla.org/en/docs/Web/API/File) object. It is your responsibility to handle it depending on your API behavior. You can for instance encode it in base64, or send it as a multi-part form data. Check [this example](./DataProviders.md#extending-a-data-provider-example-of-file-upload) for base64 encoding data by extending the REST Client. ## `` @@ -526,7 +526,7 @@ Previews (actually a simple list of files names) are enabled using `` ``` -Writing a custom field component for displaying the current value(s) is easy: it's a standard [field](./Fields.md#writing_your_own_field_component). +Writing a custom field component for displaying the current value(s) is easy: it's a standard [field](./Fields.md#writing-your-own-field-component). When receiving **new** files, `FileInput` will add a `rawFile` property to the object passed as the `record` prop of children. This `rawFile` is the [File](https://developer.mozilla.org/en-US/docs/Web/API/File) instance of the newly added file. This can be useful to display information about size or mimetype inside a custom field. @@ -540,7 +540,7 @@ If the default Dropzone label doesn't fit with your need, you can pass a `placeh ``` -Note that the file upload returns a [File](https://developer.mozilla.org/en/docs/Web/API/File) object. It is your responsibility to handle it depending on your API behavior. You can for instance encode it in base64, or send it as a multi-part form data. Check [this example](./DataProviders.md#decorating-your-rest-client-example-of-file-upload) for base64 encoding data by extending the REST Client. +Note that the file upload returns a [File](https://developer.mozilla.org/en/docs/Web/API/File) object. It is your responsibility to handle it depending on your API behavior. You can for instance encode it in base64, or send it as a multi-part form data. Check [this example](./DataProviders.md#extending-a-data-provider-example-of-file-upload) for base64 encoding data by extending the REST Client. ## `` @@ -631,7 +631,7 @@ Lastly, use the `options` attribute if you want to override any of Material UI's ``` {% endraw %} -Refer to [Material UI RadioGroup documentation](http://material-ui.com/api/radio-group) for more details. +Refer to [Material UI RadioGroup documentation](https://material-ui.com/api/radio-group) for more details. **Tip**: If you want to populate the `choices` attribute with a list of related records, you should decorate `` with [``](#referenceinput), and leave the `choices` empty: @@ -887,7 +887,7 @@ const configureQuill = quill => quill.getModule('toolbar').addHandler('bold', fu ## `` -To let users choose a value in a list using a dropdown, use ``. It renders using [Material ui's ``](https://material-ui.com/api/select). Set the `choices` attribute to determine the options (with `id`, `name` tuples): ```jsx import { SelectInput } from 'react-admin'; @@ -969,7 +969,7 @@ Lastly, use the `options` attribute if you want to override any of Material UI's ``` {% endraw %} -Refer to [Material UI Select documentation](http://material-ui.com/api/select) for more details. +Refer to [Material UI Select documentation](https://material-ui.com/api/select) for more details. **Tip**: If you want to populate the `choices` attribute with a list of related records, you should decorate `` with [``](#referenceinput), and leave the `choices` empty: @@ -1011,7 +1011,7 @@ const choices = [ ## `` -To let users choose several values in a list using a dropdown, use ``. It renders using [Material ui's ``](https://material-ui.com/api/select). Set the `choices` attribute to determine the options (with `id`, `name` tuples): ```js import { SelectArrayInput } from 'react-admin'; @@ -1068,7 +1068,7 @@ Lastly, use the `options` attribute if you want to override any of the `