woocommerce/plugins/woocommerce-blocks/assets/js/data/validation/selectors.ts

39 lines
1.1 KiB
TypeScript

/**
* Internal dependencies
*/
import type { State } from './reducers';
/**
* Gets a validation error by ID.
*
* @param { State } state The current state.
* @param { string } errorId The error ID.
* @return { string } The validation error.
*/
export const getValidationError = ( state: State, errorId: string ) =>
state[ errorId ];
/**
* Gets a validation error ID for use in HTML which can be used as a CSS selector, or to reference an error message.
*
* @param { State } state The current state.
* @param { string } errorId The error ID.
* @return { string | undefined } The validation error ID.
*/
export const getValidationErrorId = ( state: State, errorId: string ) => {
if ( ! state.hasOwnProperty( errorId ) || state[ errorId ].hidden ) {
return;
}
return `validate-error-${ errorId }`;
};
/**
* Whether the store has validation errors.
*
* @param { State } state The current state.
* @return { boolean } Whether the store has validation errors or not.
*/
export const hasValidationErrors = ( state: State ) => {
return Object.keys( state ).length > 0;
};