leon vor 1 Jahr
Ursprung
Commit
07b60ad875

+ 2 - 2
ios/hola.xcodeproj/project.pbxproj

@@ -576,7 +576,7 @@
 				CODE_SIGN_ENTITLEMENTS = hola/hola.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 89;
+				CURRENT_PROJECT_VERSION = 91;
 				DEVELOPMENT_TEAM = GPMXAZ9G5N;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = hola/Info.plist;
@@ -609,7 +609,7 @@
 				CODE_SIGN_ENTITLEMENTS = hola/hola.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 89;
+				CURRENT_PROJECT_VERSION = 91;
 				DEVELOPMENT_TEAM = GPMXAZ9G5N;
 				INFOPLIST_FILE = hola/Info.plist;
 				LD_RUNPATH_SEARCH_PATHS = (

+ 1 - 1
ios/hola/Info.plist

@@ -32,7 +32,7 @@
 		</dict>
 	</array>
 	<key>CFBundleVersion</key>
-	<string>89</string>
+	<string>91</string>
 	<key>ITSAppUsesNonExemptEncryption</key>
 	<false/>
 	<key>LSApplicationCategoryType</key>

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
ios/main.jsbundle


+ 34 - 75
src/components/layout/layout.tsx

@@ -1,4 +1,4 @@
-import { View, Text,ScrollView } from "@tarojs/components";
+import { View, Text, ScrollView } from "@tarojs/components";
 import './layout.scss'
 import { NaviBarTitleShowType, TemplateType } from "@/utils/types";
 import { useEffect, useRef, useState } from "react";
@@ -8,9 +8,9 @@ import { rpxToPx } from "@/utils/tools";
 let useNavigation;
 let GradientText
 let RefreshControl;
-// let ScrollView;
+let ScrollViewRN;
 if (process.env.TARO_ENV == 'rn') {
-    // ScrollView = require("react-native").ScrollView
+    ScrollViewRN = require("react-native").ScrollView
     RefreshControl = require("react-native").RefreshControl
     GradientText = require('@/components/basic/GradientText').default
     useNavigation = require("@react-navigation/native").useNavigation
@@ -61,7 +61,7 @@ export default function Layout(props: {
         //     }
 
         // }, 8000)
-    }, [showTitle,props.title])
+    }, [showTitle, props.title])
 
     function onRefresh() {
         if (props.refresh) {
@@ -75,23 +75,35 @@ export default function Layout(props: {
 
     function onScroll(e) {
         if (props.titleShowStyle == NaviBarTitleShowType.scrollToShow) {
-            // e.persist()
-            // const { contentOffset } = e.nativeEvent;
-            // const scrollPosition = contentOffset.y;
-            // if (scrollPosition > 70) {
-            //     setShowTitle(true)
-            // }
-            // else {
-            //     setShowTitle(false)
-            // }
-            // console.log(e)
-            if (e.detail.scrollTop > 70) {
-                setShowTitle(true)
+            if (e.nativeEvent){
+                const {contentOffset} = e.nativeEvent
+                if (contentOffset.y > 70) {
+                    setShowTitle(true)
+                }
+                else {
+                    setShowTitle(false)
+                }
             }
             else {
-                setShowTitle(false)
+                if (e.detail.scrollTop > 70) {
+                    setShowTitle(true)
+                }
+                else {
+                    setShowTitle(false)
+                }
+            }
+            
+        }
+        if (e.nativeEvent){
+            const { contentSize, contentOffset, layoutMeasurement } = e.nativeEvent;
+            const isAtTheBottom =
+                contentSize.height - contentOffset.y <= layoutMeasurement.height;
+            debugger
+            if (isAtTheBottom && props.more){
+                props.more()
             }
         }
+        
 
     }
 
@@ -148,77 +160,24 @@ export default function Layout(props: {
 
 
     switch (type) {
-        // case TemplateType.list:
-        //     return <ScrollView className="layout_container"
-        //         style={{ WebkitOverflowScrolling: 'auto' }}
-        //         showsVerticalScrollIndicator={false}
-        //         onScroll={onScroll}
-        //         scrollY refresherEnabled={true}
-        //         refresherThreshold={100} refresherBackground="#000"
-        //         refresherDefaultStyle="white"
-        //         onRefresherRefresh={() => { props.refresh!() }}
-        //         upperThreshold={50}
-        //         onScrollToLower={() => { props.more ? props.more() : null }}
-        //         refresherTriggered={triggered}>
-        //         {
-        //             props.title && <View className="layout_title_view" style={{ backgroundColor: global.isDebug ? 'red' : 'transparent' }}>
-        //                 <Text className='layout_title'
-        //                     style={{
-        //                         color: props.titleColor ? props.titleColor : '#fff',
-        //                         fontSize: props.secondPage ? 28 : 36
-        //                     }}
-        //                 >{props.title}</Text>
-        //             </View>
-        //         }
-        //         {children}
-        //         <View style={{ height: 50 }} />
-        //     </ScrollView>
-        // case TemplateType.grid:
-        //     return <ScrollView className="layout_container"
-
-        //         showsVerticalScrollIndicator={false}
-        //         enableFlex={true}
-        //         onScroll={onScroll}
-        //         style={{ WebkitOverflowScrolling: 'auto' }}
-        //         scrollY refresherEnabled={true}
-        //         refresherThreshold={100} refresherBackground="#000"
-        //         refresherDefaultStyle="white"
-        //         onRefresherRefresh={() => { props.refresh!() }}
-        //         upperThreshold={50}
-        //         onScrollToLower={() => { props.more ? props.more() : null }}
-        //         refresherTriggered={triggered}>
-        //         {
-        //             props.title && <View className="layout_title_view" style={{ backgroundColor: global.isDebug ? 'red' : 'transparent' }}>
-        //                 <Text className='layout_title'
-        //                     style={{
-        //                         color: props.titleColor ? props.titleColor : '#fff',
-        //                         fontSize: props.secondPage ? 28 : 36
-        //                     }}
-        //                 >{props.title}</Text>
-        //             </View>
-        //         }
-        //         <View className="grid_bg">
-        //             {children}
-        //             <View style={{ height: 50 }} />
-        //         </View>
-        //     </ScrollView>
         case TemplateType.flex:
             return <View className='flex'>
                 {/* <View className="flex-expand" /> */}
                 {
                     process.env.TARO_ENV == 'weapp' ? pageDetail() :
-                        <ScrollView style={{ minHeight: Taro.getSystemInfoSync().screenHeight }} onScroll={onScroll} showsVerticalScrollIndicator={false}>
+                        <ScrollViewRN scrollEventThrottle={400} style={{ minHeight: Taro.getSystemInfoSync().screenHeight }} onScroll={onScroll} showsVerticalScrollIndicator={false}>
                             {
                                 pageDetail()
                             }
                             <View style={{ height: 200 }} />
-                        </ScrollView>
+                        </ScrollViewRN>
                 }
             </View>
         case TemplateType.customHeader:
             if (process.env.TARO_ENV == 'rn') {
-                return <ScrollView onScroll={onScroll}
+                return <ScrollViewRN onScroll={onScroll}
                     ref={scrollRef}
+                    scrollEventThrottle={400}
                     // scrollTop={scrollTop}
                     // scrollWithAnimation
                     style={{ minHeight: Taro.getSystemInfoSync().screenHeight }}
@@ -239,7 +198,7 @@ export default function Layout(props: {
                         {children}
                         <View style={{ height: 200 }} />
                     </View>
-                </ScrollView>
+                </ScrollViewRN>
             }
             return <View className='flex'>
                 {/* <View className="flex-expand" /> */}

+ 1 - 0
src/features/daynight/DayNightDetailPopup.tsx

@@ -652,6 +652,7 @@ export default function DayNightDetailPopup(props: {
                     testTapLocationIndex(res)
                 }
             });
+            return
         }
         
         Taro.showActionSheet({

+ 94 - 45
src/features/trackTimeDuration/components/WeekCalendar.tsx

@@ -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>
 

+ 26 - 20
src/features/trackTimeDuration/components/WeekCalendarItem.tsx

@@ -51,6 +51,9 @@ export default function WeekCalendarItem(props: { data: any, isCurrentWeek: bool
 
             props.data.list.map((item, index) => {
                 var isFast = item.scenario == 'FAST'
+                if (!props.isFastSleep) {
+                    isFast = item.scenario == 'EAT'
+                }
 
                 var real_start = item.real_start_time
                 var real_end = item.real_end_time
@@ -172,11 +175,11 @@ export default function WeekCalendarItem(props: { data: any, isCurrentWeek: bool
 
     function weekIndex() {
         var week = new Date().getDay()
-        if (!props.isFastSleep){
-            if (week==0){
+        if (!props.isFastSleep) {
+            if (week == 0) {
                 return 6;
             }
-            return week-1;
+            return week - 1;
         }
         if (!isTop()) {
             return week - 1
@@ -196,13 +199,13 @@ export default function WeekCalendarItem(props: { data: any, isCurrentWeek: bool
                     <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 6) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 6 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(6)}</Text>
                 </View> :
                     <View className="chart_top_week">
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(0) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 0 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(1)}</Text>
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 1) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 1 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(2)}</Text>
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 2) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 2 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(3)}</Text>
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 3) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 3 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(4)}</Text>
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 4) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 4 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(5)}</Text>
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 5) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 5 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(6)}</Text>
-                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 6) + ''), opacity: props.isCurrentWeek && isTop() && weekIndex() == 6 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(0)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(0) + ''), opacity: props.isCurrentWeek  && weekIndex() == 0 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(1)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 1) + ''), opacity: props.isCurrentWeek  && weekIndex() == 1 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(2)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 2) + ''), opacity: props.isCurrentWeek  && weekIndex() == 2 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(3)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 3) + ''), opacity: props.isCurrentWeek  && weekIndex() == 3 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(4)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 4) + ''), opacity: props.isCurrentWeek  && weekIndex() == 4 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(5)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 5) + ''), opacity: props.isCurrentWeek  && weekIndex() == 5 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(6)}</Text>
+                        <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 6) + ''), opacity: props.isCurrentWeek  && weekIndex() == 6 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(0)}</Text>
                     </View>
             }
 
