¿Es posible utilizar startUndoable con acción personalizada en reaccionar-admin?

Pregunta hecha: hace 8 meses Ultima actividad: hace 8 meses
up 0 down

Me preguntaba si pasa una acción personalizada con una zona de alcance y el tipo de encargo (que no se actualice) a startUndoable es factible.

O es posible que de alguna manera a definir un patrón con los valores de meta y en base a este patrón de la vista sería re-prestados?

En este caso, la importación es la actualización de una sola propiedad en la base de datos con un valor fijo.

Esta es la acción:

export const importParcel = ({ id }) => ({
    type: IMPORT_PARCEL,
    payload: {
        id
    },
    meta: {
        resource: 'parcels',
        fetch: IMPORT,
        refresh: true,
        onSuccess: {
            notification: {
                body: 'Parcel Imported',
                level: 'info'
            }
        },
        onFailure: {
            notification: {
                body: 'Error: Import failed',
                level: 'warning'
            }
        }
    }
});

Este es el controlador:

fetchUtils
.fetchJson(`/${resource}/import/${params.id}`, {
    method: 'PUT',
    headers: getAuthenticationHeaders()
})
.then(res => ({ data: res.json }));

¡Gracias por tu ayuda! :)

1 respuesta

up 0 down accepted

Por supuesto, como se explica en el Representación optimistas y de deshacer documentación puede crear cualquier acción que usted desee con startUndoable:

import { startUndoable as startUndoableAction } from 'ra-core';

class App extends Component {
    handleImport = () => {
        this.props.startUndoable(importParcel());
    };

    render() {
        return <Button onClick={this.handleImport}>Import Parcel</Button>;
    }
}

export default connect(null, { startUndoable: startUndoableAction })(App);

Usted debe tener una acción onSuccess la notificación con el fin de mostrar el botón de deshacer.

El resto se debe implementar en su proveedor de datos.