@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,220 +1,220 @@
1
- import React, { memo, useCallback } from 'react'
2
- import { View } from 'react-native'
3
- import SingleLightView from './SingleLightView'
4
- import { ScheduleItemDp } from './TimeScheduleEditpage'
5
- import MixLightView from './mix/MixLightView'
6
- import { JudgeTimeScheduleProps } from './TimeScheduleBean'
7
- import { useCreation, useReactive, useUpdateEffect } from 'ahooks'
8
- import { cloneDeep } from 'lodash'
9
- import LampSwitchCard from './components/LampSwitchCard'
10
- import I18n from '@ledvance/base/src/i18n'
11
- import Card from '@ledvance/base/src/components/Card'
12
- import LdvSwitch from '@ledvance/base/src/components/ldvSwitch'
13
- import Spacer from '@ledvance/base/src/components/Spacer'
14
- import { hsv2Hex, mapFloatToRange } from '@ledvance/base/src/utils'
15
- import { cctToColor } from '@ledvance/base/src/utils/cctUtils'
16
- import ColorTempAdjustView from '@ledvance/base/src/components/ColorTempAdjustView'
17
- import { Utils } from 'tuya-panel-kit'
18
- const { convertX: cx } = Utils.RatioUtils
19
-
20
- interface ManualSettingProps extends JudgeTimeScheduleProps {
21
- singleActions: any
22
- mixActions: any
23
- scheduleItem: any
24
- dps: ScheduleItemDp[]
25
- dpCodes: Record<string, string>
26
- isMixRGBWLamp?: boolean
27
- setSendDps: (actions: any, type: string) => void
28
- changeSkillEnable: (dpId: string, enable: boolean) => void
29
- }
30
-
31
- const ManualSetting = (props: ManualSettingProps) => {
32
- const state = useReactive({
33
- singleActions: cloneDeep(props.singleActions),
34
- mixActions: props.mixActions,
35
- flag: Symbol(),
36
- })
37
- const tabList = useCreation(() => {
38
- const isSupportWhite = props.isCeilingLight ? false : (props.isSupportBrightness || props.isSupportTemperature)
39
- const tabs = [
40
- { key: 1, title: I18n.getLang('add_new_static_mood_lights_schedule_switch_tab_color_text') },
41
- { key: 0, title: I18n.getLang('add_new_static_mood_lights_schedule_switch_tab_white_text') },
42
- { key: 3, title: I18n.getLang('add_new_dynamic_mood_strip_lights_schedule_switch_tab_combination_text') },
43
- ]
44
- if (!isSupportWhite || props.isCeilingLight) {
45
- return tabs.filter(tab => tab.key !== 0)
46
- }
47
- if (!props.isSupportColor) {
48
- return tabs.filter(tab => tab.key === 0)
49
- }
50
- return tabs
51
- }, [])
52
-
53
- useUpdateEffect(() => {
54
- state.singleActions = cloneDeep(props.singleActions)
55
- }, [JSON.stringify(props.singleActions)])
56
-
57
- useUpdateEffect(() => {
58
- props.setSendDps(state.singleActions, 'singleActions')
59
- }, [state.flag])
60
-
61
- const getColorBlockColor = useCallback(() => {
62
- if (!state.singleActions.enable) return '#fff'
63
- const s = Math.round(mapFloatToRange(state.singleActions.s / 100, 30, 100))
64
- if (props.isSupportColor && state.singleActions.activeKey === 1) {
65
- return hsv2Hex(state.singleActions.h, s, 100)
66
- }
67
- if (props.isSupportTemperature && state.singleActions.activeKey === 0) {
68
- return cctToColor(state.singleActions.temperature.toFixed())
69
- }
70
- return '#fff'
71
- }, [state.singleActions])
72
-
73
- const renderContent = () => {
74
- if (props.isStripLight || props.isCeilingLight) {
75
- return (
76
- <>
77
- {props.isCeilingLight && <><Spacer />
78
- <Card>
79
- <LdvSwitch
80
- title={I18n.getLang('light_sources_tile_main_lighting_headline')}
81
- color={cctToColor(state.singleActions.temperature)}
82
- colorAlpha={1}
83
- enable={state.singleActions.whiteLightSwitch}
84
- setEnable={async value => {
85
- state.singleActions.whiteLightSwitch = value
86
- props.changeSkillEnable(props.dps[0].dpId, value)
87
- state.flag = Symbol()
88
- }} />
89
- {state.singleActions.whiteLightSwitch && <>
90
- <ColorTempAdjustView
91
- minBrightness={1}
92
- isSupportTemperature={!!props.isSupportTemperature}
93
- isSupportBrightness={!!props.isSupportBrightness}
94
- colorTemp={state.singleActions.temperature}
95
- brightness={state.singleActions.brightness}
96
- onCCTChange={() => { }}
97
- onCCTChangeComplete={(temperature) => {
98
- state.singleActions = {
99
- ...state.singleActions,
100
- temperature
101
- }
102
- state.flag = Symbol()
103
- }}
104
- onBrightnessChange={() => { }}
105
- onBrightnessChangeComplete={brightness => {
106
- state.singleActions = {
107
- ...state.singleActions,
108
- brightness
109
- }
110
- state.flag = Symbol()
111
- }} />
112
- <Spacer height={cx(10)} />
113
- </>}
114
- </Card></>}
115
- <Spacer />
116
- <Card>
117
- <LdvSwitch
118
- title={I18n.getLang(props.isCeilingLight ? 'light_sources_tile_sec_lighting_headline' : 'light_sources_tile_tw_lighting_headline')}
119
- color={getColorBlockColor()}
120
- colorAlpha={1}
121
- enable={state.singleActions.enable}
122
- setEnable={(enable: boolean) => {
123
- state.singleActions = {
124
- ...state.singleActions,
125
- enable
126
- }
127
- props.changeSkillEnable(props.isCeilingLight ? props.dps[1]?.dpId : props.dps[0].dpId, enable)
128
- state.flag = Symbol()
129
- }} />
130
- {state.singleActions.enable && <LampSwitchCard
131
- lampTabs={tabList}
132
- onColorDiskChange={(color, idx) => {
133
- state.singleActions = {
134
- ...state.singleActions,
135
- colors: color,
136
- colorDiskActiveKey: idx
137
- }
138
- state.flag = Symbol()
139
- }}
140
- colorDiskActiveKey={state.singleActions.colorDiskActiveKey || 0}
141
- activeKey={state.singleActions.activeKey}
142
- onActiveKeyChange={(v) => {
143
- state.singleActions = {
144
- ...state.singleActions,
145
- activeKey: Number(v)
146
- }
147
- state.flag = Symbol()
148
- }}
149
- isSupportTemperature={!!props.isSupportTemperature && !props.isCeilingLight}
150
- isSupportBrightness={!!props.isSupportBrightness && !props.isCeilingLight}
151
- h={state.singleActions.h} s={state.singleActions.s} v={state.singleActions.v}
152
- onHSVChange={() => { }}
153
- onHSVChangeComplete={async (h, s, v) => {
154
- state.singleActions = {
155
- ...state.singleActions,
156
- h,
157
- s,
158
- v
159
- }
160
- state.flag = Symbol()
161
- }}
162
- colorTemp={state.singleActions.temperature}
163
- brightness={state.singleActions.brightness}
164
- onCCTChange={() => { }}
165
- onCCTChangeComplete={(temperature) => {
166
- state.singleActions = {
167
- ...state.singleActions,
168
- temperature
169
- }
170
- state.flag = Symbol()
171
- }}
172
- onBrightnessChange={() => { }}
173
- onBrightnessChangeComplete={brightness => {
174
- state.singleActions = {
175
- ...state.singleActions,
176
- brightness
177
- }
178
- state.flag = Symbol()
179
- }}
180
- />}
181
- </Card>
182
- </>
183
- )
184
- }
185
- if (props.isMixRGBWLamp) {
186
- return (
187
- <MixLightView
188
- mixActions={state.mixActions}
189
- setSendDps={props.setSendDps}
190
- />
191
- )
192
- }
193
- return (
194
- props.dps.map((item) => (
195
- <View key={item.dpId}>
196
- <SingleLightView
197
- singleActions={state.singleActions}
198
- dp={item}
199
- dpCodes={props.dpCodes}
200
- scheduleItem={props.scheduleItem}
201
- setSendDps={props.setSendDps}
202
- setEnable={props.changeSkillEnable}
203
- isSupportMode={props.isSupportMode}
204
- isSupportColor={props.isSupportColor}
205
- isSupportBrightness={props.isSupportBrightness}
206
- isSupportTemperature={props.isSupportTemperature}
207
- />
208
- </View>
209
- ))
210
- )
211
-
212
- }
213
- return (
214
- <View>
215
- {renderContent()}
216
- </View>
217
- )
218
- }
219
-
1
+ import React, { memo, useCallback } from 'react'
2
+ import { View } from 'react-native'
3
+ import SingleLightView from './SingleLightView'
4
+ import { ScheduleItemDp } from './TimeScheduleEditpage'
5
+ import MixLightView from './mix/MixLightView'
6
+ import { JudgeTimeScheduleProps } from './TimeScheduleBean'
7
+ import { useCreation, useReactive, useUpdateEffect } from 'ahooks'
8
+ import { cloneDeep } from 'lodash'
9
+ import LampSwitchCard from './components/LampSwitchCard'
10
+ import I18n from '@ledvance/base/src/i18n'
11
+ import Card from '@ledvance/base/src/components/Card'
12
+ import LdvSwitch from '@ledvance/base/src/components/ldvSwitch'
13
+ import Spacer from '@ledvance/base/src/components/Spacer'
14
+ import { hsv2Hex, mapFloatToRange } from '@ledvance/base/src/utils'
15
+ import { cctToColor } from '@ledvance/base/src/utils/cctUtils'
16
+ import ColorTempAdjustView from '@ledvance/base/src/components/ColorTempAdjustView'
17
+ import { Utils } from 'tuya-panel-kit'
18
+ const { convertX: cx } = Utils.RatioUtils
19
+
20
+ interface ManualSettingProps extends JudgeTimeScheduleProps {
21
+ singleActions: any
22
+ mixActions: any
23
+ scheduleItem: any
24
+ dps: ScheduleItemDp[]
25
+ dpCodes: Record<string, string>
26
+ isMixRGBWLamp?: boolean
27
+ setSendDps: (actions: any, type: string) => void
28
+ changeSkillEnable: (dpId: string, enable: boolean) => void
29
+ }
30
+
31
+ const ManualSetting = (props: ManualSettingProps) => {
32
+ const state = useReactive({
33
+ singleActions: cloneDeep(props.singleActions),
34
+ mixActions: props.mixActions,
35
+ flag: Symbol(),
36
+ })
37
+ const tabList = useCreation(() => {
38
+ const isSupportWhite = props.isCeilingLight ? false : (props.isSupportBrightness || props.isSupportTemperature)
39
+ const tabs = [
40
+ { key: 1, title: I18n.getLang('add_new_static_mood_lights_schedule_switch_tab_color_text') },
41
+ { key: 0, title: I18n.getLang('add_new_static_mood_lights_schedule_switch_tab_white_text') },
42
+ { key: 3, title: I18n.getLang('add_new_dynamic_mood_strip_lights_schedule_switch_tab_combination_text') },
43
+ ]
44
+ if (!isSupportWhite || props.isCeilingLight) {
45
+ return tabs.filter(tab => tab.key !== 0)
46
+ }
47
+ if (!props.isSupportColor) {
48
+ return tabs.filter(tab => tab.key === 0)
49
+ }
50
+ return tabs
51
+ }, [])
52
+
53
+ useUpdateEffect(() => {
54
+ state.singleActions = cloneDeep(props.singleActions)
55
+ }, [JSON.stringify(props.singleActions)])
56
+
57
+ useUpdateEffect(() => {
58
+ props.setSendDps(state.singleActions, 'singleActions')
59
+ }, [state.flag])
60
+
61
+ const getColorBlockColor = useCallback(() => {
62
+ if (!state.singleActions.enable) return '#fff'
63
+ const s = Math.round(mapFloatToRange(state.singleActions.s / 100, 30, 100))
64
+ if (props.isSupportColor && state.singleActions.activeKey === 1) {
65
+ return hsv2Hex(state.singleActions.h, s, 100)
66
+ }
67
+ if (props.isSupportTemperature && state.singleActions.activeKey === 0) {
68
+ return cctToColor(state.singleActions.temperature.toFixed())
69
+ }
70
+ return '#fff'
71
+ }, [state.singleActions])
72
+
73
+ const renderContent = () => {
74
+ if (props.isStripLight || props.isCeilingLight) {
75
+ return (
76
+ <>
77
+ {props.isCeilingLight && <><Spacer />
78
+ <Card>
79
+ <LdvSwitch
80
+ title={I18n.getLang('light_sources_tile_main_lighting_headline')}
81
+ color={cctToColor(state.singleActions.temperature)}
82
+ colorAlpha={1}
83
+ enable={state.singleActions.whiteLightSwitch}
84
+ setEnable={async value => {
85
+ state.singleActions.whiteLightSwitch = value
86
+ props.changeSkillEnable(props.dps[0].dpId, value)
87
+ state.flag = Symbol()
88
+ }} />
89
+ {state.singleActions.whiteLightSwitch && <>
90
+ <ColorTempAdjustView
91
+ minBrightness={1}
92
+ isSupportTemperature={!!props.isSupportTemperature}
93
+ isSupportBrightness={!!props.isSupportBrightness}
94
+ colorTemp={state.singleActions.temperature}
95
+ brightness={state.singleActions.brightness}
96
+ onCCTChange={() => { }}
97
+ onCCTChangeComplete={(temperature) => {
98
+ state.singleActions = {
99
+ ...state.singleActions,
100
+ temperature
101
+ }
102
+ state.flag = Symbol()
103
+ }}
104
+ onBrightnessChange={() => { }}
105
+ onBrightnessChangeComplete={brightness => {
106
+ state.singleActions = {
107
+ ...state.singleActions,
108
+ brightness
109
+ }
110
+ state.flag = Symbol()
111
+ }} />
112
+ <Spacer height={cx(10)} />
113
+ </>}
114
+ </Card></>}
115
+ <Spacer />
116
+ <Card>
117
+ <LdvSwitch
118
+ title={I18n.getLang(props.isCeilingLight ? 'light_sources_tile_sec_lighting_headline' : 'light_sources_tile_tw_lighting_headline')}
119
+ color={getColorBlockColor()}
120
+ colorAlpha={1}
121
+ enable={state.singleActions.enable}
122
+ setEnable={(enable: boolean) => {
123
+ state.singleActions = {
124
+ ...state.singleActions,
125
+ enable
126
+ }
127
+ props.changeSkillEnable(props.isCeilingLight ? props.dps[1]?.dpId : props.dps[0].dpId, enable)
128
+ state.flag = Symbol()
129
+ }} />
130
+ {state.singleActions.enable && <LampSwitchCard
131
+ lampTabs={tabList}
132
+ onColorDiskChange={(color, idx) => {
133
+ state.singleActions = {
134
+ ...state.singleActions,
135
+ colors: color,
136
+ colorDiskActiveKey: idx
137
+ }
138
+ state.flag = Symbol()
139
+ }}
140
+ colorDiskActiveKey={state.singleActions.colorDiskActiveKey || 0}
141
+ activeKey={state.singleActions.activeKey}
142
+ onActiveKeyChange={(v) => {
143
+ state.singleActions = {
144
+ ...state.singleActions,
145
+ activeKey: Number(v)
146
+ }
147
+ state.flag = Symbol()
148
+ }}
149
+ isSupportTemperature={!!props.isSupportTemperature && !props.isCeilingLight}
150
+ isSupportBrightness={!!props.isSupportBrightness && !props.isCeilingLight}
151
+ h={state.singleActions.h} s={state.singleActions.s} v={state.singleActions.v}
152
+ onHSVChange={() => { }}
153
+ onHSVChangeComplete={async (h, s, v) => {
154
+ state.singleActions = {
155
+ ...state.singleActions,
156
+ h,
157
+ s,
158
+ v
159
+ }
160
+ state.flag = Symbol()
161
+ }}
162
+ colorTemp={state.singleActions.temperature}
163
+ brightness={state.singleActions.brightness}
164
+ onCCTChange={() => { }}
165
+ onCCTChangeComplete={(temperature) => {
166
+ state.singleActions = {
167
+ ...state.singleActions,
168
+ temperature
169
+ }
170
+ state.flag = Symbol()
171
+ }}
172
+ onBrightnessChange={() => { }}
173
+ onBrightnessChangeComplete={brightness => {
174
+ state.singleActions = {
175
+ ...state.singleActions,
176
+ brightness
177
+ }
178
+ state.flag = Symbol()
179
+ }}
180
+ />}
181
+ </Card>
182
+ </>
183
+ )
184
+ }
185
+ if (props.isMixRGBWLamp) {
186
+ return (
187
+ <MixLightView
188
+ mixActions={state.mixActions}
189
+ setSendDps={props.setSendDps}
190
+ />
191
+ )
192
+ }
193
+ return (
194
+ props.dps.map((item) => (
195
+ <View key={item.dpId}>
196
+ <SingleLightView
197
+ singleActions={state.singleActions}
198
+ dp={item}
199
+ dpCodes={props.dpCodes}
200
+ scheduleItem={props.scheduleItem}
201
+ setSendDps={props.setSendDps}
202
+ setEnable={props.changeSkillEnable}
203
+ isSupportMode={props.isSupportMode}
204
+ isSupportColor={props.isSupportColor}
205
+ isSupportBrightness={props.isSupportBrightness}
206
+ isSupportTemperature={props.isSupportTemperature}
207
+ />
208
+ </View>
209
+ ))
210
+ )
211
+
212
+ }
213
+ return (
214
+ <View>
215
+ {renderContent()}
216
+ </View>
217
+ )
218
+ }
219
+
220
220
  export default memo(ManualSetting)
@@ -1,11 +1,11 @@
1
- import { ScheduleItemDp } from "./TimeScheduleEditpage";
2
- interface MoodSettingProps {
3
- actionScene: any;
4
- scheduleItem: any;
5
- dps: ScheduleItemDp[];
6
- dpCodes: Record<string, string>;
7
- setSendDps: (actions: any, type: string) => void;
8
- changeSkillEnable: (dpId: string, enable: boolean) => void;
9
- }
10
- declare const MoodSetting: (props: MoodSettingProps) => any;
11
- export default MoodSetting;
1
+ import { ScheduleItemDp } from "./TimeScheduleEditpage";
2
+ interface MoodSettingProps {
3
+ actionScene: any;
4
+ scheduleItem: any;
5
+ dps: ScheduleItemDp[];
6
+ dpCodes: Record<string, string>;
7
+ setSendDps: (actions: any, type: string) => void;
8
+ changeSkillEnable: (dpId: string, enable: boolean) => void;
9
+ }
10
+ declare const MoodSetting: (props: MoodSettingProps) => any;
11
+ export default MoodSetting;