fabasoad/business-card

View on GitHub
src/components/Stats/StatsStackExchange.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import * as React from 'react'
import {
  StackExchangeData,
  StackExchangeService
} from '../../scripts/services/StackExchangeService'
import StatsCommon from './StatsCommon'

type StatsStackExchangeProps = {
  data: StackExchangeData,
  service: StackExchangeService,
  techName: string,
  url: string,
  icon: string
}

export default function StatsStackExchange({
  data, service, techName, url, icon
}: StatsStackExchangeProps) {
  const [stats, setStats] =
    React.useState<StackExchangeData>(data)
  React.useEffect(() => {
    (async () => {
      const data: StackExchangeData = await service.request()
      setStats(data)
    })()
  }, [])
  return (
    <StatsCommon techName={techName} url={url}>
      {icon} {stats.reputation}
    </StatsCommon>
  )
}