import * as React from 'react' import classnames from 'classnames' import { Card, Tag, Icon } from '@components' import { useI18n, useRuleProviders } from '@stores' import { fromNow } from '@lib/date' import { RuleProvider, updateRuleProvider } from '@lib/request' import { useVisible } from '@lib/hook' import './style.scss' interface ProvidersProps { provider: RuleProvider } export function Provider (props: ProvidersProps) { const { update } = useRuleProviders() const { translation, lang } = useI18n() const { provider } = props const { t } = translation('Rules') const { visible, hide, show } = useVisible() function handleUpdate () { show() updateRuleProvider(provider.name).then(() => update()).finally(() => hide()) } const updateClassnames = classnames('rule-provider-icon', { 'rule-provider-loading': visible }) return (
{ provider.name } { provider.vehicleType } { provider.behavior } { `${t('ruleCount')}: ${provider.ruleCount}` }
{ provider.updatedAt && { `${t('providerUpdateTime')}: ${fromNow(new Date(provider.updatedAt), lang)}`} }
) }