@ledvance/ui-biz-bundle 1.1.69 → 1.1.71

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 (222) 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 +62 -11
  162. package/src/newModules/biorhythm/BiorhythmPage.tsx +1 -4
  163. package/src/newModules/childLock/ChildLockPage.tsx +97 -97
  164. package/src/newModules/childLock/Router.ts +16 -16
  165. package/src/newModules/energyConsumption/EnergyConsumptionActions.ts +23 -23
  166. package/src/newModules/energyConsumption/EnergyConsumptionChart.tsx +84 -84
  167. package/src/newModules/energyConsumption/EnergyConsumptionDetail.tsx +322 -322
  168. package/src/newModules/energyConsumption/EnergyConsumptionPage.tsx +393 -393
  169. package/src/newModules/energyConsumption/Router.ts +34 -34
  170. package/src/newModules/energyConsumption/co2Data.ts +23655 -23655
  171. package/src/newModules/energyConsumption/component/BarChart.tsx +93 -93
  172. package/src/newModules/energyConsumption/component/EnergyModal.tsx +284 -284
  173. package/src/newModules/energyConsumption/component/Overview.tsx +118 -118
  174. package/src/newModules/fixedTime/FixedTimeActions.ts +241 -241
  175. package/src/newModules/fixedTime/FixedTimeDetailPage.tsx +345 -345
  176. package/src/newModules/fixedTime/FixedTimePage.tsx +302 -302
  177. package/src/newModules/fixedTime/Router.ts +25 -25
  178. package/src/newModules/lightMode/LightModePage.tsx +204 -204
  179. package/src/newModules/lightMode/Router.ts +16 -16
  180. package/src/newModules/mood/Interface.ts +5 -0
  181. package/src/newModules/mood/MixDynamicMoodEditor.tsx +8 -5
  182. package/src/newModules/mood/MoodActions.ts +32 -20
  183. package/src/newModules/mood/MoodItem.tsx +3 -3
  184. package/src/newModules/mood/MoodPage.tsx +31 -15
  185. package/src/newModules/mood/MoodParse.ts +5 -6
  186. package/src/newModules/mood/RecommendMoodItem.tsx +3 -3
  187. package/src/newModules/mood/Router.ts +9 -0
  188. package/src/newModules/overchargeSwitch/OverchargeSwitchPage.tsx +96 -96
  189. package/src/newModules/overchargeSwitch/Router.ts +16 -16
  190. package/src/newModules/powerOnBehavior/LightBehaviorPage.tsx +266 -266
  191. package/src/newModules/powerOnBehavior/PlugBehaviorPage.tsx +173 -173
  192. package/src/newModules/powerOnBehavior/PowerOnBehaviorActions.ts +106 -106
  193. package/src/newModules/powerOnBehavior/Router.ts +27 -27
  194. package/src/newModules/randomTime/RandomTimeActions.ts +238 -238
  195. package/src/newModules/randomTime/RandomTimeDetailPage.tsx +325 -325
  196. package/src/newModules/randomTime/RandomTimePage.tsx +299 -299
  197. package/src/newModules/randomTime/Router.ts +25 -25
  198. package/src/newModules/randomTime/Summary.tsx +116 -116
  199. package/src/newModules/remoteControl/RemoteControlActions.ts +5 -5
  200. package/src/newModules/remoteControl/RemoteControlPage.tsx +51 -51
  201. package/src/newModules/remoteControl/Router.ts +15 -15
  202. package/src/newModules/select/Route.ts +16 -16
  203. package/src/newModules/select/SelectPage.d.ts +12 -12
  204. package/src/newModules/select/SelectPage.tsx +137 -137
  205. package/src/newModules/sleepWakeUp/Interface.ts +69 -69
  206. package/src/newModules/sleepWakeUp/Router.ts +24 -24
  207. package/src/newModules/sleepWakeUp/SleepWakeUpActions.ts +317 -317
  208. package/src/newModules/sleepWakeUp/SleepWakeUpDetailPage.tsx +661 -661
  209. package/src/newModules/sleepWakeUp/SleepWakeUpPage.tsx +455 -455
  210. package/src/newModules/sleepWakeUp/utils.ts +253 -253
  211. package/src/newModules/swithInching/Router.ts +16 -16
  212. package/src/newModules/swithInching/SwithInching.tsx +231 -231
  213. package/src/newModules/swithInching/SwithInchingAction.ts +55 -55
  214. package/src/newModules/swithInching/pickerView.tsx +91 -91
  215. package/src/newModules/timeSchedule/Interface.ts +142 -142
  216. package/src/newModules/timeSchedule/Router.ts +25 -25
  217. package/src/newModules/timeSchedule/TimeScheduleActions.ts +53 -53
  218. package/src/newModules/timeSchedule/TimeScheduleDetailPage.tsx +648 -648
  219. package/src/newModules/timeSchedule/TimeSchedulePage.tsx +253 -253
  220. package/src/newModules/timeSchedule/components/ManuaSettings.tsx +460 -460
  221. package/src/newModules/timeSchedule/components/ScheduleCard.tsx +125 -125
  222. package/tsconfig.json +50 -50
