import { View, Text } from "@tarojs/components"; import './TitleBar.scss' import { useEffect, useState } from "react"; import trackTimeService, { machine } from "@/store/trackTimeMachine"; import { TimeFormatter } from "@/utils/time_format"; import Taro from "@tarojs/taro"; import { recordCheck } from "@/services/trackTimeDuration"; import { useTranslation } from "react-i18next"; import { useSelector } from "react-redux"; export default function Component() { const { t } = useTranslation() const [checkData, setCheckData] = useState(null) const user = useSelector((state: any) => state.user); useEffect(() => { if (machine.context.checkData) { setCheckData(machine.context.checkData as any); } }, [machine.context.checkData]); useEffect(() => { trackTimeService.onTransition(_ => { if (machine.context.checkData) { setCheckData(machine.context.checkData as any); } }); }, []); function more() { if (user.isLogin == false) { Taro.navigateTo({ url: '/pages/ChooseAuth' }) return } var state = trackTimeService.getSnapshot().value if ((state as any).FAST_SLEEP === 'WAIT_FOR_START' || (state as any).FAST === 'WAIT_FOR_START' || (state as any).SLEEP === 'WAIT_FOR_START') { waitActionSheet() } else if ((state as any).FAST_SLEEP === 'ONGOING1' || (state as any).FAST_SLEEP === 'ONGOING2') { endFastActionSheet() } else if ((state as any).FAST_SLEEP === 'ONGOING3') { Taro.showToast({ title: '暂无更多操作', icon: 'none', duration: 2000 }) } } function waitActionSheet() { Taro.showActionSheet({ itemList: [t('feature.track_time_duration.action_sheet.change_schedule'), t('feature.track_time_duration.action_sheet.switch_scenario')] }) .then(res => { console.log(res.tapIndex) switch (res.tapIndex) { case 0: Taro.navigateTo({ url: '/pages/SetSchedule' }) break; case 1: Taro.navigateTo({ url: '/pages/ChooseScenario' }) break; } }) .catch(err => { console.log(err.errMsg) }) } function endFastActionSheet() { Taro.showActionSheet({ itemList: [t('feature.track_time_duration.action_sheet.end_fast')] }) .then(res => { console.log(res.tapIndex) switch (res.tapIndex) { case 0: { const start_time = new Date().getTime(); // const duration = 8 * 3600 * 1000; const extra = { set_time: start_time - 20 * 1000, confirm_time: start_time + 50 * 1000, } recordCheck({ action: 'FAST_END', real_check_time: start_time, extra: extra }).then(res => { trackTimeService.send({ type: 'END_FAST' }); console.log(res); trackTimeService.send({ type: 'RESET' }); trackTimeService.send({ type: global.scenario }); }); } break; } }) .catch(err => { console.log(err.errMsg) }) } if (!user.isLogin) { return 断食 16:00 } if (!checkData) { return } return { ((checkData as any).current_record.scenario == 'FAST' || (checkData as any).current_record.scenario == 'FAST_SLEEP') && 断食 { ((checkData as any).current_record.status == 'ONGOING' || (checkData as any).current_record.status == 'ONGOING1' || (checkData as any).current_record.status == 'ONGOING2' || (checkData as any).current_record.status == 'ONGOING3') ? : } {TimeFormatter.calculateTimeDifference((checkData as any).current_record.fast.target_start_time, (checkData as any).current_record.fast.target_end_time, true)} } { ((checkData as any).current_record.scenario == 'SLEEP' || (checkData as any).current_record.scenario == 'FAST_SLEEP') && 睡眠 { ((checkData as any).current_record.status == 'ONGOING' || (checkData as any).current_record.status == 'ONGOING2') ? : } { (checkData as any).current_record.status == 'ONGOING3' ? 已完成 : {TimeFormatter.calculateTimeDifference((checkData as any).current_record.sleep.target_start_time, (checkData as any).current_record.sleep.target_end_time, true)} } } }