@@ -267,16 +270,19 @@ export default function WeekCalendarItem(props: { data: any, isCurrentWeek: bool
                 </View>
             }
         </View>
-        <View style={{ height: parseInt(rpxToPx(60) + '') }}>
-            <View className="chart_bottom_week">
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(0) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 0 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(1)}</Text>
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 1) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 1 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(2)}</Text>
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 2) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 2 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(3)}</Text>
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 3) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 3 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(4)}</Text>
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 4) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 4 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(5)}</Text>
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 5) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 5 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(6)}</Text>
-                <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 6) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == -1 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(0)}</Text>
+        {
+            props.isFastSleep && <View style={{ height: parseInt(rpxToPx(60) + '') }}>
+                <View className="chart_bottom_week">
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(0) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 0 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(1)}</Text>
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 1) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 1 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(2)}</Text>
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 2) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 2 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(3)}</Text>
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 3) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 3 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(4)}</Text>
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 4) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 4 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(5)}</Text>
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 5) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == 5 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(6)}</Text>
+                    <Text className="chart_week_text" style={{ left: parseInt(rpxToPx(94 * 6) + ''), opacity: props.isCurrentWeek && !isTop() && weekIndex() == -1 ? 1 : 0.4 }}>{TimeFormatter.getDayOfWeek(0)}</Text>
+                </View>
             </View>
