{
  "version": 3,
  "sources": ["../../../src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js"],
  "sourcesContent": ["import { store as coreStore } from '@wordpress/core-data';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\nimport { postType } from '.';\nimport { NAVIGATION_POST_TYPE } from '../../utils/constants';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction useDeleteNavigationMenu() {\n\tconst { deleteEntityRecord } = useDispatch( coreStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst history = useHistory();\n\n\tconst handleDelete = async ( navigationMenu ) => {\n\t\tconst postId = navigationMenu?.id;\n\t\ttry {\n\t\t\tawait deleteEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t\t{\n\t\t\t\t\tforce: true,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\t__( 'Navigation Menu successfully deleted.' ),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t\thistory.navigate( '/navigation' );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: error message describing why the navigation menu could not be deleted. */\n\t\t\t\t\t__( `Unable to delete Navigation Menu (%s).` ),\n\t\t\t\t\terror?.message\n\t\t\t\t),\n\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\treturn handleDelete;\n}\n\nfunction useSaveNavigationMenu() {\n\tconst { getEditedEntityRecord } = useSelect( ( select ) => {\n\t\tconst { getEditedEntityRecord: getEditedEntityRecordSelector } =\n\t\t\tselect( coreStore );\n\n\t\treturn {\n\t\t\tgetEditedEntityRecord: getEditedEntityRecordSelector,\n\t\t};\n\t}, [] );\n\n\tconst {\n\t\teditEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst handleSave = async ( navigationMenu, edits ) => {\n\t\tif ( ! edits ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst postId = navigationMenu?.id;\n\t\t// Prepare for revert in case of error.\n\t\tconst originalRecord = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tNAVIGATION_POST_TYPE,\n\t\t\tpostId\n\t\t);\n\n\t\t// Apply the edits.\n\t\teditEntityRecord( 'postType', postType, postId, edits );\n\n\t\tconst recordPropertiesToSave = Object.keys( edits );\n\n\t\t// Attempt to persist.\n\t\ttry {\n\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId,\n\t\t\t\trecordPropertiesToSave,\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tcreateSuccessNotice( __( 'Renamed Navigation Menu' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\t// Revert to original in case of error.\n\t\t\teditEntityRecord( 'postType', postType, postId, originalRecord );\n\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: error message describing why the navigation menu could not be renamed. */\n\t\t\t\t\t__( `Unable to rename Navigation Menu (%s).` ),\n\t\t\t\t\terror?.message\n\t\t\t\t),\n\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\treturn handleSave;\n}\n\nfunction useDuplicateNavigationMenu() {\n\tconst history = useHistory();\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst handleDuplicate = async ( navigationMenu ) => {\n\t\tconst menuTitle =\n\t\t\tnavigationMenu?.title?.rendered || navigationMenu?.slug;\n\n\t\ttry {\n\t\t\tconst savedRecord = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\t{\n\t\t\t\t\ttitle: sprintf(\n\t\t\t\t\t\t/* translators: %s: Navigation menu title */\n\t\t\t\t\t\t_x( '%s (Copy)', 'navigation menu' ),\n\t\t\t\t\t\tmenuTitle\n\t\t\t\t\t),\n\t\t\t\t\tcontent: navigationMenu?.content?.raw,\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( savedRecord ) {\n\t\t\t\tcreateSuccessNotice( __( 'Duplicated Navigation Menu' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\thistory.navigate( `/wp_navigation/${ savedRecord.id }` );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: error message describing why the navigation menu could not be deleted. */\n\t\t\t\t\t__( `Unable to duplicate Navigation Menu (%s).` ),\n\t\t\t\t\terror?.message\n\t\t\t\t),\n\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\n\treturn handleDuplicate;\n}\n\nexport default function useNavigationMenuHandlers() {\n\treturn {\n\t\thandleDelete: useDeleteNavigationMenu(),\n\t\thandleSave: useSaveNavigationMenu(),\n\t\thandleDuplicate: useDuplicateNavigationMenu(),\n\t};\n}\n"],
  "mappings": "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",
  "names": []
}
