|
|
@@ -5,7 +5,7 @@ import { ColorType } from "@/context/themes/color";
|
|
|
import WeekCalendarItem from "./WeekCalendarItem";
|
|
|
import { rpxToPx } from "@/utils/tools";
|
|
|
import { TimeFormatter } from "@/utils/time_format";
|
|
|
-import { clockSummaryStats } from "@/services/trackTimeDuration";
|
|
|
+import { clockSummaryStats, eatWakes } from "@/services/trackTimeDuration";
|
|
|
import { useTranslation } from "react-i18next";
|
|
|
import { IconBigArrow } from "@/components/basic/Icons";
|
|
|
import dayjs from "dayjs";
|
|
|
@@ -59,17 +59,33 @@ const WeekCalendar = memo((props: { isFastSleep: boolean }) => {
|
|
|
for (var i = 0; i < pageSize; i++) {
|
|
|
list.push(`${i + pageIndex * pageSize},${timestamp - 7 * 24 * 3600 * 1000 * i - offset},${timestamp - 7 * 24 * 3600 * 1000 * i + 7 * 24 * 3600 * 1000 - offset}`)
|
|
|
}
|
|
|
- clockSummaryStats({ times: list.join(';') }).then(res => {
|
|
|
- var list = (res as any).data.reverse()
|
|
|
- if (pageIndex == 0) {
|
|
|
- setCalendars(list)
|
|
|
- setSummary(list[current].summary_stats ? list[current].summary_stats : null)
|
|
|
- setCalendarData(list[current])
|
|
|
-
|
|
|
- setIsLoading(false)
|
|
|
- }
|
|
|
-
|
|
|
- })
|
|
|
+ if (props.isFastSleep){
|
|
|
+ clockSummaryStats({ times: list.join(';') }).then(res => {
|
|
|
+ var list = (res as any).data.reverse()
|
|
|
+ if (pageIndex == 0) {
|
|
|
+ setCalendars(list)
|
|
|
+ setSummary(list[current].summary_stats ? list[current].summary_stats : null)
|
|
|
+ setCalendarData(list[current])
|
|
|
+
|
|
|
+ setIsLoading(false)
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ eatWakes({ times: list.join(';') }).then(res => {
|
|
|
+ var list = (res as any).data.reverse()
|
|
|
+ if (pageIndex == 0) {
|
|
|
+ setCalendars(list)
|
|
|
+ setSummary(list[current].summary_stats ? list[current].summary_stats : null)
|
|
|
+ setCalendarData(list[current])
|
|
|
+
|
|
|
+ setIsLoading(false)
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
function getRecords() {
|
|
|
@@ -89,33 +105,66 @@ const WeekCalendar = memo((props: { isFastSleep: boolean }) => {
|
|
|
for (var i = 0; i < pageSize; i++) {
|
|
|
list.push(`${i + pageIndex * pageSize},${timestamp - 7 * 24 * 3600 * 1000 * i - offset},${timestamp - 7 * 24 * 3600 * 1000 * i + 7 * 24 * 3600 * 1000 - offset}`)
|
|
|
}
|
|
|
- clockSummaryStats({ times: list.join(';') }).then(res => {
|
|
|
- var list = (res as any).data.reverse()
|
|
|
- if (list.length > 1) {
|
|
|
- lastFastValue = list[list.length - 2].summary_stats.fast.avg
|
|
|
- lastSleepValue = list[list.length - 2].summary_stats.sleep.avg
|
|
|
- }
|
|
|
|
|
|
- if (pageIndex == 0) {
|
|
|
- setCalendars(list)
|
|
|
- setCurrent(list.length - 1)
|
|
|
- setSummary(list[list.length - 1].summary_stats ? list[list.length - 1].summary_stats : null)
|
|
|
- setCalendarData(list[list.length - 1])
|
|
|
- setMinTime((res as any).extra.real_start_time_min)
|
|
|
- setLeft((list.length - 1) * parseInt(rpxToPx(658) + ''))
|
|
|
- setIsLoading(false);
|
|
|
- if (ref.current) {
|
|
|
- (ref.current as any).scrollToOffset((list.length - 1) * parseInt(rpxToPx(658) + ''), false);
|
|
|
- setTimeout(() => {
|
|
|
+ if (props.isFastSleep){
|
|
|
+ clockSummaryStats({ times: list.join(';') }).then(res => {
|
|
|
+ var list = (res as any).data.reverse()
|
|
|
+ if (list.length > 1) {
|
|
|
+ lastFastValue = list[list.length - 2].summary_stats.fast.avg
|
|
|
+ lastSleepValue = list[list.length - 2].summary_stats.sleep.avg
|
|
|
+ }
|
|
|
+
|
|
|
+ if (pageIndex == 0) {
|
|
|
+ setCalendars(list)
|
|
|
+ setCurrent(list.length - 1)
|
|
|
+ setSummary(list[list.length - 1].summary_stats ? list[list.length - 1].summary_stats : null)
|
|
|
+ setCalendarData(list[list.length - 1])
|
|
|
+ setMinTime((res as any).extra.real_start_time_min)
|
|
|
+ setLeft((list.length - 1) * parseInt(rpxToPx(658) + ''))
|
|
|
+ setIsLoading(false);
|
|
|
+ if (ref.current) {
|
|
|
(ref.current as any).scrollToOffset((list.length - 1) * parseInt(rpxToPx(658) + ''), false);
|
|
|
- }, 500)
|
|
|
+ setTimeout(() => {
|
|
|
+ (ref.current as any).scrollToOffset((list.length - 1) * parseInt(rpxToPx(658) + ''), false);
|
|
|
+ }, 500)
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- else {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- })
|
|
|
+ else {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ eatWakes({ times: list.join(';') }).then(res => {
|
|
|
+ var list = (res as any).data.reverse()
|
|
|
+ if (list.length > 1) {
|
|
|
+ lastFastValue = list[list.length - 2].summary_stats.eat.avg
|
|
|
+ lastSleepValue = list[list.length - 2].summary_stats.wake.avg
|
|
|
+ }
|
|
|
+
|
|
|
+ if (pageIndex == 0) {
|
|
|
+ setCalendars(list)
|
|
|
+ setCurrent(list.length - 1)
|
|
|
+ setSummary(list[list.length - 1].summary_stats ? list[list.length - 1].summary_stats : null)
|
|
|
+ setCalendarData(list[list.length - 1])
|
|
|
+ setMinTime((res as any).extra.real_start_time_min)
|
|
|
+ setLeft((list.length - 1) * parseInt(rpxToPx(658) + ''))
|
|
|
+ setIsLoading(false);
|
|
|
+ if (ref.current) {
|
|
|
+ (ref.current as any).scrollToOffset((list.length - 1) * parseInt(rpxToPx(658) + ''), false);
|
|
|
+ setTimeout(() => {
|
|
|
+ (ref.current as any).scrollToOffset((list.length - 1) * parseInt(rpxToPx(658) + ''), false);
|
|
|
+ }, 500)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
// clockSummaryStats({start:new Date().getTime()-7*24*3600*1000,end:new Date().getTime()}).then(res => { })
|
|
|
}
|
|
|
|
|
|
@@ -163,8 +212,8 @@ const WeekCalendar = memo((props: { isFastSleep: boolean }) => {
|
|
|
|
|
|
function onChange(e) {
|
|
|
var page = e.detail.current
|
|
|
- lastFastValue = calendars[current].summary_stats.fast.avg
|
|
|
- lastSleepValue = calendars[current].summary_stats.sleep.avg
|
|
|
+ lastFastValue = props.isFastSleep?calendars[current].summary_stats.fast.avg:calendars[current].summary_stats.eat.avg
|
|
|
+ lastSleepValue = props.isFastSleep?calendars[current].summary_stats.sleep.avg:calendars[current].summary_stats.wake.avg
|
|
|
setCurrent(page)
|
|
|
setSummary(calendars[page].summary_stats ? calendars[page].summary_stats : null)
|
|
|
setCalendarData(calendars[page])
|
|
|
@@ -182,12 +231,12 @@ const WeekCalendar = memo((props: { isFastSleep: boolean }) => {
|
|
|
function getWeekDuration() {
|
|
|
if (global.language == 'en') {
|
|
|
if (!props.isFastSleep) {
|
|
|
- return `${t('feature.common.day_of_week_full.mon')}, ${getDate(calendarData.start)} - ${t('feature.common.day_of_week_full.mon')}, ${getDate(calendarData.end)}`
|
|
|
+ return `${t('feature.common.day_of_week_full.mon')}, ${getDate(calendarData.start)} - ${t('feature.common.day_of_week_full.sun')}, ${getDate(calendarData.end-1)}`
|
|
|
}
|
|
|
return `${t('feature.common.day_of_week_full.sun')} ${t('feature.common.time_desc.afternoon')}, ${getDate(calendarData.start)} - ${t('feature.common.day_of_week_full.sun')} ${t('feature.common.time_desc.morning')}, ${getDate(calendarData.end)}`
|
|
|
}
|
|
|
if (!props.isFastSleep) {
|
|
|
- return `${getDate(calendarData.start)} ${t('feature.common.day_of_week_full.mon')} - ${getDate(calendarData.end)} ${t('feature.common.day_of_week_full.mon')}`
|
|
|
+ return `${getDate(calendarData.start)} ${t('feature.common.day_of_week_full.mon')} - ${getDate(calendarData.end-1)} ${t('feature.common.day_of_week_full.sun')}`
|
|
|
}
|
|
|
return `${getDate(calendarData.start)} ${t('feature.common.day_of_week_full.sun')}${t('feature.common.time_desc.afternoon')} - ${getDate(calendarData.end)} ${t('feature.common.day_of_week_full.sun')}${t('feature.common.time_desc.morning')}`
|
|
|
}
|
|
|
@@ -224,21 +273,21 @@ const WeekCalendar = memo((props: { isFastSleep: boolean }) => {
|
|
|
<View className="calendar_summary_top">
|
|
|
<View style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', flex: 1 }}>
|
|
|
{
|
|
|
- !summary || summary.fast.avg == 0 ? <View className="calendar-empty-bg" style={{ borderColor: props.isFastSleep ? ColorType.fast : ColorType.food }}>
|
|
|
+ !summary || (props.isFastSleep?summary.fast.avg == 0:summary.eat.avg == 0) ? <View className="calendar-empty-bg" style={{ borderColor: props.isFastSleep ? ColorType.fast : ColorType.food }}>
|
|
|
<View className="calendar-empty-line" style={{ backgroundColor: props.isFastSleep ? ColorType.fast : ColorType.food }} />
|
|
|
</View> :
|
|
|
- <View className={lastFastValue > summary.fast.avg ? 'calendar-arrow-bg-down' : 'calendar-arrow-bg'} style={{ backgroundColor: props.isFastSleep ? ColorType.fast : ColorType.food }}>
|
|
|
+ <View className={(props.isFastSleep?lastFastValue > summary.fast.avg:lastFastValue > summary.eat.avg) ? 'calendar-arrow-bg-down' : 'calendar-arrow-bg'} style={{ backgroundColor: props.isFastSleep ? ColorType.fast : ColorType.food }}>
|
|
|
<IconBigArrow color="#fff" width={rpxToPx(32)} />
|
|
|
</View>
|
|
|
}
|
|
|
<View className="calendar_summary_item">
|
|
|
<Text className="calendar_summary_title">{props.isFastSleep ? t('feature.track_time_duration.weekly.fast_average') : t('feature.track_time_duration.weekly.eat_average')}</Text>
|
|
|
- <Text className="calendar_summary_value" style={{ color: props.isFastSleep ? ColorType.fast : ColorType.food }}>{!summary || summary.fast.avg == 0 ? t('feature.track_time_duration.record_fast_sleep.none') : TimeFormatter.calculateTimeDifference(new Date().getTime(), new Date().getTime() + summary.fast.avg)}</Text>
|
|
|
+ <Text className="calendar_summary_value" style={{ color: props.isFastSleep ? ColorType.fast : ColorType.food }}>{!summary || (props.isFastSleep?summary.fast.avg == 0:summary.eat.avg == 0) ? t('feature.track_time_duration.record_fast_sleep.none') : TimeFormatter.calculateTimeDifference(new Date().getTime(), new Date().getTime() + (props.isFastSleep?summary.fast.avg:summary.eat.avg))}</Text>
|
|
|
</View>
|
|
|
</View>
|
|
|
<View style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', flex: 1 }}>
|
|
|
{
|
|
|
- !summary || summary.sleep.avg == 0 ? <View className="calendar-empty-bg" style={{ borderColor: props.isFastSleep ? ColorType.sleep : ColorType.activity }}>
|
|
|
+ !summary || (props.isFastSleep?summary.sleep.avg == 0:summary.wake.avg == 0) ? <View className="calendar-empty-bg" style={{ borderColor: props.isFastSleep ? ColorType.sleep : ColorType.activity }}>
|
|
|
<View className="calendar-empty-line" style={{ backgroundColor: props.isFastSleep ? ColorType.sleep : ColorType.activity }} />
|
|
|
</View> :
|
|
|
<View className={lastSleepValue > summary.sleep.avg ? 'calendar-arrow-bg-down' : 'calendar-arrow-bg'} style={{ backgroundColor: props.isFastSleep ? ColorType.sleep : ColorType.activity }}>
|
|
|
@@ -247,7 +296,7 @@ const WeekCalendar = memo((props: { isFastSleep: boolean }) => {
|
|
|
}
|
|
|
<View className="calendar_summary_item">
|
|
|
<Text className="calendar_summary_title">{props.isFastSleep ? t('feature.track_time_duration.weekly.sleep_average') : t('feature.track_time_duration.weekly.wake_average')}</Text>
|
|
|
- <Text className="calendar_summary_value" style={{ color: props.isFastSleep ? ColorType.sleep : ColorType.activity }}>{!summary || summary.sleep.avg == 0 ? t('feature.track_time_duration.record_fast_sleep.none') : TimeFormatter.calculateTimeDifference(new Date().getTime(), new Date().getTime() + summary.sleep.avg)}</Text>
|
|
|
+ <Text className="calendar_summary_value" style={{ color: props.isFastSleep ? ColorType.sleep : ColorType.activity }}>{!summary || (props.isFastSleep?summary.sleep.avg == 0:summary.wake.avg == 0) ? t('feature.track_time_duration.record_fast_sleep.none') : TimeFormatter.calculateTimeDifference(new Date().getTime(), new Date().getTime() + (props.isFastSleep?summary.sleep.avg:summary.wake.avg))}</Text>
|
|
|
</View>
|
|
|
</View>
|
|
|
|