Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import React, { FC } from 'react' import { Badge } from 'reactstrap' export const STATUS = { REGISTERED: 1, ACTIVE: 2, SUSPENDED: 3, DELETED: 4, INVITED: 5, } as const export const STATUS_COLORS = { [STATUS.REGISTERED]: 'info', [STATUS.ACTIVE]: 'success', [STATUS.SUSPENDED]: 'warning', [STATUS.DELETED]: 'danger', [STATUS.INVITED]: 'info', } as const export const STATUS_LABELS = { [STATUS.REGISTERED]: '承認待ち', [STATUS.ACTIVE]: 'Active', [STATUS.SUSPENDED]: 'Suspended', [STATUS.DELETED]: 'Deleted', [STATUS.INVITED]: '招待済み', } as const interface Props { user: { status: (typeof STATUS)[keyof typeof STATUS] // FIXME: I want `valueof` to replace this type with `valueof STATUS` } } const UserStatusBadge: FC<Props> = ({ user }) => { const status = user.status in Object.values(STATUS) ? user.status : null if (status === null) return null const color = STATUS_COLORS[status] return <Badge color={color}>{STATUS_LABELS[status]}</Badge> } export default UserStatusBadge |