Closes #9260 - Refactored multiple record actions and no selection record actions to use config file - Simplified actions registration logic - Updated tests
61 lines
2.4 KiB
TypeScript
61 lines
2.4 KiB
TypeScript
import { ReactNode, useEffect, useState } from 'react';
|
|
|
|
import { contextStoreCurrentObjectMetadataIdComponentState } from '@/context-store/states/contextStoreCurrentObjectMetadataIdComponentState';
|
|
import { contextStoreNumberOfSelectedRecordsComponentState } from '@/context-store/states/contextStoreNumberOfSelectedRecordsComponentState';
|
|
import {
|
|
ContextStoreTargetedRecordsRule,
|
|
contextStoreTargetedRecordsRuleComponentState,
|
|
} from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
|
|
import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem';
|
|
import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2';
|
|
|
|
export const JestContextStoreSetter = ({
|
|
contextStoreTargetedRecordsRule = {
|
|
mode: 'selection',
|
|
selectedRecordIds: [],
|
|
},
|
|
contextStoreNumberOfSelectedRecords = 0,
|
|
contextStoreCurrentObjectMetadataNameSingular = '',
|
|
children,
|
|
}: {
|
|
contextStoreTargetedRecordsRule?: ContextStoreTargetedRecordsRule;
|
|
contextStoreNumberOfSelectedRecords?: number;
|
|
contextStoreCurrentObjectMetadataNameSingular?: string;
|
|
children: ReactNode;
|
|
}) => {
|
|
const setContextStoreTargetedRecordsRule = useSetRecoilComponentStateV2(
|
|
contextStoreTargetedRecordsRuleComponentState,
|
|
);
|
|
|
|
const setContextStoreCurrentObjectMetadataId = useSetRecoilComponentStateV2(
|
|
contextStoreCurrentObjectMetadataIdComponentState,
|
|
);
|
|
|
|
const setContextStoreNumberOfSelectedRecords = useSetRecoilComponentStateV2(
|
|
contextStoreNumberOfSelectedRecordsComponentState,
|
|
);
|
|
|
|
const { objectMetadataItem } = useObjectMetadataItem({
|
|
objectNameSingular: contextStoreCurrentObjectMetadataNameSingular,
|
|
});
|
|
|
|
const contextStoreCurrentObjectMetadataId = objectMetadataItem.id;
|
|
|
|
const [isLoaded, setIsLoaded] = useState(false);
|
|
useEffect(() => {
|
|
setContextStoreTargetedRecordsRule(contextStoreTargetedRecordsRule);
|
|
setContextStoreCurrentObjectMetadataId(contextStoreCurrentObjectMetadataId);
|
|
setContextStoreNumberOfSelectedRecords(contextStoreNumberOfSelectedRecords);
|
|
setIsLoaded(true);
|
|
}, [
|
|
setContextStoreTargetedRecordsRule,
|
|
setContextStoreCurrentObjectMetadataId,
|
|
contextStoreTargetedRecordsRule,
|
|
contextStoreCurrentObjectMetadataId,
|
|
setContextStoreNumberOfSelectedRecords,
|
|
contextStoreNumberOfSelectedRecords,
|
|
]);
|
|
|
|
return isLoaded ? <>{children}</> : null;
|
|
};
|