PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.3.3
Presto Player v2.3.3
4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / hooks / useSave.js
presto-player / src / hooks Last commit date
useSave.js 3 years ago
useSave.js
39 lines
1 import { __ } from "@wordpress/i18n";
2 import { select, useDispatch } from "@wordpress/data";
3 import { store as coreStore } from "@wordpress/core-data";
4
5 export default function useSave() {
6 const { saveEditedEntityRecord } = useDispatch(coreStore);
7
8 /**
9 * Handle the form submission
10 */
11 const save = async () => {
12 // build up pending records to save.
13 const dirtyRecords = select(
14 coreStore
15 ).__experimentalGetDirtyEntityRecords();
16 const pendingSavedRecords = [];
17
18 dirtyRecords.forEach(({ kind, name, key }) => {
19 pendingSavedRecords.push(
20 saveEditedEntityRecord(kind, name, key, {
21 throwOnError: true,
22 })
23 );
24 });
25
26 // check values.
27 const values = await Promise.all(pendingSavedRecords);
28 if (values.some((value) => typeof value === "undefined")) {
29 throw { message: "Saving failed." };
30 }
31
32 return true;
33 };
34
35 return {
36 save,
37 };
38 }
39