@wordpress/block-editor
Version:
8 lines (7 loc) • 2.68 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/components/link-control/use-internal-value.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal';\n\nexport default function useInternalValue( value ) {\n\tconst [ internalValue, setInternalValue ] = useState( value || {} );\n\tconst [ previousValue, setPreviousValue ] = useState( value );\n\n\t// If the value prop changes, update the internal state.\n\t// See:\n\t// - https://github.com/WordPress/gutenberg/pull/51387#issuecomment-1722927384.\n\t// - https://react.dev/reference/react/useState#storing-information-from-previous-renders.\n\tif ( ! fastDeepEqual( value, previousValue ) ) {\n\t\tsetPreviousValue( value );\n\t\tsetInternalValue( value );\n\t}\n\n\tconst setInternalURLInputValue = ( nextValue ) => {\n\t\tsetInternalValue( {\n\t\t\t...internalValue,\n\t\t\turl: nextValue,\n\t\t} );\n\t};\n\n\tconst setInternalTextInputValue = ( nextValue ) => {\n\t\tsetInternalValue( {\n\t\t\t...internalValue,\n\t\t\ttitle: nextValue,\n\t\t} );\n\t};\n\n\tconst createSetInternalSettingValueHandler =\n\t\t( settingsKeys ) => ( nextValue ) => {\n\t\t\t// Only apply settings values which are defined in the settings prop.\n\t\t\tconst settingsUpdates = Object.keys( nextValue ).reduce(\n\t\t\t\t( acc, key ) => {\n\t\t\t\t\tif ( settingsKeys.includes( key ) ) {\n\t\t\t\t\t\tacc[ key ] = nextValue[ key ];\n\t\t\t\t\t}\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\tsetInternalValue( {\n\t\t\t\t...internalValue,\n\t\t\t\t...settingsUpdates,\n\t\t\t} );\n\t\t};\n\n\treturn [\n\t\tinternalValue,\n\t\tsetInternalValue,\n\t\tsetInternalURLInputValue,\n\t\tsetInternalTextInputValue,\n\t\tcreateSetInternalSettingValueHandler,\n\t];\n}\n"],
"mappings": ";AAGA,SAAS,gBAAgB;AAKzB,OAAO,mBAAmB;AAEX,SAAR,iBAAmC,OAAQ;AACjD,QAAM,CAAE,eAAe,gBAAiB,IAAI,SAAU,SAAS,CAAC,CAAE;AAClE,QAAM,CAAE,eAAe,gBAAiB,IAAI,SAAU,KAAM;AAM5D,MAAK,CAAE,cAAe,OAAO,aAAc,GAAI;AAC9C,qBAAkB,KAAM;AACxB,qBAAkB,KAAM;AAAA,EACzB;AAEA,QAAM,2BAA2B,CAAE,cAAe;AACjD,qBAAkB;AAAA,MACjB,GAAG;AAAA,MACH,KAAK;AAAA,IACN,CAAE;AAAA,EACH;AAEA,QAAM,4BAA4B,CAAE,cAAe;AAClD,qBAAkB;AAAA,MACjB,GAAG;AAAA,MACH,OAAO;AAAA,IACR,CAAE;AAAA,EACH;AAEA,QAAM,uCACL,CAAE,iBAAkB,CAAE,cAAe;AAEpC,UAAM,kBAAkB,OAAO,KAAM,SAAU,EAAE;AAAA,MAChD,CAAE,KAAK,QAAS;AACf,YAAK,aAAa,SAAU,GAAI,GAAI;AACnC,cAAK,GAAI,IAAI,UAAW,GAAI;AAAA,QAC7B;AACA,eAAO;AAAA,MACR;AAAA,MACA,CAAC;AAAA,IACF;AAEA,qBAAkB;AAAA,MACjB,GAAG;AAAA,MACH,GAAG;AAAA,IACJ,CAAE;AAAA,EACH;AAED,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD;",
"names": []
}