@ledvance/ui-biz-bundle 1.1.68 → 1.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/.babelrc +31 -31
  2. package/.eslintignore +5 -5
  3. package/.eslintrc.js +27 -27
  4. package/.prettierrc.js +1 -1
  5. package/.versionrc +5 -5
  6. package/package.json +74 -74
  7. package/rn-cli.config.js +8 -8
  8. package/src/hooks/DeviceDpStateHooks.d.ts +14 -14
  9. package/src/hooks/DeviceDpStateHooks.ts +50 -50
  10. package/src/modules/biorhythm/BiorhythmActions.d.ts +8 -8
  11. package/src/modules/biorhythm/BiorhythmActions.ts +324 -324
  12. package/src/modules/biorhythm/BiorhythmBean.d.ts +58 -58
  13. package/src/modules/biorhythm/BiorhythmBean.ts +230 -230
  14. package/src/modules/biorhythm/BiorhythmEditPage.d.ts +14 -14
  15. package/src/modules/biorhythm/BiorhythmEditPage.tsx +324 -324
  16. package/src/modules/biorhythm/BiorhythmPage.d.ts +10 -10
  17. package/src/modules/biorhythm/BiorhythmPage.tsx +796 -796
  18. package/src/modules/biorhythm/IconSelect.d.ts +2 -2
  19. package/src/modules/biorhythm/IconSelect.tsx +81 -81
  20. package/src/modules/biorhythm/Router.ts +34 -34
  21. package/src/modules/biorhythm/circular/ItemIcon.d.ts +22 -22
  22. package/src/modules/biorhythm/circular/ItemIcon.tsx +172 -172
  23. package/src/modules/biorhythm/circular/Progress.d.ts +24 -24
  24. package/src/modules/biorhythm/circular/Progress.tsx +411 -411
  25. package/src/modules/biorhythm/circular/TimeCircular.d.ts +11 -11
  26. package/src/modules/biorhythm/circular/TimeCircular.tsx +70 -70
  27. package/src/modules/biorhythm/iconListData.d.ts +7 -7
  28. package/src/modules/biorhythm/iconListData.ts +29 -29
  29. package/src/modules/biorhythm/pIdList.d.ts +2 -2
  30. package/src/modules/biorhythm/pIdList.ts +35 -35
  31. package/src/modules/biorhythm/res/BiologicalRes.d.ts +43 -43
  32. package/src/modules/biorhythm/res/BiologicalRes.ts +41 -41
  33. package/src/modules/config/ldvConfig.d.ts +2 -2
  34. package/src/modules/config/ldvConfig.tsx +18 -18
  35. package/src/modules/fixedTime/FixedTimeActions.ts +173 -173
  36. package/src/modules/fixedTime/FixedTimeDetailPage.tsx +372 -372
  37. package/src/modules/fixedTime/FixedTimePage.tsx +213 -213
  38. package/src/modules/fixedTime/Router.ts +26 -26
  39. package/src/modules/flags/FlagActions.ts +267 -267
  40. package/src/modules/flags/FlagEditPage.tsx +441 -441
  41. package/src/modules/flags/FlagInfo.tsx +563 -563
  42. package/src/modules/flags/FlagItem.tsx +90 -90
  43. package/src/modules/flags/FlagPage.tsx +277 -277
  44. package/src/modules/flags/Router.ts +25 -25
  45. package/src/modules/history/HistoryPage.d.ts +2 -2
  46. package/src/modules/history/HistoryPage.tsx +261 -261
  47. package/src/modules/history/Router.ts +16 -16
  48. package/src/modules/history/SwitchHistoryPageActions.d.ts +14 -14
  49. package/src/modules/history/SwitchHistoryPageActions.ts +76 -76
  50. package/src/modules/mood/AddMoodPage.d.ts +10 -10
  51. package/src/modules/mood/AddMoodPage.tsx +792 -792
  52. package/src/modules/mood/DynamicMoodEditorPage.d.ts +6 -6
  53. package/src/modules/mood/DynamicMoodEditorPage.tsx +561 -561
  54. package/src/modules/mood/FantasyMood.tsx +176 -176
  55. package/src/modules/mood/FantasyMoodEditPage.tsx +582 -582
  56. package/src/modules/mood/FantasyMoodItem.tsx +104 -104
  57. package/src/modules/mood/FantasyRouter.ts +35 -35
  58. package/src/modules/mood/MixMood/AddMixMoodPage.tsx +247 -247
  59. package/src/modules/mood/MixMood/MixMoodActions.ts +128 -128
  60. package/src/modules/mood/MixMood/MixMoodEditPage.tsx +721 -721
  61. package/src/modules/mood/MixMood/MixMoodItem.tsx +134 -134
  62. package/src/modules/mood/MixMood/MixMoodPage.tsx +326 -326
  63. package/src/modules/mood/MixMood/MixSceneBeans.ts +364 -364
  64. package/src/modules/mood/MixMood/RecommendMixMoodItem.tsx +69 -69
  65. package/src/modules/mood/MixMood/Router.ts +44 -44
  66. package/src/modules/mood/MoodItem.d.ts +11 -11
  67. package/src/modules/mood/MoodItem.tsx +114 -114
  68. package/src/modules/mood/MoodPage.d.ts +16 -16
  69. package/src/modules/mood/MoodPage.tsx +296 -296
  70. package/src/modules/mood/RecommendMoodItem.d.ts +13 -13
  71. package/src/modules/mood/RecommendMoodItem.tsx +74 -74
  72. package/src/modules/mood/Router.ts +53 -53
  73. package/src/modules/mood/StaticMoodEditorPage.d.ts +16 -16
  74. package/src/modules/mood/StaticMoodEditorPage.tsx +320 -320
  75. package/src/modules/mood/tools.d.ts +3 -3
  76. package/src/modules/mood/tools.ts +11 -11
  77. package/src/modules/music/MusicDataBean.d.ts +47 -47
  78. package/src/modules/music/MusicDataBean.ts +167 -167
  79. package/src/modules/music/MusicManager.d.ts +27 -27
  80. package/src/modules/music/MusicManager.ts +207 -207
  81. package/src/modules/music/MusicPage.d.ts +10 -10
  82. package/src/modules/music/MusicPage.tsx +347 -347
  83. package/src/modules/music/MusicPageActions.d.ts +35 -35
  84. package/src/modules/music/MusicPageActions.ts +317 -317
  85. package/src/modules/music/Router.ts +16 -16
  86. package/src/modules/music/SelecetGenre.d.ts +7 -7
  87. package/src/modules/music/SelecetGenre.tsx +63 -63
  88. package/src/modules/music/color.d.ts +2 -2
  89. package/src/modules/music/color.ts +73 -73
  90. package/src/modules/music/res/index.d.ts +10 -10
  91. package/src/modules/music/res/index.ts +9 -9
  92. package/src/modules/powerOnBehavior/PowerOnBehaviorActions.ts +11 -11
  93. package/src/modules/powerOnBehavior/PowerOnBehaviorPage.tsx +173 -173
  94. package/src/modules/powerOnBehavior/Router.ts +16 -16
  95. package/src/modules/randomTime/RandomTimeActions.ts +160 -160
  96. package/src/modules/randomTime/RandomTimeDetailPage.tsx +337 -337
  97. package/src/modules/randomTime/RandomTimePage.tsx +214 -214
  98. package/src/modules/randomTime/Router.ts +25 -25
  99. package/src/modules/randomTime/Summary.tsx +122 -122
  100. package/src/modules/scene/SceneAction.d.ts +13 -13
  101. package/src/modules/scene/SceneAction.ts +473 -473
  102. package/src/modules/scene/SceneDetailPage.d.ts +1 -1
  103. package/src/modules/scene/SceneDetailPage.tsx +421 -421
  104. package/src/modules/scene/SceneInfo.d.ts +72 -72
  105. package/src/modules/scene/SceneInfo.ts +1059 -1059
  106. package/src/modules/scene/ScenePage.d.ts +7 -7
  107. package/src/modules/scene/ScenePage.tsx +147 -147
  108. package/src/modules/select/SelectPage.d.ts +12 -12
  109. package/src/modules/select/SelectPage.tsx +137 -137
  110. package/src/modules/sleepWakeup/DeviceState.d.ts +9 -9
  111. package/src/modules/sleepWakeup/DeviceState.tsx +99 -99
  112. package/src/modules/sleepWakeup/LdvScheduleItem.d.ts +15 -15
  113. package/src/modules/sleepWakeup/LdvScheduleItem.tsx +176 -176
  114. package/src/modules/sleepWakeup/Router.ts +25 -25
  115. package/src/modules/sleepWakeup/SleepWakeUpActions.d.ts +2 -2
  116. package/src/modules/sleepWakeup/SleepWakeUpActions.ts +180 -180
  117. package/src/modules/sleepWakeup/SleepWakeUpDetailPage.d.ts +2 -2
  118. package/src/modules/sleepWakeup/SleepWakeUpDetailPage.tsx +616 -616
  119. package/src/modules/sleepWakeup/SleepWakeUpPage.d.ts +13 -13
  120. package/src/modules/sleepWakeup/SleepWakeUpPage.tsx +424 -424
  121. package/src/modules/sleepWakeup/utils.d.ts +44 -44
  122. package/src/modules/sleepWakeup/utils.ts +253 -253
  123. package/src/modules/timeSchedule/DeviceState.d.ts +17 -17
  124. package/src/modules/timeSchedule/DeviceState.tsx +94 -94
  125. package/src/modules/timeSchedule/LdvScheduleItem.d.ts +15 -15
  126. package/src/modules/timeSchedule/LdvScheduleItem.tsx +130 -130
  127. package/src/modules/timeSchedule/ManualSetting.d.ts +14 -14
  128. package/src/modules/timeSchedule/ManualSetting.tsx +219 -219
  129. package/src/modules/timeSchedule/MoodSetting.d.ts +11 -11
  130. package/src/modules/timeSchedule/MoodSetting.tsx +228 -228
  131. package/src/modules/timeSchedule/Router.ts +25 -25
  132. package/src/modules/timeSchedule/ScheduleScene.d.ts +6 -6
  133. package/src/modules/timeSchedule/ScheduleScene.tsx +144 -144
  134. package/src/modules/timeSchedule/SingleLightView.d.ts +12 -12
  135. package/src/modules/timeSchedule/SingleLightView.tsx +175 -175
  136. package/src/modules/timeSchedule/TimeScheduleBean.d.ts +14 -14
  137. package/src/modules/timeSchedule/TimeScheduleBean.ts +18 -18
  138. package/src/modules/timeSchedule/TimeScheduleEditpage.d.ts +6 -6
  139. package/src/modules/timeSchedule/TimeScheduleEditpage.tsx +765 -765
  140. package/src/modules/timeSchedule/TimeSchedulePage.d.ts +13 -13
  141. package/src/modules/timeSchedule/TimeSchedulePage.tsx +358 -358
  142. package/src/modules/timeSchedule/components/ColorList.ts +23 -23
  143. package/src/modules/timeSchedule/components/LampSwitchCard.tsx +106 -106
  144. package/src/modules/timeSchedule/mix/MixLightActions.d.ts +3 -3
  145. package/src/modules/timeSchedule/mix/MixLightActions.ts +49 -49
  146. package/src/modules/timeSchedule/mix/MixLightBean.d.ts +10 -10
  147. package/src/modules/timeSchedule/mix/MixLightBean.ts +9 -9
  148. package/src/modules/timeSchedule/mix/MixLightView.d.ts +7 -7
  149. package/src/modules/timeSchedule/mix/MixLightView.tsx +197 -197
  150. package/src/modules/timeSchedule/utils.d.ts +1 -1
  151. package/src/modules/timeSchedule/utils.ts +6 -6
  152. package/src/modules/timer/Router.ts +16 -16
  153. package/src/modules/timer/TimerPage.d.ts +11 -11
  154. package/src/modules/timer/TimerPage.tsx +384 -384
  155. package/src/modules/timer/TimerPageAction.d.ts +22 -22
  156. package/src/modules/timer/TimerPageAction.ts +131 -131
  157. package/src/navigation/Routers.d.ts +15 -15
  158. package/src/navigation/Routers.ts +46 -46
  159. package/src/navigation/tools.d.ts +9 -9
  160. package/src/navigation/tools.ts +21 -21
  161. package/src/newModules/biorhythm/BiorhythmActions.ts +374 -374
  162. package/src/newModules/biorhythm/BiorhythmBean.ts +230 -230
  163. package/src/newModules/biorhythm/BiorhythmEditPage.tsx +267 -267
  164. package/src/newModules/biorhythm/BiorhythmPage.tsx +642 -642
  165. package/src/newModules/biorhythm/IconSelect.tsx +84 -84
  166. package/src/newModules/biorhythm/Router.ts +33 -33
  167. package/src/newModules/biorhythm/circular/ItemIcon.d.ts +22 -22
  168. package/src/newModules/biorhythm/circular/ItemIcon.tsx +172 -172
  169. package/src/newModules/biorhythm/circular/Progress.d.ts +24 -24
  170. package/src/newModules/biorhythm/circular/Progress.tsx +371 -371
  171. package/src/newModules/biorhythm/circular/TimeCircular.d.ts +11 -11
  172. package/src/newModules/biorhythm/circular/TimeCircular.tsx +64 -64
  173. package/src/newModules/biorhythm/iconListData.ts +29 -29
  174. package/src/newModules/biorhythm/pIdList.ts +35 -35
  175. package/src/newModules/biorhythm/res/BiologicalRes.d.ts +43 -43
  176. package/src/newModules/biorhythm/res/BiologicalRes.ts +41 -41
  177. package/src/newModules/childLock/ChildLockPage.tsx +97 -97
  178. package/src/newModules/childLock/Router.ts +16 -16
  179. package/src/newModules/energyConsumption/EnergyConsumptionActions.ts +23 -23
  180. package/src/newModules/energyConsumption/EnergyConsumptionChart.tsx +84 -84
  181. package/src/newModules/energyConsumption/EnergyConsumptionDetail.tsx +322 -322
  182. package/src/newModules/energyConsumption/EnergyConsumptionPage.tsx +393 -393
  183. package/src/newModules/energyConsumption/Router.ts +34 -34
  184. package/src/newModules/energyConsumption/co2Data.ts +23655 -23655
  185. package/src/newModules/energyConsumption/component/BarChart.tsx +93 -93
  186. package/src/newModules/energyConsumption/component/EnergyModal.tsx +284 -284
  187. package/src/newModules/energyConsumption/component/Overview.tsx +118 -118
  188. package/src/newModules/fixedTime/FixedTimeActions.ts +241 -241
  189. package/src/newModules/fixedTime/FixedTimeDetailPage.tsx +345 -345
  190. package/src/newModules/fixedTime/FixedTimePage.tsx +302 -302
  191. package/src/newModules/fixedTime/Router.ts +25 -25
  192. package/src/newModules/lightMode/LightModePage.tsx +204 -204
  193. package/src/newModules/lightMode/Router.ts +16 -16
  194. package/src/newModules/mood/AddMoodPage.tsx +194 -194
  195. package/src/newModules/mood/DynamicMoodEditorPage.tsx +650 -650
  196. package/src/newModules/mood/Interface.ts +220 -220
  197. package/src/newModules/mood/MixDynamicMoodEditor.tsx +786 -786
  198. package/src/newModules/mood/MoodActions.ts +232 -232
  199. package/src/newModules/mood/MoodInfo.ts +2151 -2151
  200. package/src/newModules/mood/MoodItem.tsx +160 -160
  201. package/src/newModules/mood/MoodPage.tsx +386 -386
  202. package/src/newModules/mood/MoodParse.ts +443 -443
  203. package/src/newModules/mood/RecommendMoodItem.tsx +81 -81
  204. package/src/newModules/mood/Router.ts +43 -43
  205. package/src/newModules/mood/StaticMoodEditorPage.tsx +290 -290
  206. package/src/newModules/overchargeSwitch/OverchargeSwitchPage.tsx +96 -96
  207. package/src/newModules/overchargeSwitch/Router.ts +16 -16
  208. package/src/newModules/powerOnBehavior/LightBehaviorPage.tsx +266 -266
  209. package/src/newModules/powerOnBehavior/PlugBehaviorPage.tsx +173 -173
  210. package/src/newModules/powerOnBehavior/PowerOnBehaviorActions.ts +106 -106
  211. package/src/newModules/powerOnBehavior/Router.ts +27 -27
  212. package/src/newModules/randomTime/RandomTimeActions.ts +238 -238
  213. package/src/newModules/randomTime/RandomTimeDetailPage.tsx +325 -325
  214. package/src/newModules/randomTime/RandomTimePage.tsx +299 -299
  215. package/src/newModules/randomTime/Router.ts +25 -25
  216. package/src/newModules/randomTime/Summary.tsx +116 -116
  217. package/src/newModules/remoteControl/RemoteControlActions.ts +5 -5
  218. package/src/newModules/remoteControl/RemoteControlPage.tsx +51 -51
  219. package/src/newModules/remoteControl/Router.ts +15 -15
  220. package/src/newModules/select/Route.ts +16 -16
  221. package/src/newModules/select/SelectPage.d.ts +12 -12
  222. package/src/newModules/select/SelectPage.tsx +137 -137
  223. package/src/newModules/sleepWakeUp/Interface.ts +69 -69
  224. package/src/newModules/sleepWakeUp/Router.ts +24 -24
  225. package/src/newModules/sleepWakeUp/SleepWakeUpActions.ts +317 -317
  226. package/src/newModules/sleepWakeUp/SleepWakeUpDetailPage.tsx +661 -661
  227. package/src/newModules/sleepWakeUp/SleepWakeUpPage.tsx +455 -455
  228. package/src/newModules/sleepWakeUp/utils.ts +253 -253
  229. package/src/newModules/swithInching/Router.ts +16 -16
  230. package/src/newModules/swithInching/SwithInching.tsx +231 -231
  231. package/src/newModules/swithInching/SwithInchingAction.ts +55 -55
  232. package/src/newModules/swithInching/pickerView.tsx +91 -91
  233. package/src/newModules/timeSchedule/Interface.ts +142 -142
  234. package/src/newModules/timeSchedule/Router.ts +25 -25
  235. package/src/newModules/timeSchedule/TimeScheduleActions.ts +53 -53
  236. package/src/newModules/timeSchedule/TimeScheduleDetailPage.tsx +648 -648
  237. package/src/newModules/timeSchedule/TimeSchedulePage.tsx +253 -253
  238. package/src/newModules/timeSchedule/components/ManuaSettings.tsx +460 -460
  239. package/src/newModules/timeSchedule/components/ScheduleCard.tsx +125 -125
  240. package/tsconfig.json +50 -50