@@ -1,228 +1,228 @@
1
- import React, { memo, useCallback, useEffect } from 'react'
2
- import { JudgeTimeScheduleProps } from './TimeScheduleBean'
3
- import { FlatList, View, StyleSheet } from 'react-native'
4
- import FantasyMoodItem from '../mood/FantasyMoodItem'
5
- import { Utils } from 'tuya-panel-kit'
6
- import Spacer from '@ledvance/base/src/components/Spacer'
7
- import Tag from '@ledvance/base/src/components/Tag'
8
- import I18n from '@ledvance/base/src/i18n'
9
- import InfoText from '@ledvance/base/src/components/InfoText'
10
- import res from '@ledvance/base/src/res'
11
- import MoodItem from '../mood/MoodItem'
12
- import { useReactive, useUpdateEffect } from 'ahooks'
13
- import { isUVCFanDevice, useDeviceId, useMoods } from '@ledvance/base/src/models/modules/NativePropsSlice'
14
- import { getRemoteFantasyScene, getRemoteSceneList } from '../scene/SceneAction'
15
- import { getRemoteMixScene } from '../mood/MixMood/MixMoodActions'
16
- import MixMoodItem from '../mood/MixMood/MixMoodItem'
17
- import { MixSceneInfo } from '../mood/MixMood/MixSceneBeans'
18
- import { cloneDeep, isEmpty } from 'lodash'
19
-
20
- const cx = Utils.RatioUtils.convertX
21
- interface MoodSettingProps extends JudgeTimeScheduleProps {
22
- actionScene: any
23
- scheduleItem: any
24
- fantasyFeatureId?: string
25
- setSendDps: (actions: any, type: string) => void
26
- }
27
-
28
- const MoodSetting = (props: MoodSettingProps) => {
29
- const { setSendDps, isStringLight, isStripLight, actionScene, isCeilingLight, fantasyFeatureId = '' } = props
30
- const [moods, setMoods] = useMoods()
31
- console.log(111)
32
- console.log(moods[0], ' <-- moods[0')
33
- const devId = useDeviceId()
34
- const isUVCFan = isUVCFanDevice()
35
- const state = useReactive({
36
- scenes: cloneDeep(moods),
37
- staticTagChecked: true,
38
- dynamicTagChecked: true,
39
- filteredMoods: cloneDeep(moods),
40
- currentScene: !isEmpty(actionScene) ? actionScene : cloneDeep(moods[0])
41
- })
42
-
43
- useUpdateEffect(() => {
44
- state.scenes = cloneDeep(moods)
45
- }, [moods])
46
-
47
- useEffect(() => {
48
- if (!moods.length) {
49
- if (isStringLight || isStripLight) {
50
- getRemoteFantasyScene(fantasyFeatureId, devId, { isStringLight, isStripLight }).then(res => {
51
- if (res.success && res.data) {
52
- state.scenes = res.data
53
- setMoods(cloneDeep(res.data))
54
- if (isEmpty(actionScene)) state.currentScene = res.data[0]
55
- setSendDps(state.currentScene, 'actionScene')
56
- }
57
- })
58
- } else if (isCeilingLight) {
59
- getRemoteMixScene(devId).then(res => {
60
- if (res.success && res.data) {
61
- state.scenes = res.data
62
- setMoods(cloneDeep(res.data))
63
- if (isEmpty(actionScene)) state.currentScene = res.data[0]
64
- setSendDps(state.currentScene, 'actionScene')
65
- }
66
- })
67
- } else {
68
- getRemoteSceneList(devId, {
69
- isOnlyRGBLamp: props.isOnlyRGBLamp,
70
- isDIMLamp: props.isDIMLamp,
71
- isRGBLamp: props.isRGBLamp,
72
- isRGBWLamp: props.isRGBWLamp,
73
- isTWLamp: props.isTWLamp,
74
- isFanLamp: props.isFanLamp
75
- }, isUVCFan).then(res => {
76
- if (res.success && res.data) {
77
- state.scenes = cloneDeep(res.data)
78
- setMoods(cloneDeep(res.data))
79
- if (isEmpty(actionScene)) state.currentScene = res.data[0]
80
- setSendDps(state.currentScene, 'actionScene')
81
- }
82
- })
83
- }
84
-
85
- } else {
86
- setSendDps(state.scenes[0], 'actionScene')
87
- }
88
- }, [])
89
-
90
- useEffect(() => {
91
- state.filteredMoods = cloneDeep(state.scenes).filter(item => {
92
- return (state.staticTagChecked && state.dynamicTagChecked) ||
93
- (state.staticTagChecked && item.nodes.length < 2) ||
94
- (state.dynamicTagChecked && item.nodes.length > 1)
95
- })
96
- }, [state.staticTagChecked, state.dynamicTagChecked, state.scenes])
97
-
98
- const checkItemEnable = useCallback((mixMood: MixSceneInfo) => {
99
- const { mainLamp, secondlyLamp } = mixMood
100
- const cloneCurrentScene = cloneDeep(state.currentScene)
101
- const isStatic = mainLamp.nodes.length === 1
102
- return isStatic ? ((cloneCurrentScene?.mainLamp?.id === mainLamp.id) && mainLamp.id !== -1) :
103
- ((cloneCurrentScene?.mainLamp?.id === mainLamp.id) && (cloneCurrentScene?.secondlyLamp?.id === secondlyLamp.id))
104
- }, [state.currentScene])
105
- console.log(state.scenes, '< --- state.cesee')
106
- return (
107
- <View style={{ marginHorizontal: -cx(24) }}>
108
- {(isStringLight || isStripLight) ?
109
- <FlatList
110
- data={state.scenes}
111
- renderItem={({ item }) => {
112
- return (
113
- <FantasyMoodItem
114
- style={{ marginHorizontal: cx(24) }}
115
- enable={state.currentScene?.id === item.id}
116
- mood={item}
117
- onPress={() => { }}
118
- onSwitch={async _ => {
119
- state.currentScene = item
120
- setSendDps(item, 'actionScene')
121
- }} />
122
- )
123
- }}
124
- ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
125
- ItemSeparatorComponent={() => (<Spacer />)}
126
- ListFooterComponent={() => (<Spacer />)}
127
- keyExtractor={item => `${item.id}`} /> :
128
- isCeilingLight ?
129
- <FlatList
130
- data={state.filteredMoods}
131
- renderItem={({ item }) => {
132
- return (
133
- <MixMoodItem
134
- style={{ marginHorizontal: cx(24) }}
135
- enable={checkItemEnable(item)}
136
- mixMood={item}
137
- onPress={() => { }}
138
- onSwitch={async _ => {
139
- state.currentScene = item
140
- setSendDps(item, 'actionScene')
141
- }}
142
- />
143
- )
144
- }}
145
- ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
146
- ItemSeparatorComponent={() => (<Spacer />)}
147
- ListFooterComponent={() => (<Spacer />)}
148
- keyExtractor={item => `${item.name}`} /> :
149
- <>
150
- <View style={[styles.tagLine, {marginHorizontal: cx(24)}]}>
151
- <Tag
152
- checked={state.staticTagChecked}
153
- text={I18n.getLang('mood_overview_filter_name_text1')}
154
- onCheckedChange={checked => {
155
- state.staticTagChecked = checked
156
- }} />
157
- <Spacer width={cx(8)} height={0} />
158
- <Tag
159
- checked={state.dynamicTagChecked}
160
- text={I18n.getLang('mood_overview_filter_name_text2')}
161
- onCheckedChange={checked => {
162
- state.dynamicTagChecked = checked
163
- }} />
164
- </View>
165
- <Spacer height={cx(10)} />
166
- <FlatList
167
- data={state.filteredMoods}
168
- renderItem={({ item }) => {
169
- return (
170
- <MoodItem
171
- style={{ marginHorizontal: cx(24) }}
172
- enable={state.currentScene?.id === item.id}
173
- mood={item}
174
- onSwitch={async _ => {
175
- state.currentScene = item
176
- setSendDps(item, 'actionScene')
177
- }} />
178
- )
179
- }}
180
- ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
181
- ItemSeparatorComponent={() => (<Spacer />)}
182
- ListFooterComponent={() => (
183
- <View style={[styles.infoLine, {marginHorizontal: cx(24)}]}>
184
- <Spacer />
185
- <InfoText
186
- icon={res.ic_info}
187
- text={I18n.getLang('mood_overview_information_text')} />
188
- <Spacer height={cx(40)} />
189
- </View>
190
- )}
191
- keyExtractor={item => `${item.id}`} />
192
- </>}
193
- </View>
194
- )
195
- }
196
-
197
- const styles = StyleSheet.create({
198
- tagLine: {
199
- flexDirection: 'row',
200
- // marginHorizontal: cx(24),
201
- marginTop: cx(16),
202
- },
203
- infoLine: {
204
- // marginHorizontal: cx(24),
205
- },
206
- addMoodPopover: {
207
- width: cx(171),
208
- height: cx(90.5),
209
- marginStart: cx(156),
210
- marginTop: cx(105),
211
- backgroundColor: '#fff',
212
- },
213
- popoverItem: {
214
- width: cx(171),
215
- height: cx(45),
216
- alignItems: 'flex-start',
217
- },
218
- popoverItemText: {
219
- color: '#000',
220
- fontSize: cx(16),
221
- },
222
- line: {
223
- height: .5,
224
- backgroundColor: 'rgba(60,60,67,.36)',
225
- },
226
- })
227
-
228
- export default memo(MoodSetting)
1
+ import React, { memo, useCallback, useEffect } from 'react'
2
+ import { JudgeTimeScheduleProps } from './TimeScheduleBean'
3
+ import { FlatList, View, StyleSheet } from 'react-native'
4
+ import FantasyMoodItem from '../mood/FantasyMoodItem'
5
+ import { Utils } from 'tuya-panel-kit'
6
+ import Spacer from '@ledvance/base/src/components/Spacer'
7
+ import Tag from '@ledvance/base/src/components/Tag'
8
+ import I18n from '@ledvance/base/src/i18n'
9
+ import InfoText from '@ledvance/base/src/components/InfoText'
10
+ import res from '@ledvance/base/src/res'
11
+ import MoodItem from '../mood/MoodItem'
12
+ import { useReactive, useUpdateEffect } from 'ahooks'
13
+ import { isUVCFanDevice, useDeviceId, useMoods } from '@ledvance/base/src/models/modules/NativePropsSlice'
14
+ import { getRemoteFantasyScene, getRemoteSceneList } from '../scene/SceneAction'
15
+ import { getRemoteMixScene } from '../mood/MixMood/MixMoodActions'
16
+ import MixMoodItem from '../mood/MixMood/MixMoodItem'
17
+ import { MixSceneInfo } from '../mood/MixMood/MixSceneBeans'
18
+ import { cloneDeep, isEmpty } from 'lodash'
19
+
20
+ const cx = Utils.RatioUtils.convertX
21
+ interface MoodSettingProps extends JudgeTimeScheduleProps {
22
+ actionScene: any
23
+ scheduleItem: any
24
+ fantasyFeatureId?: string
25
+ setSendDps: (actions: any, type: string) => void
26
+ }
27
+
28
+ const MoodSetting = (props: MoodSettingProps) => {
29
+ const { setSendDps, isStringLight, isStripLight, actionScene, isCeilingLight, fantasyFeatureId = '' } = props
30
+ const [moods, setMoods] = useMoods()
31
+ console.log(111)
32
+ console.log(moods[0], ' <-- moods[0')
33
+ const devId = useDeviceId()
34
+ const isUVCFan = isUVCFanDevice()
35
+ const state = useReactive({
36
+ scenes: cloneDeep(moods),
37
+ staticTagChecked: true,
38
+ dynamicTagChecked: true,
39
+ filteredMoods: cloneDeep(moods),
40
+ currentScene: !isEmpty(actionScene) ? actionScene : cloneDeep(moods[0])
41
+ })
42
+
43
+ useUpdateEffect(() => {
44
+ state.scenes = cloneDeep(moods)
45
+ }, [moods])
46
+
47
+ useEffect(() => {
48
+ if (!moods.length) {
49
+ if (isStringLight || isStripLight) {
50
+ getRemoteFantasyScene(fantasyFeatureId, devId, { isStringLight, isStripLight }).then(res => {
51
+ if (res.success && res.data) {
52
+ state.scenes = res.data
53
+ setMoods(cloneDeep(res.data))
54
+ if (isEmpty(actionScene)) state.currentScene = res.data[0]
55
+ setSendDps(state.currentScene, 'actionScene')
56
+ }
57
+ })
58
+ } else if (isCeilingLight) {
59
+ getRemoteMixScene(devId).then(res => {
60
+ if (res.success && res.data) {
61
+ state.scenes = res.data
62
+ setMoods(cloneDeep(res.data))
63
+ if (isEmpty(actionScene)) state.currentScene = res.data[0]
64
+ setSendDps(state.currentScene, 'actionScene')
65
+ }
66
+ })
67
+ } else {
68
+ getRemoteSceneList(devId, {
69
+ isOnlyRGBLamp: props.isOnlyRGBLamp,
70
+ isDIMLamp: props.isDIMLamp,
71
+ isRGBLamp: props.isRGBLamp,
72
+ isRGBWLamp: props.isRGBWLamp,
73
+ isTWLamp: props.isTWLamp,
74
+ isFanLamp: props.isFanLamp
75
+ }, isUVCFan).then(res => {
76
+ if (res.success && res.data) {
77
+ state.scenes = cloneDeep(res.data)
78
+ setMoods(cloneDeep(res.data))
79
+ if (isEmpty(actionScene)) state.currentScene = res.data[0]
80
+ setSendDps(state.currentScene, 'actionScene')
81
+ }
82
+ })
83
+ }
84
+
85
+ } else {
86
+ setSendDps(state.scenes[0], 'actionScene')
87
+ }
88
+ }, [])
89
+
90
+ useEffect(() => {
91
+ state.filteredMoods = cloneDeep(state.scenes).filter(item => {
92
+ return (state.staticTagChecked && state.dynamicTagChecked) ||
93
+ (state.staticTagChecked && item.nodes.length < 2) ||
94
+ (state.dynamicTagChecked && item.nodes.length > 1)
95
+ })
96
+ }, [state.staticTagChecked, state.dynamicTagChecked, state.scenes])
97
+
98
+ const checkItemEnable = useCallback((mixMood: MixSceneInfo) => {
99
+ const { mainLamp, secondlyLamp } = mixMood
100
+ const cloneCurrentScene = cloneDeep(state.currentScene)
101
+ const isStatic = mainLamp.nodes.length === 1
102
+ return isStatic ? ((cloneCurrentScene?.mainLamp?.id === mainLamp.id) && mainLamp.id !== -1) :
103
+ ((cloneCurrentScene?.mainLamp?.id === mainLamp.id) && (cloneCurrentScene?.secondlyLamp?.id === secondlyLamp.id))
104
+ }, [state.currentScene])
105
+ console.log(state.scenes, '< --- state.cesee')
106
+ return (
107
+ <View style={{ marginHorizontal: -cx(24) }}>
108
+ {(isStringLight || isStripLight) ?
109
+ <FlatList
110
+ data={state.scenes}
111
+ renderItem={({ item }) => {
112
+ return (
113
+ <FantasyMoodItem
114
+ style={{ marginHorizontal: cx(24) }}
115
+ enable={state.currentScene?.id === item.id}
116
+ mood={item}
117
+ onPress={() => { }}
118
+ onSwitch={async _ => {
119
+ state.currentScene = item
120
+ setSendDps(item, 'actionScene')
121
+ }} />
122
+ )
123
+ }}
124
+ ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
125
+ ItemSeparatorComponent={() => (<Spacer />)}
126
+ ListFooterComponent={() => (<Spacer />)}
127
+ keyExtractor={item => `${item.id}`} /> :
128
+ isCeilingLight ?
129
+ <FlatList
130
+ data={state.filteredMoods}
131
+ renderItem={({ item }) => {
132
+ return (
133
+ <MixMoodItem
134
+ style={{ marginHorizontal: cx(24) }}
135
+ enable={checkItemEnable(item)}
136
+ mixMood={item}
137
+ onPress={() => { }}
138
+ onSwitch={async _ => {
139
+ state.currentScene = item
140
+ setSendDps(item, 'actionScene')
141
+ }}
142
+ />
143
+ )
144
+ }}
145
+ ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
146
+ ItemSeparatorComponent={() => (<Spacer />)}
147
+ ListFooterComponent={() => (<Spacer />)}
148
+ keyExtractor={item => `${item.name}`} /> :
149
+ <>
150
+ <View style={[styles.tagLine, {marginHorizontal: cx(24)}]}>
151
+ <Tag
152
+ checked={state.staticTagChecked}
153
+ text={I18n.getLang('mood_overview_filter_name_text1')}
154
+ onCheckedChange={checked => {
155
+ state.staticTagChecked = checked
156
+ }} />
157
+ <Spacer width={cx(8)} height={0} />
158
+ <Tag
159
+ checked={state.dynamicTagChecked}
160
+ text={I18n.getLang('mood_overview_filter_name_text2')}
161
+ onCheckedChange={checked => {
162
+ state.dynamicTagChecked = checked
163
+ }} />
164
+ </View>
165
+ <Spacer height={cx(10)} />
166
+ <FlatList
167
+ data={state.filteredMoods}
168
+ renderItem={({ item }) => {
169
+ return (
170
+ <MoodItem
171
+ style={{ marginHorizontal: cx(24) }}
172
+ enable={state.currentScene?.id === item.id}
173
+ mood={item}
174
+ onSwitch={async _ => {
175
+ state.currentScene = item
176
+ setSendDps(item, 'actionScene')
177
+ }} />
178
+ )
179
+ }}
180
+ ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
181
+ ItemSeparatorComponent={() => (<Spacer />)}
182
+ ListFooterComponent={() => (
183
+ <View style={[styles.infoLine, {marginHorizontal: cx(24)}]}>
184
+ <Spacer />
185
+ <InfoText
186
+ icon={res.ic_info}
187
+ text={I18n.getLang('mood_overview_information_text')} />
188
+ <Spacer height={cx(40)} />
189
+ </View>
190
+ )}
191
+ keyExtractor={item => `${item.id}`} />
192
+ </>}
193
+ </View>
194
+ )
195
+ }
196
+
197
+ const styles = StyleSheet.create({
198
+ tagLine: {
199
+ flexDirection: 'row',
200
+ // marginHorizontal: cx(24),
201
+ marginTop: cx(16),
202
+ },
203
+ infoLine: {
204
+ // marginHorizontal: cx(24),
205
+ },
206
+ addMoodPopover: {
207
+ width: cx(171),
208
+ height: cx(90.5),
209
+ marginStart: cx(156),
210
+ marginTop: cx(105),
211
+ backgroundColor: '#fff',
212
+ },
213
+ popoverItem: {
214
+ width: cx(171),
215
+ height: cx(45),
216
+ alignItems: 'flex-start',
217
+ },
218
+ popoverItemText: {
219
+ color: '#000',
220
+ fontSize: cx(16),
221
+ },
222
+ line: {
223
+ height: .5,
224
+ backgroundColor: 'rgba(60,60,67,.36)',
225
+ },
226
+ })
227
+
228
+ export default memo(MoodSetting)
@@ -1,25 +1,25 @@
1
- import {NavigationRoute} from "tuya-panel-kit";
2
- import TimeSchedulePage from "./TimeSchedulePage";
3
- import TimeScheduleEditPage from "./TimeScheduleEditpage";
4
- import {ui_biz_routerKey} from "../../navigation/Routers";
5
-
6
- const TimeSchedulePageRouters: NavigationRoute[] = [
7
- {
8
- name: ui_biz_routerKey.ui_biz_time_schedule,
9
- component: TimeSchedulePage,
10
- options: {
11
- hideTopbar: true,
12
- showOfflineView: false,
13
- },
14
- },
15
- {
16
- name: ui_biz_routerKey.ui_biz_time_schedule_edit,
17
- component: TimeScheduleEditPage,
18
- options: {
19
- hideTopbar: true,
20
- showOfflineView: false,
21
- },
22
- },
23
- ]
24
-
25
- export default TimeSchedulePageRouters
1
+ import {NavigationRoute} from "tuya-panel-kit";
2
+ import TimeSchedulePage from "./TimeSchedulePage";
3
+ import TimeScheduleEditPage from "./TimeScheduleEditpage";
4
+ import {ui_biz_routerKey} from "../../navigation/Routers";
5
+
6
+ const TimeSchedulePageRouters: NavigationRoute[] = [
7
+ {
8
+ name: ui_biz_routerKey.ui_biz_time_schedule,
9
+ component: TimeSchedulePage,
10
+ options: {
11
+ hideTopbar: true,
12
+ showOfflineView: false,
13
+ },
14
+ },
15
+ {
16
+ name: ui_biz_routerKey.ui_biz_time_schedule_edit,
17
+ component: TimeScheduleEditPage,
18
+ options: {
19
+ hideTopbar: true,
20
+ showOfflineView: false,
21
+ },
22
+ },
23
+ ]
24
+
25
+ export default TimeSchedulePageRouters
@@ -1,6 +1,6 @@
1
- declare const ScheduleScene: ({ scene, setScene, dpCodes }: {
2
- scene: any;
3
- setScene: any;
4
- dpCodes: any;
5
- }) => any;
6
- export default ScheduleScene;
1
+ declare const ScheduleScene: ({ scene, setScene, dpCodes }: {
2
+ scene: any;
3
+ setScene: any;
4
+ dpCodes: any;
5
+ }) => any;
6
+ export default ScheduleScene;