import { safeHTML } from '@wordpress/dom'
import { useEffect, memo } from '@wordpress/element'
import { __, _n, _x, sprintf } from '@wordpress/i18n'
import { Icon } from '@wordpress/icons'
import classNames from 'classnames'
import { General } from '@extendify/api/General'
import { User as UserApi } from '@extendify/api/User'
import { useUserStore } from '@extendify/state/User'
import { brandMark } from './icons'
export const SidebarNotice = memo(function SidebarNotice() {
const remainingImports = useUserStore((state) => state.remainingImports)
const allowedImports = useUserStore((state) => state.allowedImports)
const count = remainingImports()
const link = `https://www.extendify.com/pricing/?utm_source=${encodeURIComponent(
window.extendifyData.sdk_partner,
)}&utm_medium=library&utm_campaign=import-counter&utm_content=get-more&utm_term=${
count > 0 ? 'has-imports' : 'no-imports'
}&utm_group=${useUserStore.getState().activeTestGroupsUtmValue()}`
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 (
await General.ping('fp-sb-click')}
href={link}>
{__('Free Plan', 'extendify')}
{sprintf(
_n(
'You have %s free pattern and layout import remaining this month.',
'You have %s free pattern and layout imports remaining this month.',
count,
'extendify',
),
count,
)}
1,
},
)}
dangerouslySetInnerHTML={{
__html: safeHTML(
sprintf(
_x(
'Upgrade today %s',
'The replacement string is a right arrow and context is not lost if removed.',
'extendify',
),
`
${String.fromCharCode(8250)}
`,
),
),
}}
/>
)
})