@@ -1,22 +1,22 @@
1
- import { dpItem } from "./TimerPage";
2
- export declare const useCountdowns: (dps: dpItem[]) => {
3
- label: string;
4
- value: string;
5
- dpId: string;
6
- enableDp: string;
7
- cloudKey: any;
8
- stringOn: any;
9
- stringOff: any;
10
- countdown: any;
11
- enable: any;
12
- }[];
13
- export declare const useProgress: (dps: dpItem[], cancelTimer: any) => {
14
- label: string;
15
- value: string;
16
- dpId: string;
17
- enableDp: string;
18
- cloudKey: any;
19
- stringOn: any;
20
- stringOff: any;
21
- progressHook: [number, (time: number, t: any) => void];
22
- }[];
1
+ import { dpItem } from "./TimerPage";
2
+ export declare const useCountdowns: (dps: dpItem[]) => {
3
+ label: string;
4
+ value: string;
5
+ dpId: string;
6
+ enableDp: string;
7
+ cloudKey: any;
8
+ stringOn: any;
9
+ stringOff: any;
10
+ countdown: any;
11
+ enable: any;
12
+ }[];
13
+ export declare const useProgress: (dps: dpItem[], cancelTimer: any) => {
14
+ label: string;
15
+ value: string;
16
+ dpId: string;
17
+ enableDp: string;
18
+ cloudKey: any;
19
+ stringOn: any;
20
+ stringOff: any;
21
+ progressHook: [number, (time: number, t: any) => void];
22
+ }[];
@@ -1,131 +1,131 @@
1
- import { useCallback, useEffect, useState } from "react"
2
- import { useDeviceId, useDp } from "@ledvance/base/src/models/modules/NativePropsSlice"
3
- import { Result } from "@ledvance/base/src/models/modules/Result"
4
- import { dpItem } from "./TimerPage"
5
- import { useCountDown as useCountDownAHook, useUpdateEffect } from 'ahooks'
6
- import dayjs from "dayjs"
7
- import { NativeApi } from "@ledvance/base/src/api/native"
8
-
9
-
10
- export const useCountdowns = (dps: dpItem[]) => {
11
- return dps.map(dp => {
12
- return ({
13
- countdown: useDp<number, (value: number) => Promise<Result<any>>>(dp.dpId),
14
- enable: useDp<boolean, (value: boolean) => Promise<Result<any>>>(dp.enableDp),
15
- ...dp
16
- })
17
- })
18
- }
19
-
20
- type FormateProgressType = {
21
- progressNumber: number
22
- countdown: number
23
- startTimer: (c: number, time: string) => Promise<void>
24
- endTimer: () => void
25
- }
26
- const useFormateProgress: (dp: dpItem) => FormateProgressType = (dp) => {
27
- const [countdown, setCountdown] = useDp<number, (value: number) => Promise<Result<any>>>(dp.dpId)
28
- const [progress, setProgress] = useCountDownAHook({
29
- interval: 1000,
30
- onEnd: () => {
31
- initTimerFn()
32
- setCountdown(0)
33
- },
34
- })
35
- const devId = useDeviceId()
36
- const [cloudProgressNumber, setCloudProgressNumber] = useState(0)
37
- const [progressNumber, setProgressNumber] = useState(0)
38
- const [cloudData, setCloudData] = useState<any>()
39
- const [isTrigger, setIsTeigger] = useState(false)
40
- const getCloudJson = () => {
41
- NativeApi.getJson(devId, dp.cloudKey).then(res => {
42
- if (res.success && res.data) {
43
- const result = JSON.parse(res.data)
44
- setCloudData(result)
45
- setCloudProgressNumber(result.progressAllNumber)
46
- if (countdown > 0) setProgress(Date.now() + countdown * 1000)
47
- }
48
- })
49
- }
50
- useEffect(() => {
51
- if(countdown > 0){
52
- getCloudJson()
53
- }
54
- }, [])
55
-
56
- useEffect(() => {
57
- if (cloudProgressNumber > 0) {
58
- const currentTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
59
- const remainingTime = Number(cloudData && dayjs(cloudData[getKey('StartTime', dp.dpId)] || 0).diff(currentTime))
60
- const time = (cloudData && cloudData[getKey('Status', dp.dpId)] && remainingTime >= -1000) ? remainingTime : Number(progress.toString().slice(0, -3) + "000")
61
- const conversion = (time / 1000) / cloudProgressNumber * 100
62
- setProgressNumber(!isNaN(conversion) ? conversion : 0)
63
- }
64
- }, [progress])
65
-
66
- useUpdateEffect(() =>{
67
- if(countdown === 0){
68
- setIsTeigger(false)
69
- initTimerFn()
70
- }
71
- }, [countdown])
72
-
73
- useUpdateEffect(() => {
74
- if (countdown === 0) {
75
- if(isTrigger){
76
- NativeApi.putJson(devId, dp.cloudKey, JSON.stringify({ [getKey('Status', dp.dpId)]: false, [getKey('StartTime', dp.dpId)]: '', progressAllNumber: 0 })).then()
77
- }
78
- }
79
-
80
- if (countdown > 0 && !cloudData && !isTrigger) {
81
- getCloudJson()
82
- }
83
- }, [countdown, cloudData])
84
-
85
-
86
-
87
- const initTimerFn = useCallback(() =>{
88
- setProgressNumber(0)
89
- setCloudData(null)
90
- setCloudProgressNumber(0)
91
- setProgress(0)
92
- }, [])
93
-
94
- const getKey = (suffix: string, dpId: string) => {
95
- const key = dpId + suffix
96
- return key
97
- }
98
-
99
- const startTimer = async (time: number, t:string) => {
100
- setIsTeigger(true)
101
- await setCountdown(time)
102
- const putData = { [getKey('Status', dp.dpId)]: true, [getKey('StartTime', dp.dpId)]: t, progressAllNumber: time }
103
- await NativeApi.putJson(devId, dp.cloudKey, JSON.stringify(putData))
104
- setCloudProgressNumber(time)
105
- setProgress(Date.now() + time * 1000)
106
- setCloudData(putData)
107
- }
108
-
109
- const endTimer = async () =>{
110
- setIsTeigger(false)
111
- await setCountdown(0)
112
- NativeApi.putJson(devId, dp.cloudKey, JSON.stringify({ [getKey('Status', dp.dpId)]: false, [getKey('StartTime', dp.dpId)]: '', progressAllNumber: 0 })).then(() => {
113
- initTimerFn()
114
- })
115
- }
116
-
117
- return {
118
- progressNumber,
119
- countdown,
120
- startTimer,
121
- endTimer
122
- }
123
- }
124
-
125
- export const useProgress = (dps: dpItem[]) => {
126
- return dps.map(dp => ({
127
- progressHook: useFormateProgress(dp),
128
- enable: useDp(dp.enableDp)[0] as boolean,
129
- ...dp
130
- }))
131
- }
1
+ import { useCallback, useEffect, useState } from "react"
2
+ import { useDeviceId, useDp } from "@ledvance/base/src/models/modules/NativePropsSlice"
3
+ import { Result } from "@ledvance/base/src/models/modules/Result"
4
+ import { dpItem } from "./TimerPage"
5
+ import { useCountDown as useCountDownAHook, useUpdateEffect } from 'ahooks'
6
+ import dayjs from "dayjs"
7
+ import { NativeApi } from "@ledvance/base/src/api/native"
8
+
9
+
10
+ export const useCountdowns = (dps: dpItem[]) => {
11
+ return dps.map(dp => {
12
+ return ({
13
+ countdown: useDp<number, (value: number) => Promise<Result<any>>>(dp.dpId),
14
+ enable: useDp<boolean, (value: boolean) => Promise<Result<any>>>(dp.enableDp),
15
+ ...dp
16
+ })
17
+ })
18
+ }
19
+
20
+ type FormateProgressType = {
21
+ progressNumber: number
22
+ countdown: number
23
+ startTimer: (c: number, time: string) => Promise<void>
24
+ endTimer: () => void
25
+ }
26
+ const useFormateProgress: (dp: dpItem) => FormateProgressType = (dp) => {
27
+ const [countdown, setCountdown] = useDp<number, (value: number) => Promise<Result<any>>>(dp.dpId)
28
+ const [progress, setProgress] = useCountDownAHook({
29
+ interval: 1000,
30
+ onEnd: () => {
31
+ initTimerFn()
32
+ setCountdown(0)
33
+ },
34
+ })
35
+ const devId = useDeviceId()
36
+ const [cloudProgressNumber, setCloudProgressNumber] = useState(0)
37
+ const [progressNumber, setProgressNumber] = useState(0)
38
+ const [cloudData, setCloudData] = useState<any>()
39
+ const [isTrigger, setIsTeigger] = useState(false)
40
+ const getCloudJson = () => {
41
+ NativeApi.getJson(devId, dp.cloudKey).then(res => {
42
+ if (res.success && res.data) {
43
+ const result = JSON.parse(res.data)
44
+ setCloudData(result)
45
+ setCloudProgressNumber(result.progressAllNumber)
46
+ if (countdown > 0) setProgress(Date.now() + countdown * 1000)
47
+ }
48
+ })
49
+ }
50
+ useEffect(() => {
51
+ if(countdown > 0){
52
+ getCloudJson()
53
+ }
54
+ }, [])
55
+
56
+ useEffect(() => {
57
+ if (cloudProgressNumber > 0) {
58
+ const currentTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
59
+ const remainingTime = Number(cloudData && dayjs(cloudData[getKey('StartTime', dp.dpId)] || 0).diff(currentTime))
60
+ const time = (cloudData && cloudData[getKey('Status', dp.dpId)] && remainingTime >= -1000) ? remainingTime : Number(progress.toString().slice(0, -3) + "000")
61
+ const conversion = (time / 1000) / cloudProgressNumber * 100
62
+ setProgressNumber(!isNaN(conversion) ? conversion : 0)
63
+ }
64
+ }, [progress])
65
+
66
+ useUpdateEffect(() =>{
67
+ if(countdown === 0){
68
+ setIsTeigger(false)
69
+ initTimerFn()
70
+ }
71
+ }, [countdown])
72
+
73
+ useUpdateEffect(() => {
74
+ if (countdown === 0) {
75
+ if(isTrigger){
76
+ NativeApi.putJson(devId, dp.cloudKey, JSON.stringify({ [getKey('Status', dp.dpId)]: false, [getKey('StartTime', dp.dpId)]: '', progressAllNumber: 0 })).then()
77
+ }
78
+ }
79
+
80
+ if (countdown > 0 && !cloudData && !isTrigger) {
81
+ getCloudJson()
82
+ }
83
+ }, [countdown, cloudData])
84
+
85
+
86
+
87
+ const initTimerFn = useCallback(() =>{
88
+ setProgressNumber(0)
89
+ setCloudData(null)
90
+ setCloudProgressNumber(0)
91
+ setProgress(0)
92
+ }, [])
93
+
94
+ const getKey = (suffix: string, dpId: string) => {
95
+ const key = dpId + suffix
96
+ return key
97
+ }
98
+
99
+ const startTimer = async (time: number, t:string) => {
100
+ setIsTeigger(true)
101
+ await setCountdown(time)
102
+ const putData = { [getKey('Status', dp.dpId)]: true, [getKey('StartTime', dp.dpId)]: t, progressAllNumber: time }
103
+ await NativeApi.putJson(devId, dp.cloudKey, JSON.stringify(putData))
104
+ setCloudProgressNumber(time)
105
+ setProgress(Date.now() + time * 1000)
106
+ setCloudData(putData)
107
+ }
108
+
109
+ const endTimer = async () =>{
110
+ setIsTeigger(false)
111
+ await setCountdown(0)
112
+ NativeApi.putJson(devId, dp.cloudKey, JSON.stringify({ [getKey('Status', dp.dpId)]: false, [getKey('StartTime', dp.dpId)]: '', progressAllNumber: 0 })).then(() => {
113
+ initTimerFn()
114
+ })
115
+ }
116
+
117
+ return {
118
+ progressNumber,
119
+ countdown,
120
+ startTimer,
121
+ endTimer
122
+ }
123
+ }
124
+
125
+ export const useProgress = (dps: dpItem[]) => {
126
+ return dps.map(dp => ({
127
+ progressHook: useFormateProgress(dp),
128
+ enable: useDp(dp.enableDp)[0] as boolean,
129
+ ...dp
130
+ }))
131
+ }
@@ -1,15 +1,15 @@
1
- export declare const ui_biz_routerKey: {
2
- ui_biz_time_schedule: string;
3
- ui_biz_time_schedule_edit: string;
4
- ui_biz_mood: string;
5
- ui_biz_mood_add: string;
6
- ui_biz_static_mood_edit: string;
7
- ui_biz_dynamic_mood_edit: string;
8
- ui_biz_timer: string;
9
- bi_biz_biological: string;
10
- bi_biz_biological_edit: string;
11
- bi_biz_biological_icon_select: string;
12
- ui_biz_sleep_wakeUp: string;
13
- ui_biz_sleep_wakeUp_edit: string;
14
- ui_biz_music: string;
15
- };
1
+ export declare const ui_biz_routerKey: {
2
+ ui_biz_time_schedule: string;
3
+ ui_biz_time_schedule_edit: string;
4
+ ui_biz_mood: string;
5
+ ui_biz_mood_add: string;
6
+ ui_biz_static_mood_edit: string;
7
+ ui_biz_dynamic_mood_edit: string;
8
+ ui_biz_timer: string;
9
+ bi_biz_biological: string;
10
+ bi_biz_biological_edit: string;
11
+ bi_biz_biological_icon_select: string;
12
+ ui_biz_sleep_wakeUp: string;
13
+ ui_biz_sleep_wakeUp_edit: string;
14
+ ui_biz_music: string;
15
+ };
@@ -1,46 +1,46 @@
1
- export const ui_biz_routerKey = {
2
- 'ui_biz_time_schedule': 'ui_biz_time_schedule',
3
- 'ui_biz_time_schedule_edit': 'ui_biz_time_schedule_edit',
4
- 'ui_biz_fantasy_mood': 'ui_biz_fantasy_mood',
5
- 'ui_biz_fantasy_mood_edit': 'ui_biz_fantasy_mood_edit',
6
- 'ui_biz_mood': 'ui_biz_mood',
7
- 'ui_biz_mood_add': 'ui-biz_mood_add',
8
- 'ui_biz_static_mood_edit': 'ui_biz_static_mood_edit',
9
- 'ui_biz_dynamic_mood_edit': 'ui_biz_dynamic_mood_edit',
10
- 'ui_biz_dynamic_mix_mood_edit': 'ui_biz_dynamic_mix_mood_edit',
11
- 'ui_biz_mix_mood': 'ui_biz_mix_mood',
12
- 'ui_biz_mix_mood_edit': 'ui_biz_mix_mood_edit',
13
- 'ui_biz_mix_mood_add': 'ui_biz_mix_mood_add',
14
- 'ui_biz_timer': 'ui_biz_timer',
15
- 'bi_biz_biological': 'bi_biz_biological',
16
- 'bi_biz_biological_edit': 'bi_biz_biological_edit',
17
- 'bi_biz_biological_icon_select': 'bi_biz_biological_icon_select',
18
- 'ui_biz_sleep_wakeUp': 'ui_biz_sleep_wakeUp',
19
- 'ui_biz_sleep_wakeUp_edit': 'ui_biz_sleep_wakeUp_edit',
20
- 'ui_biz_sleep_wakeUp_new': 'ui_biz_sleep_wakeUp_new',
21
- 'ui_biz_sleep_wakeUp_edit_new': 'ui_biz_sleep_wakeUp_edit_new',
22
- 'ui_biz_music': 'ui_biz_music',
23
- 'ui_biz_select_page': 'ui_biz_select_page',
24
- 'ui_biz_fixed_time': 'ui_biz_fixed_time',
25
- 'ui_biz_fixed_time_edit': 'ui_biz_fixed_time_edit',
26
- 'ui_biz_random_time': 'ui_biz_random_time',
27
- 'ui_biz_random_time_edit': 'ui_biz_random_time_edit',
28
- 'ui_biz_history': 'ui_biz_history',
29
- 'ui_biz_power_behavior': 'ui_biz_power_behavior',
30
- 'ui_biz_flag_page': 'ui_biz_flag_page',
31
- 'ui_biz_flag_page_edit': 'ui_biz_flag_page_edit',
32
- 'ui_biz_time_schedule_new': 'ui_biz_time_schedule_new',
33
- 'ui_biz_time_schedule_edit_new': 'ui_biz_time_schedule_edit_new',
34
- 'ui_biz_fixed_time_new': 'ui_biz_fixed_time_new',
35
- 'ui_biz_fixed_time_edit_new': 'ui_biz_fixed_time_edit_new',
36
- 'ui_biz_random_time_new': 'ui_biz_random_time_new',
37
- 'ui_biz_random_time_edit_new': 'ui_biz_random_time_edit_new',
38
- 'ui_biz_energy_consumption': 'ui_biz_energy_consumption',
39
- 'ui_biz_energy_consumption_detail': 'ui_biz_energy_consumption_detail',
40
- 'ui_biz_energy_consumption_chart': 'ui_biz_energy_consumption_chart',
41
- 'ui_biz_power_behavior_plug': 'ui_biz_power_behavior_plug',
42
- 'ui_biz_switch_inching': 'ui_biz_switch_inching',
43
- 'ui_biz_light_mode': 'ui_biz_light_mode',
44
- 'ui_biz_overcharge_switch': 'ui_biz_overcharge_switch',
45
- 'ui_biz_child_lock': 'ui_biz_child_lock',
46
- }
1
+ export const ui_biz_routerKey = {
2
+ 'ui_biz_time_schedule': 'ui_biz_time_schedule',
3
+ 'ui_biz_time_schedule_edit': 'ui_biz_time_schedule_edit',
4
+ 'ui_biz_fantasy_mood': 'ui_biz_fantasy_mood',
5
+ 'ui_biz_fantasy_mood_edit': 'ui_biz_fantasy_mood_edit',
6
+ 'ui_biz_mood': 'ui_biz_mood',
7
+ 'ui_biz_mood_add': 'ui-biz_mood_add',
8
+ 'ui_biz_static_mood_edit': 'ui_biz_static_mood_edit',
9
+ 'ui_biz_dynamic_mood_edit': 'ui_biz_dynamic_mood_edit',
10
+ 'ui_biz_dynamic_mix_mood_edit': 'ui_biz_dynamic_mix_mood_edit',
11
+ 'ui_biz_mix_mood': 'ui_biz_mix_mood',
12
+ 'ui_biz_mix_mood_edit': 'ui_biz_mix_mood_edit',
13
+ 'ui_biz_mix_mood_add': 'ui_biz_mix_mood_add',
14
+ 'ui_biz_timer': 'ui_biz_timer',
15
+ 'bi_biz_biological': 'bi_biz_biological',
16
+ 'bi_biz_biological_edit': 'bi_biz_biological_edit',
17
+ 'bi_biz_biological_icon_select': 'bi_biz_biological_icon_select',
18
+ 'ui_biz_sleep_wakeUp': 'ui_biz_sleep_wakeUp',
19
+ 'ui_biz_sleep_wakeUp_edit': 'ui_biz_sleep_wakeUp_edit',
20
+ 'ui_biz_sleep_wakeUp_new': 'ui_biz_sleep_wakeUp_new',
21
+ 'ui_biz_sleep_wakeUp_edit_new': 'ui_biz_sleep_wakeUp_edit_new',
22
+ 'ui_biz_music': 'ui_biz_music',
23
+ 'ui_biz_select_page': 'ui_biz_select_page',
24
+ 'ui_biz_fixed_time': 'ui_biz_fixed_time',
25
+ 'ui_biz_fixed_time_edit': 'ui_biz_fixed_time_edit',
26
+ 'ui_biz_random_time': 'ui_biz_random_time',
27
+ 'ui_biz_random_time_edit': 'ui_biz_random_time_edit',
28
+ 'ui_biz_history': 'ui_biz_history',
29
+ 'ui_biz_power_behavior': 'ui_biz_power_behavior',
30
+ 'ui_biz_flag_page': 'ui_biz_flag_page',
31
+ 'ui_biz_flag_page_edit': 'ui_biz_flag_page_edit',
32
+ 'ui_biz_time_schedule_new': 'ui_biz_time_schedule_new',
33
+ 'ui_biz_time_schedule_edit_new': 'ui_biz_time_schedule_edit_new',
34
+ 'ui_biz_fixed_time_new': 'ui_biz_fixed_time_new',
35
+ 'ui_biz_fixed_time_edit_new': 'ui_biz_fixed_time_edit_new',
36
+ 'ui_biz_random_time_new': 'ui_biz_random_time_new',
37
+ 'ui_biz_random_time_edit_new': 'ui_biz_random_time_edit_new',
38
+ 'ui_biz_energy_consumption': 'ui_biz_energy_consumption',
39
+ 'ui_biz_energy_consumption_detail': 'ui_biz_energy_consumption_detail',
40
+ 'ui_biz_energy_consumption_chart': 'ui_biz_energy_consumption_chart',
41
+ 'ui_biz_power_behavior_plug': 'ui_biz_power_behavior_plug',
42
+ 'ui_biz_switch_inching': 'ui_biz_switch_inching',
43
+ 'ui_biz_light_mode': 'ui_biz_light_mode',
44
+ 'ui_biz_overcharge_switch': 'ui_biz_overcharge_switch',
45
+ 'ui_biz_child_lock': 'ui_biz_child_lock',
46
+ }
@@ -1,9 +1,9 @@
1
- import { NavigationProp, ParamListBase } from '@react-navigation/native';
2
- import { AddMoodPageParams } from 'modules/mood/AddMoodPage';
3
- import { StaticMoodEditorPageParams } from 'modules/mood/StaticMoodEditorPage';
4
- import { StackNavigationProp } from '@react-navigation/stack';
5
- import { SelectPageParams } from 'modules/select/SelectPage';
6
- export declare function toStaticMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams): void;
7
- export declare function toDynamicMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams): void;
8
- export declare function toAddMoodPage(navigation: NavigationProp<ParamListBase>, params: AddMoodPageParams): void;
9
- export declare function toSelectPage<T>(navigation: StackNavigationProp<any>, params: SelectPageParams<T>): void;
1
+ import { NavigationProp, ParamListBase } from '@react-navigation/native';
2
+ import { AddMoodPageParams } from 'modules/mood/AddMoodPage';
3
+ import { StaticMoodEditorPageParams } from 'modules/mood/StaticMoodEditorPage';
4
+ import { StackNavigationProp } from '@react-navigation/stack';
5
+ import { SelectPageParams } from 'modules/select/SelectPage';
6
+ export declare function toStaticMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams): void;
7
+ export declare function toDynamicMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams): void;
8
+ export declare function toAddMoodPage(navigation: NavigationProp<ParamListBase>, params: AddMoodPageParams): void;
9
+ export declare function toSelectPage<T>(navigation: StackNavigationProp<any>, params: SelectPageParams<T>): void;
@@ -1,22 +1,22 @@
1
- import {NavigationProp, ParamListBase} from '@react-navigation/native'
2
- import { AddMoodPageParams } from 'modules/mood/AddMoodPage'
3
- import { StaticMoodEditorPageParams } from 'modules/mood/StaticMoodEditorPage'
4
- import {StackNavigationProp} from '@react-navigation/stack'
5
- import { SelectPageParams } from 'modules/select/SelectPage'
6
- import { ui_biz_routerKey } from './Routers'
7
-
8
- export function toStaticMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams) {
9
- navigation.navigate(ui_biz_routerKey.ui_biz_static_mood_edit, params)
10
- }
11
-
12
- export function toDynamicMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams) {
13
- navigation.navigate(ui_biz_routerKey.ui_biz_dynamic_mood_edit, params)
14
- }
15
-
16
- export function toAddMoodPage(navigation: NavigationProp<ParamListBase>, params: AddMoodPageParams) {
17
- navigation.navigate(ui_biz_routerKey.ui_biz_mood_add, params)
18
- }
19
-
20
- export function toSelectPage<T>(navigation: StackNavigationProp<any>, params: SelectPageParams<T>) {
21
- navigation.push(ui_biz_routerKey.ui_biz_select_page, params)
1
+ import {NavigationProp, ParamListBase} from '@react-navigation/native'
2
+ import { AddMoodPageParams } from 'modules/mood/AddMoodPage'
3
+ import { StaticMoodEditorPageParams } from 'modules/mood/StaticMoodEditorPage'
4
+ import {StackNavigationProp} from '@react-navigation/stack'
5
+ import { SelectPageParams } from 'modules/select/SelectPage'
6
+ import { ui_biz_routerKey } from './Routers'
7
+
8
+ export function toStaticMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams) {
9
+ navigation.navigate(ui_biz_routerKey.ui_biz_static_mood_edit, params)
10
+ }
11
+
12
+ export function toDynamicMoodEditorPage(navigation: NavigationProp<ParamListBase>, params: StaticMoodEditorPageParams) {
13
+ navigation.navigate(ui_biz_routerKey.ui_biz_dynamic_mood_edit, params)
14
+ }
15
+
16
+ export function toAddMoodPage(navigation: NavigationProp<ParamListBase>, params: AddMoodPageParams) {
17
+ navigation.navigate(ui_biz_routerKey.ui_biz_mood_add, params)
18
+ }
19
+
20
+ export function toSelectPage<T>(navigation: StackNavigationProp<any>, params: SelectPageParams<T>) {
21
+ navigation.push(ui_biz_routerKey.ui_biz_select_page, params)
22
22
  }