@wordpress/core-data
Version:
Access to and manipulation of core WordPress entities.
34 lines (31 loc) • 871 B
text/typescript
import type { ResolutionStatus } from '@wordpress/data';
import { Status } from './constants';
/**
* Normalizes a resolution status from the store into the resolution info
* shared by the entity record hooks and `useQuerySelect`.
*
* @param resolutionStatus Status returned by the `getResolutionState` selector.
* @return Resolution info object.
*/
export function getResolutionStatus( resolutionStatus?: ResolutionStatus ) {
let status: Status;
switch ( resolutionStatus ) {
case 'resolving':
status = Status.Resolving;
break;
case 'finished':
status = Status.Success;
break;
case 'error':
status = Status.Error;
break;
default:
status = Status.Idle;
}
return {
status,
isResolving: status === Status.Resolving,
hasStarted: status !== Status.Idle,
hasResolved: status === Status.Success || status === Status.Error,
};
}