@wordpress/interface
Version:
Interface module for WordPress. The package contains shared functionality across the modern JavaScript-based WordPress screens.
8 lines (7 loc) • 4.73 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/store/selectors.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createRegistrySelector } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport {\n\tnormalizeComplementaryAreaScope,\n\tnormalizeComplementaryAreaName,\n} from './deprecated';\n\n/**\n * Returns the complementary area that is active in a given scope.\n *\n * @param {Object} state Global application state.\n * @param {string} scope Item scope.\n *\n * @return {string | null | undefined} The complementary area that is active in the given scope.\n */\nexport const getActiveComplementaryArea = createRegistrySelector(\n\t( select ) => ( state, scope ) => {\n\t\tscope = normalizeComplementaryAreaScope( scope );\n\t\tconst isComplementaryAreaVisible = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'isComplementaryAreaVisible'\n\t\t);\n\n\t\t// Return `undefined` to indicate that the user has never toggled\n\t\t// visibility, this is the vanilla default. Other code relies on this\n\t\t// nuance in the return value.\n\t\tif ( isComplementaryAreaVisible === undefined ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Return `null` to indicate the user hid the complementary area.\n\t\tif ( isComplementaryAreaVisible === false ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn state?.complementaryAreas?.[ scope ];\n\t}\n);\n\nexport const isComplementaryAreaLoading = createRegistrySelector(\n\t( select ) => ( state, scope ) => {\n\t\tscope = normalizeComplementaryAreaScope( scope );\n\t\tconst isVisible = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'isComplementaryAreaVisible'\n\t\t);\n\t\tconst identifier = state?.complementaryAreas?.[ scope ];\n\n\t\treturn isVisible && identifier === undefined;\n\t}\n);\n\n/**\n * Returns a boolean indicating if an item is pinned or not.\n *\n * @param {Object} state Global application state.\n * @param {string} scope Scope.\n * @param {string} item Item to check.\n *\n * @return {boolean} True if the item is pinned and false otherwise.\n */\nexport const isItemPinned = createRegistrySelector(\n\t( select ) => ( state, scope, item ) => {\n\t\tscope = normalizeComplementaryAreaScope( scope );\n\t\titem = normalizeComplementaryAreaName( scope, item );\n\t\tconst pinnedItems = select( preferencesStore ).get(\n\t\t\tscope,\n\t\t\t'pinnedItems'\n\t\t);\n\t\treturn pinnedItems?.[ item ] ?? true;\n\t}\n);\n\n/**\n * Returns a boolean indicating whether a feature is active for a particular\n * scope.\n *\n * @param {Object} state The store state.\n * @param {string} scope The scope of the feature (e.g. core/edit-post).\n * @param {string} featureName The name of the feature.\n *\n * @return {boolean} Is the feature enabled?\n */\nexport const isFeatureActive = createRegistrySelector(\n\t( select ) => ( state, scope, featureName ) => {\n\t\tdeprecated(\n\t\t\t`select( 'core/interface' ).isFeatureActive( scope, featureName )`,\n\t\t\t{\n\t\t\t\tsince: '6.0',\n\t\t\t\talternative: `select( 'core/preferences' ).get( scope, featureName )`,\n\t\t\t}\n\t\t);\n\n\t\treturn !! select( preferencesStore ).get( scope, featureName );\n\t}\n);\n\n/**\n * Returns true if a modal is active, or false otherwise.\n *\n * @param {Object} state Global application state.\n * @param {string} modalName A string that uniquely identifies the modal.\n *\n * @return {boolean} Whether the modal is active.\n */\nexport function isModalActive( state, modalName ) {\n\treturn state.activeModal === modalName;\n}\n"],
"mappings": ";AAGA,SAAS,8BAA8B;AACvC,OAAO,gBAAgB;AACvB,SAAS,SAAS,wBAAwB;AAK1C;AAAA,EACC;AAAA,EACA;AAAA,OACM;AAUA,IAAM,6BAA6B;AAAA,EACzC,CAAE,WAAY,CAAE,OAAO,UAAW;AACjC,YAAQ,gCAAiC,KAAM;AAC/C,UAAM,6BAA6B,OAAQ,gBAAiB,EAAE;AAAA,MAC7D;AAAA,MACA;AAAA,IACD;AAKA,QAAK,+BAA+B,QAAY;AAC/C,aAAO;AAAA,IACR;AAGA,QAAK,+BAA+B,OAAQ;AAC3C,aAAO;AAAA,IACR;AAEA,WAAO,OAAO,qBAAsB,KAAM;AAAA,EAC3C;AACD;AAEO,IAAM,6BAA6B;AAAA,EACzC,CAAE,WAAY,CAAE,OAAO,UAAW;AACjC,YAAQ,gCAAiC,KAAM;AAC/C,UAAM,YAAY,OAAQ,gBAAiB,EAAE;AAAA,MAC5C;AAAA,MACA;AAAA,IACD;AACA,UAAM,aAAa,OAAO,qBAAsB,KAAM;AAEtD,WAAO,aAAa,eAAe;AAAA,EACpC;AACD;AAWO,IAAM,eAAe;AAAA,EAC3B,CAAE,WAAY,CAAE,OAAO,OAAO,SAAU;AACvC,YAAQ,gCAAiC,KAAM;AAC/C,WAAO,+BAAgC,OAAO,IAAK;AACnD,UAAM,cAAc,OAAQ,gBAAiB,EAAE;AAAA,MAC9C;AAAA,MACA;AAAA,IACD;AACA,WAAO,cAAe,IAAK,KAAK;AAAA,EACjC;AACD;AAYO,IAAM,kBAAkB;AAAA,EAC9B,CAAE,WAAY,CAAE,OAAO,OAAO,gBAAiB;AAC9C;AAAA,MACC;AAAA,MACA;AAAA,QACC,OAAO;AAAA,QACP,aAAa;AAAA,MACd;AAAA,IACD;AAEA,WAAO,CAAC,CAAE,OAAQ,gBAAiB,EAAE,IAAK,OAAO,WAAY;AAAA,EAC9D;AACD;AAUO,SAAS,cAAe,OAAO,WAAY;AACjD,SAAO,MAAM,gBAAgB;AAC9B;",
"names": []
}