HEX
Server: nginx/1.18.0
System: Linux mail.dakarash.co.id 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
File: /home/dakarash.co.id/public_html/wp-content/plugins/presto-player/src/hooks/useSave.js
import { __ } from "@wordpress/i18n";
import { select, useDispatch } from "@wordpress/data";
import { store as coreStore } from "@wordpress/core-data";

export default function useSave() {
  const { saveEditedEntityRecord } = useDispatch(coreStore);

  /**
   * Handle the form submission
   */
  const save = async () => {
    // build up pending records to save.
    const dirtyRecords = select(
      coreStore
    ).__experimentalGetDirtyEntityRecords();
    const pendingSavedRecords = [];

    dirtyRecords.forEach(({ kind, name, key }) => {
      pendingSavedRecords.push(
        saveEditedEntityRecord(kind, name, key, {
          throwOnError: true,
        })
      );
    });

    // check values.
    const values = await Promise.all(pendingSavedRecords);
    if (values.some((value) => typeof value === "undefined")) {
      throw { message: "Saving failed." };
    }

    return true;
  };

  return {
    save,
  };
}