import Buttons from "@/components/basic/Buttons";
import { setPlan } from "@/services/trackTimeDuration";
import { setScenario, setStep } from "@/store/scenario";
import { View, Text } from "@tarojs/components";
import "./SetSchedule.scss";
import Taro, { useReady } from "@tarojs/taro";
import TimePickers from "@/components/input/TimePickers";
// import { AtList, AtListItem } from 'taro-ui'
import { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import Footer from "@/components/layout/Footer";
import PickerViews from "@/components/input/PickerViews";
// import { AtFloatLayout } from "taro-ui";
// import "taro-ui/dist/style/components/float-layout.scss";
import { durationDatas, durationIndex, durationTime, pickerDurations } from "../hooks/Console";
import { TimeFormatter } from "@/utils/time_format";
export default function Component() {
const isFastFirst = false;
const dispatch = useDispatch();
const scenario = useSelector((state: any) => state.scenario);
const common = useSelector((state: any) => state.common);
const [isOpen, setIsOpen] = useState(false)
// const [count,setCount] = useState(0)
const [beginChange, setBeginChange] = useState(true)
var scheduleObj: { start_time: any; end_time: any; };
if (scenario.name == 'FAST') {
scheduleObj = scenario.schedule.fast
}
else if (scenario.name == 'SLEEP') {
scheduleObj = scenario.schedule.sleep
}
else {
if (scenario.step == 'fast') {
scheduleObj = scenario.schedule.fast
}
else {
scheduleObj = scenario.schedule.sleep
}
}
const [startTime, setStartTime] = useState(scheduleObj.start_time)
const [endTime, setEndTime] = useState(scheduleObj.end_time)
const [pickerValue, setPickerValue] = useState(durationIndex(scheduleObj.start_time, scheduleObj.end_time, common))
const [hours, setHours] = useState(durationTime(scheduleObj.start_time, scheduleObj.end_time)[0])
const [minutes, setMinutes] = useState(durationTime(scheduleObj.start_time, scheduleObj.end_time)[1])
function start() {
if (scenario.name == 'FAST' || scenario.name == 'SLEEP') {
setPlan({
scenario: scenario.name,
schedule: scenario.name == 'FAST' ? {
fast: {
start_time: startTime,
end_time: endTime,
}
} : {
sleep: {
start_time: startTime,
end_time: endTime,
}
}
}).then(res => {
Taro.navigateBack({ delta: 3 })
// console.log('success')
})
}
else {
if ((scenario.step == 'fast' && isFastFirst) || (scenario.step == 'sleep' && !isFastFirst)) {
var obj = JSON.parse(JSON.stringify(scenario))
if (isFastFirst) {
obj.schedule.fast = {
start_time: startTime,
end_time: endTime,
}
dispatch(setStep('sleep'))
dispatch(setScenario(obj))
}
else {
obj.schedule.sleep = {
start_time: startTime,
end_time: endTime,
}
dispatch(setStep('fast'))
dispatch(setScenario(obj))
}
Taro.navigateTo({
url: '/pages/clock/SetSchedule'
})
}
else {
commit()
}
}
}
function commit() {
setPlan({
scenario: scenario.name,
schedule: {
fast: {
start_time: isFastFirst ? scenario.schedule.fast.start_time : startTime,
end_time: isFastFirst ? scenario.schedule.fast.end_time : endTime,
}, sleep: {
start_time: !isFastFirst ? scenario.schedule.sleep.start_time : startTime,
end_time: !isFastFirst ? scenario.schedule.sleep.end_time : endTime,
// start_time: startTime,
// end_time: endTime,
}
}
}).then(res => {
dispatch(setStep('fast'))
Taro.navigateBack({ delta: 4 })
})
}
function onStartTimeChange(e: string) {
setBeginChange(true)
setStartTime(e)
setPickerValue(durationIndex(e, endTime, common))
setHours(durationTime(e, endTime)[0])
setMinutes(durationTime(e, endTime)[1])
}
function onEndTimeChange(e: string) {
setBeginChange(false)
setEndTime(e)
setPickerValue(durationIndex(startTime, e, common))
setHours(durationTime(startTime, e)[0])
setMinutes(durationTime(startTime, e)[1])
}
useReady(() => {
var title = scenario.step == 'fast' ? 'Fast schedule' : 'Sleep schedule'
Taro.setNavigationBarTitle({
title: title
})
})
function showPicker() {
setIsOpen(true)
}
function durationChange(e) {
var list = durationDatas(common)
setHours(list[0][e[0]])
setMinutes(list[1][e[1]])
setPickerValue(e)
setIsOpen(false)
if (beginChange) {
setEndTime(TimeFormatter.calculateTimeByTimeRange(list[0][e[0]] * 60 + list[1][e[1]], startTime, true));
}
else {
setStartTime(TimeFormatter.calculateTimeByTimeRange(list[0][e[0]] * 60 + list[1][e[1]], endTime, false));
}
}
function layoutContent() {
return
{ setIsOpen(false) }} />
}
return
{/* 场景名称{scenario.name} */}
{ setIsOpen(true) }}>{hours > 0 ? hours + ' hours ' : ''}{minutes > 0 ? minutes + ' minutes' : ''}
;
}