This package contains three components, each respectively designed to display, create, and edit content within a dialog.
yarn install @dslab/ra-dialog-crud
This React Admin component renders a button opening a <Show>
view inside a dialog, hence allowing to show a record without leaving the current view.
import { ShowInDialogButton } from '@dslab/ra-dialog-crud';
import {
Datagrid,
EmailField,
List,
SimpleShowLayout,
TextField,
} from 'react-admin';
export const UserList = () => (
<List>
<Datagrid>
<TextField source="first_name" />
<TextField source="last_name" />
<EmailField source="email" />
<ShowInDialogButton>
<SimpleShowLayout>
<TextField source="first_name" />
<TextField source="last_name" />
<TextField source="email" />
</SimpleShowLayout>
</ShowInDialogButton>
</Datagrid>
</List>
);
The component accepts the following props:
Prop | Required | Type | Default | Description |
---|---|---|---|---|
children |
Required | ReactNode |
The content of the dialog | |
title |
Optional |
string or ReactElement
|
The title of the dialog | |
maxWidth |
Optional | string |
sm | The max width of the dialog |
fullWidth |
Optional | boolean |
false |
If true , the dialog stretches to the full width of the screen |
resource |
Optional | string |
The resource name | |
label |
Optional | string |
Allows to override the default button label. I18N is supported | |
id |
Optional |
string or number
|
The record id. If not provided, it will be deduced from the record context | |
queryOptions |
Optional | object |
Options for the dataProvider.getOne() call |
|
disableAuthentication |
Optional | boolean |
Set to true to disable the authentication check |
|
emptyWhileLoading |
Optional | boolean |
Set to true to show a loading indicator while the list is loading |
|
sx |
Optional | object |
Override the styles applied to the dialog component |
This React Admin component offers a way to open a <Create>
view inside a dialog, hence allowing to create a new record without leaving the current view.
import { CreateInDialogButton } from '@dslab/ra-dialog-crud';
import {
Datagrid,
EmailField,
List,
SimpleForm,
TextField,
TextInput,
TopToolbar,
} from 'react-admin';
const ListActions = () => (
<TopToolbar>
<CreateInDialogButton>
<SimpleForm>
<TextInput source="first_name" />
<TextInput source="last_name" />
<TextInput source="email" />
</SimpleForm>
</CreateInDialogButton>
</TopToolbar>
);
export const UserList = () => (
<List actions={<ListActions />}>
<Datagrid>
<TextField source="first_name" />
<TextField source="last_name" />
<EmailField source="email" />
</Datagrid>
</List>
);
The component accepts the following props:
Prop | Required | Type | Default | Description |
---|---|---|---|---|
children |
Required | ReactNode |
The content of the dialog | |
title |
Optional |
string or ReactElement
|
The title of the dialog | |
maxWidth |
Optional | string |
sm | The max width of the dialog |
fullWidth |
Optional | boolean |
false |
If true , the dialog stretches to the full width of the screen |
resource |
Optional | string |
The resource name | |
label |
Optional | string |
Allows to override the default button label. I18N is supported | |
mutationOptions |
Optional | object |
Options for the dataProvider.create() call |
|
disableAuthentication |
Optional | boolean |
Set to true to disable the authentication check |
|
transform |
Optional | function |
Allows to transform a record after the user has submitted the form but before the record is passed to dataProvider.create()
|
|
record |
Optional | object |
Allows to initialize the form with non-empty values | |
sx |
Optional | object |
Override the styles applied to the dialog component |
This React Admin component renders a button opening an <Edit>
view inside a dialog, hence allowing to edit a record without leaving the current view.
import { EditInDialogButton } from '@dslab/ra-dialog-crud';
import {
Datagrid,
EmailField,
List,
SimpleForm,
TextField,
TextInput,
} from 'react-admin';
export const UserList = () => (
<List>
<Datagrid>
<TextField source="first_name" />
<TextField source="last_name" />
<EmailField source="email" />
<EditInDialogButton>
<SimpleForm>
<TextInput source="first_name" />
<TextInput source="last_name" />
<TextInput source="email" />
</SimpleForm>
</EditInDialogButton>
</Datagrid>
</List>
);
The component accepts the following props:
Prop | Required | Type | Default | Description |
---|---|---|---|---|
children |
Required | ReactNode |
The content of the dialog | |
title |
Optional |
string or ReactElement
|
The title of the dialog | |
maxWidth |
Optional | string |
sm | The max width of the dialog |
fullWidth |
Optional | boolean |
false |
If true , the dialog stretches to the full width of the screen |
resource |
Optional | string |
The resource name | |
label |
Optional | string |
Allows to override the default button label. I18N is supported | |
queryOptions |
Optional | object |
Options for the dataProvider.getOne() call |
|
mutationOptions |
Optional | object |
Options for the dataProvider.update() call |
|
mutationMode |
Optional | string |
undoable |
The mode that determines when the side effects (redirection, notifications, etc.) are executed. React-admin offers three modes for mutations: pessimistic , optimistic and undoable
|
id |
Optional |
string or number
|
The record id. If not provided, it will be deduced from the record context | |
disableAuthentication |
Optional | boolean |
Set to true to disable the authentication check |
|
transform |
Optional | function |
Allows to transform a record after the user has submitted the form but before the record is passed to dataProvider.update()
|
|
emptyWhileLoading |
Optional | boolean |
Set to true to show a loading indicator while the list is loading |
|
sx |
Optional | object |
Override the styles applied to the dialog component |
SmartCommunityLab
- Website: http://www.smartcommunitylab.it/
- Github: @smartcommunitylab
Give a ⭐️ if this project helped you!
Copyright © 2023 SmartCommunityLab.
This project is MIT licensed.