import { Image as TaroImage } from '@tarojs/components'; import { Image } from '@taroify/core'; import { PhotoFail } from '@taroify/icons'; import { useCallback } from 'react'; import SkeletonLoading from '@/components/skeleton-loading'; import { PageUrl } from '@/constants/app'; import { MaterialViewSource, WORK_YEAR_LABELS } from '@/constants/material'; import { AnchorInfo } from '@/types/material'; import { calcDistance } from '@/utils/location'; import { getBasicInfo, getSalary } from '@/utils/material'; import { navigateTo } from '@/utils/route'; import { activeDate } from '@/utils/time'; import './index.less'; interface IProps { data: AnchorInfo; jobId?: string; validator: (onSuccess: () => void) => void; } const PREFIX = 'anchor-card'; function AnchorCard(props: IProps) { const { data, jobId, validator } = props; const style = data.isRead ? ({ '--read-color': '#999999' } as React.CSSProperties) : {}; const cover = (data.materialVideoInfoList.find(video => video.isDefault) || data.materialVideoInfoList[0])?.coverUrl; const handleNavTo = useCallback(() => { navigateTo(PageUrl.MaterialView, { jobId, resumeId: data.id, source: MaterialViewSource.AnchorList }); }, [data, jobId]); const handleClick = useCallback(() => { validator(handleNavTo); }, [handleNavTo, validator]); return (
} className={`${PREFIX}__cover`} placeholder={} />
{data.name}
{getBasicInfo(data)}
{WORK_YEAR_LABELS[data.workedYear] || ''}
{data.workedSecCategoryStr && (
{`播过 ${data.workedSecCategoryStr}`}
)}
{getSalary(data)}
{activeDate(data.sortTime)}
{typeof data.distance !== 'undefined' && (
{calcDistance(data.distance, 1)}
)}
); } export default AnchorCard;