-        </View>
+        }
+
     </View>
 }

+ 5 - 0
src/pages/clock/ChooseScenario.tsx

@@ -79,6 +79,10 @@ export default function ChooseScenario() {
             dispatch(initTarget(targets))
         })
 
+        userAccess().then(res => {
+            setAccess(res)
+        })
+
         if (process.env.TARO_ENV == 'rn') {
             // AppState.addEventListener('change', handleAppStateChange);
             navigation.addListener('focus', () => {
@@ -110,6 +114,7 @@ export default function ChooseScenario() {
     }
 
     function chooseType(index: number) {
+        debugger
         const { qualification } = access.fast_sleep.current
         if (qualification.status != "PROVISIONAL_QUALIFIED" && qualification.status != 'QUALIFIED_UNTIL_EXPIRE' && index == 1) {
             const { streak_fast_min_required } = qualification.condition;

+ 1 - 0
src/services/http/api.js

@@ -43,6 +43,7 @@ export const API_FAST_CLOCKS = `${baseUrl}/api/fast/clocks`
 export const API_MIX_CLOCKS = `${baseUrl}/api/fast/batch-clocks`
 export const API_CLOCK_HOME = `${baseUrl}/api/clock/home`
 export const API_CLOCK_STATS = `${baseUrl}/api/clock/summary/stats`
+export const API_EAT_WAKES = `${baseUrl}/api/clock/eat-wakes`
 export const API_FAST_CHECK_ABANDONED = `${baseUrl}/api/fast/check-abandoned`
 export const API_FAST_RECORDS = `${baseUrl}/api/fast/records`
 export const API_FAST_SCHEDULES = `${baseUrl}/api/fast/schedules`

+ 11 - 1
src/services/trackTimeDuration.tsx

@@ -1,6 +1,6 @@
 
 
-import { API_FAST_PLANS, API_FAST_CHECKS, API_FAST_CLOCKS, API_CLOCK_RECORDS, API_CLOCK_HOME, API_CLOCK_STATS, API_CLOCK_SUMMARY_RECORDS, API_CLOCK_RECORD_UPDATE, API_CLOCK_STREAKS } from './http/api'
+import { API_FAST_PLANS, API_FAST_CHECKS, API_FAST_CLOCKS, API_CLOCK_RECORDS, API_CLOCK_HOME, API_CLOCK_STATS, API_CLOCK_SUMMARY_RECORDS, API_CLOCK_RECORD_UPDATE, API_CLOCK_STREAKS, API_EAT_WAKES } from './http/api'
 import { request } from './http/request';
 import { getLocalPush } from '@/features/trackTimeDuration/actions/TrackTimeActions';
 
@@ -61,6 +61,16 @@ export const clockSummaryStats = (params: any) => {
     })
 }
 
+export const eatWakes = (params:any)=>{
+    return new Promise((resolve) => {
+        request({
+            url: API_EAT_WAKES, method: 'GET', data: { ...params }
+        }).then(res => {
+            resolve(res);
+        })
+    })
+}
+
 export const getClocks = () => {
     return new Promise((resolve, reject) => {
         request({

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.