Connexe : #594
Dans #594, lorsqu'un brouillon de publication a fini d'être enregistré, nous ajustons l'URL du navigateur actuel pour refléter le nouvel ID de publication. Bien que cela soit nécessaire dans le contexte de l'écran de l'éditeur dédié, cela réduit la portabilité de l'éditeur car ces changements d'URL ne sont pas applicables en dehors de ce contexte. Si nous voulons autoriser l'initialisation d'un éditeur sur d'autres écrans (par exemple, front-end, Customizer), nous devrons peut-être explorer des options pour injecter des middlewares spécifiques au contexte. Cela pourrait servir de modèle d'extensibilité générique pour les effets secondaires des changements d'état.
Pour l'exemple de navigation de sauvegarde de publication, cela pourrait ressembler à quelque chose comme :
wp.editor.injectMiddleware( ( store ) => ( next ) => ( action ) => {
const { type, isNew, post } = action;
if ( 'REQUEST_POST_UPDATE_SUCCESS' === type ) {
const [ baseUrl, query ] = window.location.href.split( '?' );
const qs = parse( query || '' );
const newUrl = baseUrl + '?' + stringify( {
...qs,
post_id: newPost.id,
} );
window.history.replaceState( {}, 'Post ' + newPost.id, newUrl );
}
return next( action );
} );
Voir également:
middleware
)Découvrez automattic/notifications-panel et comment nous procédons pour l'intégrer à automattic/wp-calypso
actions par défaut pour le mode iframe
intégrations personnalisées dans Calypso
d'ailleurs ça marche incroyablement bien
8 mois se sont écoulés et nous en avons toujours besoin 😃 Nous avons eu une refactorisation majeure dans la façon dont nous gérons les données, mais les middlewares jouent toujours un rôle important. Nous pourrions explorer si la bibliothèque de crochets serait un bon ajustement ici. Nous pouvons injecter des middlewares supplémentaires à l'aide de filtres ici : https://github.com/WordPress/gutenberg/blob/master/editor/store/middlewares.js#L40. @youknowriad a suggéré de créer une API interne pour commencer.
Ceci est remplacé par de nouveaux modèles avec module de données : notamment les API subscribe
et withSelect
, qui permettent à un développeur d'observer et de réagir aux changements au fil du temps : https://github.com/WordPress /gutenberg/blob/master/packages/data/README.md
Commentaire le plus utile
Découvrez automattic/notifications-panel et comment nous procédons pour l'intégrer à automattic/wp-calypso
injection des activateurs
actions par défaut pour le mode iframe
intégrations personnalisées dans Calypso
d'ailleurs ça marche incroyablement bien