import formatMilliseconds from "@/utils/format_time"; import { View, Text, Image } from "@tarojs/components"; import './History.scss' import Taro from "@tarojs/taro"; import dayjs from "dayjs"; import { useSelector } from "react-redux"; import { getThemeColor } from "./hooks/health_hooks"; import Rings, { RingCommon, BgRing, TargetRing, CurrentDot } from "@/features/trackTimeDuration/components/Rings"; import { MainColorType } from "@/context/themes/color"; import { durationArc, startArc } from "./util"; export default function HistoryItem(props: { data: any, index: number }) { const health = useSelector((state: any) => state.health); function preview(obj) { var list:any = [] props.data.events.map((item) => { item.moment.media.map((media) => { list.push(media.url) }) }) Taro.previewImage({ current: obj.url, urls: list }) } function getTitle(item) { if (item.moment) { return item.moment.title } if (health.mode == 'FAST') { return '开始断食' } else if (health.mode == 'SLEEP') { return '开始睡眠' } return '' } function ring() { const common: RingCommon = { useCase: 'ChooseScenario', radius: 17, lineWidth: 3, isFast: true, status: 'WAIT_FOR_START' } const bgRing: BgRing = { color: MainColorType.ringBg } const realRing = { hideBg:true, color:getThemeColor(health.mode), startArc:startArc(props.data.window_range.start_timestamp), durationArc:durationArc(props.data.window_range.start_timestamp,props.data.window_range.end_timestamp) } return } function mediaCount(){ let count = 0; props.data.events.map((item) => { if (item.moment){ item.moment.media.map((obj, j) => { count++; }) } }) return count; } return { ring() } {dayjs(props.data.window_range.start_timestamp).format('D')} { props.data.window_range.end_timestamp && {formatMilliseconds(props.data.window_range.end_timestamp - props.data.window_range.start_timestamp)} } { props.data.events.map((item, index) => { return {dayjs(item.real.start_timestamp).format('HH:mm')} {getTitle(item)} { item.moment && item.moment.description && {item.moment.description} } }) } 0?9:-10 }}> { props.data.events.map((item) => { if (item.moment){ return item.moment.media.map((obj, j) => { return preview(obj)} src={obj.url} key={j * 10} /> }) } }) } }