fix api-reports

Signed-off-by: Paul Cowan <paul.cowan@cutting.scot>
This commit is contained in:
Paul Cowan
2022-12-12 10:02:24 +00:00
parent b4dc27c42c
commit 809c4c0686
11 changed files with 74 additions and 33 deletions
@@ -20,16 +20,19 @@ import {
FIELD_EXTENSION_WRAPPER_KEY,
} from '../extensions/keys';
type Extension = Omit<FieldExtensionOptions, 'validation'> & { validation?: unknown }
/**
* Hook that returns all custom field extensions from the current outlet.
* @public
*/
export const useCustomFieldExtensions = <
TComponentDataType = FieldExtensionOptions,
TComponentDataType = FieldExtensionOptions
>(
outlet: React.ReactNode,
defaultScaffolderFieldExtensions: Extension[] = []
) => {
return useElementFilter(outlet, elements =>
const customFieldExtensions = useElementFilter(outlet, elements =>
elements
.selectByComponentData({
key: FIELD_EXTENSION_WRAPPER_KEY,
@@ -37,5 +40,15 @@ export const useCustomFieldExtensions = <
.findComponentData<TComponentDataType>({
key: FIELD_EXTENSION_KEY,
}),
);
) as FieldExtensionOptions[];
return [
...customFieldExtensions,
...defaultScaffolderFieldExtensions.filter(
({ name }) =>
!customFieldExtensions.some(
customFieldExtension => customFieldExtension.name === name,
),
),
];
};