35 lines
818 B
TypeScript
35 lines
818 B
TypeScript
|
/**
|
||
|
* External dependencies
|
||
|
*/
|
||
|
import { getSetting } from '@woocommerce/settings';
|
||
|
|
||
|
export const useIncompatibleExtensionNotice = (): [
|
||
|
{ [ k: string ]: string } | null,
|
||
|
string[],
|
||
|
number
|
||
|
] => {
|
||
|
interface GlobalIncompatibleExtensions {
|
||
|
id: string;
|
||
|
title: string;
|
||
|
}
|
||
|
|
||
|
const incompatibleExtensions: Record< string, string > = {};
|
||
|
|
||
|
if ( getSetting( 'incompatibleExtensions' ) ) {
|
||
|
getSetting< GlobalIncompatibleExtensions[] >(
|
||
|
'incompatibleExtensions'
|
||
|
).forEach( ( extension ) => {
|
||
|
incompatibleExtensions[ extension.id ] = extension.title;
|
||
|
} );
|
||
|
}
|
||
|
|
||
|
const incompatibleExtensionSlugs = Object.keys( incompatibleExtensions );
|
||
|
const incompatibleExtensionCount = incompatibleExtensionSlugs.length;
|
||
|
|
||
|
return [
|
||
|
incompatibleExtensions,
|
||
|
incompatibleExtensionSlugs,
|
||
|
incompatibleExtensionCount,
|
||
|
];
|
||
|
};
|