/** * External dependencies */ import { isEmpty } from '@nelio-content/utils'; import { EMPTY_ARRAY } from '@nelio-content/constants'; import type { Account, FSProduct, Invoice, License, Site, Uuid, } from '@nelio-content/types'; /** * Internal dependencies */ import type { DialogName, LockReason, State } from './types'; export function getSiteId( state: State ): Uuid { return state.info.siteId; } export function isDialogOpen( state: State, dialogName: DialogName ): boolean { return state.meta.dialog === dialogName; } export function isLocked( state: State, reason?: LockReason ): boolean { return isEmpty( reason ) ? ! isEmpty( state.meta.lockReason ) : reason === state.meta.lockReason; } export function getEditingLicense( state: State ): License { return state.meta.editingLicense; } export function getAccount( state: State ): Account { return state.info; } export function getInvoices( state: State ): ReadonlyArray< Invoice > { return state.invoices; } export function getProducts( state: State ): ReadonlyArray< FSProduct > { return state.products; } export function getSites( state: State ): ReadonlyArray< Site > { return state.sites || EMPTY_ARRAY; } export function isAgencySummary( state: State ): boolean { return state.meta.isAgencySummary; }