import { safeHTML } from '@wordpress/dom' import { useEffect, memo, useRef } from '@wordpress/element' import { __, _n, sprintf } from '@wordpress/i18n' import { Icon } from '@wordpress/icons' import clasNames from 'classnames' import { General } from '@library/api/General' import { User as UserApi } from '@library/api/User' import { useUserStore } from '@library/state/User' import { growthArrow } from './icons' import { alert, download } from './icons/' export const ImportCounter = memo(function ImportCounter() { const remainingImports = useUserStore((state) => state.remainingImports) const allowedImports = useUserStore((state) => state.allowedImports) const count = remainingImports() const status = count > 0 ? 'has-imports' : 'no-imports' const buttonRef = useRef() useEffect(() => { if (allowedImports < 1 || !allowedImports) { const fallback = 5 UserApi.allowedImports() .then((allowedImports) => { allowedImports = /^[1-9]\d*$/.test(allowedImports) ? allowedImports : fallback useUserStore.setState({ allowedImports }) }) .catch(() => useUserStore.setState({ allowedImports: fallback }), ) } }, [allowedImports]) if (!allowedImports) { return null } return ( // tabIndex for group focus animations
) })