@ledvance/ui-biz-bundle 1.1.53 → 1.1.55
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.
- package/package.json +1 -1
- package/src/modules/mood/MixMood/AddMixMoodPage.tsx +11 -96
- package/src/modules/mood/MixMood/MixMoodEditPage.tsx +32 -21
- package/src/modules/mood/MixMood/MixMoodItem.tsx +1 -1
- package/src/modules/mood/MixMood/MixMoodPage.tsx +32 -23
- package/src/modules/mood/MixMood/RecommendMixMoodItem.tsx +2 -1
- package/src/modules/timeSchedule/MoodSetting.tsx +2 -2
- package/src/modules/timeSchedule/TimeSchedulePage.tsx +3 -3
package/package.json
CHANGED
|
@@ -43,9 +43,9 @@ const AddMixMoodPage = () => {
|
|
|
43
43
|
})
|
|
44
44
|
const useIds = map(mixMoods, 'id')
|
|
45
45
|
const idRange = range(0, 256)
|
|
46
|
-
const mainId: number = head(difference(idRange, useIds))
|
|
46
|
+
const mainId: number = head(difference(idRange, useIds)) ?? -1
|
|
47
47
|
useIds.push(mainId)
|
|
48
|
-
const secondlyId: number = head(difference(idRange, useIds))
|
|
48
|
+
const secondlyId: number = head(difference(idRange, useIds)) ?? -1
|
|
49
49
|
return { mainId, secondlyId }
|
|
50
50
|
}, [routeParams.mixMoods])
|
|
51
51
|
const state = useReactive<AddMoodPageState>({
|
|
@@ -91,7 +91,11 @@ const AddMixMoodPage = () => {
|
|
|
91
91
|
)
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
const defSecondly = {
|
|
94
|
+
export const defSecondly = {
|
|
95
|
+
id: -1,
|
|
96
|
+
speed: 100,
|
|
97
|
+
mode: 10,
|
|
98
|
+
nodes: [],
|
|
95
99
|
version: 0,
|
|
96
100
|
expand: 0,
|
|
97
101
|
reserved1: 0,
|
|
@@ -102,6 +106,8 @@ const defSecondly = {
|
|
|
102
106
|
direction: 0,
|
|
103
107
|
}
|
|
104
108
|
|
|
109
|
+
const node = { h: 0, s: 100, v: 100, brightness: 100, colorTemp: 0 }
|
|
110
|
+
|
|
105
111
|
function newMixMood(mainId: number, secondlyId: number, isStatic: boolean): MixSceneInfo {
|
|
106
112
|
return {
|
|
107
113
|
name: '',
|
|
@@ -109,26 +115,19 @@ function newMixMood(mainId: number, secondlyId: number, isStatic: boolean): MixS
|
|
|
109
115
|
id: mainId,
|
|
110
116
|
speed: 100,
|
|
111
117
|
mode: isStatic ? SceneNodeTransitionMode.Static : 1,
|
|
112
|
-
nodes: [
|
|
113
|
-
{ h: 0, s: 0, v: 0, brightness: 100, colorTemp: 0 },
|
|
114
|
-
{ h: 0, s: 0, v: 0, brightness: 100, colorTemp: 0 }
|
|
115
|
-
]
|
|
118
|
+
nodes: isStatic ? [{...node}] : [{...node}, {...node}]
|
|
116
119
|
},
|
|
117
120
|
secondlyLamp: {
|
|
118
121
|
...defSecondly,
|
|
119
122
|
id: secondlyId,
|
|
120
123
|
speed: 100,
|
|
121
124
|
mode: 10,
|
|
122
|
-
nodes: [
|
|
123
|
-
{ h: 0, s: 100, v: 100, brightness: 0, colorTemp: 0, isColorNode: true },
|
|
124
|
-
{ h: 0, s: 100, v: 100, brightness: 0, colorTemp: 0, isColorNode: true }
|
|
125
|
-
]
|
|
125
|
+
nodes: [{...node, isColorNode: true}, {...node, isColorNode: true}]
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
function getRecommendMixMoods(isStatic: boolean, mainId: number, secondlyId: number): RecommendMixMood[] {
|
|
131
|
-
console.log(mainId, secondlyId, '< -- mainId secondlyId')
|
|
132
131
|
if (isStatic) {
|
|
133
132
|
return [
|
|
134
133
|
{
|
|
@@ -230,90 +229,6 @@ function getRecommendMixMoods(isStatic: boolean, mainId: number, secondlyId: num
|
|
|
230
229
|
},
|
|
231
230
|
},
|
|
232
231
|
},
|
|
233
|
-
// {
|
|
234
|
-
// title: I18n.getLang('add_new_dynamic_mood_field_headline_text3'),
|
|
235
|
-
// mixMood: {
|
|
236
|
-
// name: I18n.getLang('add_new_dynamic_mood_field_headline_text3'),
|
|
237
|
-
// image: '',
|
|
238
|
-
// value: '',
|
|
239
|
-
// version: 0,
|
|
240
|
-
// id: id,
|
|
241
|
-
// lamps: [
|
|
242
|
-
// {
|
|
243
|
-
// enable: true,
|
|
244
|
-
// type: 2,
|
|
245
|
-
// nodes: [
|
|
246
|
-
// {
|
|
247
|
-
// intervalTime: 14,
|
|
248
|
-
// changeTime: 14,
|
|
249
|
-
// changeType: SceneNodeTransitionMode.Jump,
|
|
250
|
-
// hue: 0,
|
|
251
|
-
// sat: 0,
|
|
252
|
-
// lightness: 0,
|
|
253
|
-
// brightness: 100,
|
|
254
|
-
// colorTemp: 30,
|
|
255
|
-
// },
|
|
256
|
-
// {
|
|
257
|
-
// intervalTime: 14,
|
|
258
|
-
// changeTime: 14,
|
|
259
|
-
// changeType: SceneNodeTransitionMode.Jump,
|
|
260
|
-
// hue: 0,
|
|
261
|
-
// sat: 0,
|
|
262
|
-
// lightness: 0,
|
|
263
|
-
// brightness: 100,
|
|
264
|
-
// colorTemp: 60,
|
|
265
|
-
// },
|
|
266
|
-
// {
|
|
267
|
-
// intervalTime: 14,
|
|
268
|
-
// changeTime: 14,
|
|
269
|
-
// changeType: SceneNodeTransitionMode.Jump,
|
|
270
|
-
// hue: 0,
|
|
271
|
-
// sat: 0,
|
|
272
|
-
// lightness: 0,
|
|
273
|
-
// brightness: 100,
|
|
274
|
-
// colorTemp: 90,
|
|
275
|
-
// },
|
|
276
|
-
// ],
|
|
277
|
-
// },
|
|
278
|
-
// {
|
|
279
|
-
// enable: true,
|
|
280
|
-
// type: 3,
|
|
281
|
-
// nodes: [
|
|
282
|
-
// {
|
|
283
|
-
// intervalTime: 14,
|
|
284
|
-
// changeTime: 14,
|
|
285
|
-
// changeType: SceneNodeTransitionMode.Gradient,
|
|
286
|
-
// hue: 330,
|
|
287
|
-
// sat: 50,
|
|
288
|
-
// lightness: 100,
|
|
289
|
-
// brightness: 0,
|
|
290
|
-
// colorTemp: 0,
|
|
291
|
-
// },
|
|
292
|
-
// {
|
|
293
|
-
// intervalTime: 14,
|
|
294
|
-
// changeTime: 14,
|
|
295
|
-
// changeType: SceneNodeTransitionMode.Gradient,
|
|
296
|
-
// hue: 270,
|
|
297
|
-
// sat: 50,
|
|
298
|
-
// lightness: 100,
|
|
299
|
-
// brightness: 0,
|
|
300
|
-
// colorTemp: 0,
|
|
301
|
-
// },
|
|
302
|
-
// {
|
|
303
|
-
// intervalTime: 14,
|
|
304
|
-
// changeTime: 14,
|
|
305
|
-
// changeType: SceneNodeTransitionMode.Gradient,
|
|
306
|
-
// hue: 210,
|
|
307
|
-
// sat: 50,
|
|
308
|
-
// lightness: 100,
|
|
309
|
-
// brightness: 0,
|
|
310
|
-
// colorTemp: 0,
|
|
311
|
-
// },
|
|
312
|
-
// ],
|
|
313
|
-
// },
|
|
314
|
-
// ],
|
|
315
|
-
// },
|
|
316
|
-
// },
|
|
317
232
|
]
|
|
318
233
|
}
|
|
319
234
|
|
|
@@ -19,7 +19,6 @@ import { stripLightSceneMode, StripNodeInfo, SceneNodeInfo, StripLightSceneMode,
|
|
|
19
19
|
import { MixSceneInfo, MixMainLampInfo, MixSceneNodeInfo } from './MixSceneBeans'
|
|
20
20
|
import TextFieldStyleButton from '@ledvance/base/src/components/TextFieldStyleButton'
|
|
21
21
|
import { SelectPageParams } from '../../select/SelectPage'
|
|
22
|
-
import { showDeleteMoodDialog } from '../tools'
|
|
23
22
|
import { ui_biz_routerKey } from '../../../navigation/Routers'
|
|
24
23
|
import { MixMoodPageProps } from '@ledvance/ui-biz-bundle/src/modules/mood/MixMood/MixMoodPage'
|
|
25
24
|
import Segmented from '@ledvance/base/src/components/Segmented'
|
|
@@ -27,6 +26,8 @@ import LdvSwitch from '@ledvance/base/src/components/ldvSwitch'
|
|
|
27
26
|
import ColorTempAdjustView from '@ledvance/base/src/components/ColorTempAdjustView'
|
|
28
27
|
import ColorAdjustView from '@ledvance/base/src/components/ColorAdjustView'
|
|
29
28
|
import { Result } from '@ledvance/base/src/models/modules/Result'
|
|
29
|
+
import { showDialog } from '@ledvance/base/src/utils/common'
|
|
30
|
+
import { defSecondly } from './AddMixMoodPage'
|
|
30
31
|
const cx = Utils.RatioUtils.convertX
|
|
31
32
|
|
|
32
33
|
interface MixMoodEditPageState {
|
|
@@ -62,8 +63,8 @@ const RgbcMoodEditPage = () => {
|
|
|
62
63
|
mood: params.currentMood,
|
|
63
64
|
mainLamp,
|
|
64
65
|
secondlyLamp,
|
|
65
|
-
currentWhiteNodeIdx: mainLamp.nodes?.length ? mainLamp.nodes.length - 1 :
|
|
66
|
-
currentColorNodeIdx: secondlyLamp.nodes?.length ? secondlyLamp.nodes?.length - 1 :
|
|
66
|
+
currentWhiteNodeIdx: mainLamp.nodes?.length ? mainLamp.nodes.length - 1 : 0,
|
|
67
|
+
currentColorNodeIdx: secondlyLamp.nodes?.length ? secondlyLamp.nodes?.length - 1 : 0,
|
|
67
68
|
paintBucketSelected: false,
|
|
68
69
|
paintWhiteBucketSelected: false,
|
|
69
70
|
sceneMode: stripLightSceneMode,
|
|
@@ -78,7 +79,7 @@ const RgbcMoodEditPage = () => {
|
|
|
78
79
|
|
|
79
80
|
const getColorBlockColor = useCallback(() => {
|
|
80
81
|
if (state.secondlyLamp?.nodes?.length) {
|
|
81
|
-
const currentNode = state.secondlyLamp?.nodes[state.currentColorNodeIdx]
|
|
82
|
+
const currentNode = state.secondlyLamp?.nodes?.[state.currentColorNodeIdx]
|
|
82
83
|
const s = Math.round(mapFloatToRange(currentNode.s / 100, 30, 100))
|
|
83
84
|
if (currentNode.isColorNode) {
|
|
84
85
|
return hsv2Hex(currentNode.h, s, 100)
|
|
@@ -130,25 +131,26 @@ const RgbcMoodEditPage = () => {
|
|
|
130
131
|
return currentOther.label
|
|
131
132
|
}, [state.secondlyLamp.expand])
|
|
132
133
|
|
|
133
|
-
const
|
|
134
|
+
const checkMoodDataChanged = useMemo(() =>{
|
|
134
135
|
return isEqual({
|
|
135
136
|
...state.mood,
|
|
136
137
|
mainLamp: state.mainLamp,
|
|
137
138
|
secondlyLamp: state.secondlyLamp
|
|
138
139
|
}, params.currentMood)
|
|
139
|
-
}
|
|
140
|
+
}, [params.currentMood, state.mood, state.mainLamp, state.secondlyLamp])
|
|
140
141
|
|
|
141
142
|
const nameRepeat = useMemo(() => {
|
|
142
143
|
return !!find(params.moods, m => ((m.mainLamp.id !== state.mood.mainLamp.id && (params.isStatic ? params.isStatic : m.secondlyLamp.id !== state.mood.secondlyLamp.id)) && m.name === state.mood.name))
|
|
143
144
|
}, [state.mood.name, params.isStatic])
|
|
144
145
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
}, [nameRepeat])
|
|
146
|
+
const canSaveMoodData = useMemo(() =>{
|
|
147
|
+
return state.mood.name.length > 0 && state.mood.name.length < 33 && !nameRepeat && (params.mode === 'add' || !checkMoodDataChanged)
|
|
148
|
+
}, [nameRepeat, state.mood.name, checkMoodDataChanged, params.mode])
|
|
149
|
+
|
|
148
150
|
return (
|
|
149
151
|
<Page
|
|
150
152
|
backText={I18n.getLang('mesh_device_detail_mode')}
|
|
151
|
-
showBackDialog={
|
|
153
|
+
showBackDialog={!checkMoodDataChanged}
|
|
152
154
|
loading={state.loading}
|
|
153
155
|
backDialogTitle={
|
|
154
156
|
I18n.getLang(params.mode === 'add' ?
|
|
@@ -161,15 +163,14 @@ const RgbcMoodEditPage = () => {
|
|
|
161
163
|
'strip_light_static_mood_editor_step_2_dialog_text')
|
|
162
164
|
}
|
|
163
165
|
headlineText={state.headline}
|
|
164
|
-
rightButtonIcon={
|
|
165
|
-
rightButtonDisabled={getButtonStatus()}
|
|
166
|
+
rightButtonIcon={canSaveMoodData ? res.ic_check : res.ic_uncheck}
|
|
166
167
|
rightButtonIconClick={async () => {
|
|
167
|
-
if(state.loading) return
|
|
168
|
+
if(state.loading || !canSaveMoodData) return
|
|
168
169
|
state.loading = true
|
|
169
170
|
const res = await params.modDeleteFlag(params.mode, {
|
|
170
171
|
...state.mood,
|
|
171
172
|
mainLamp: state.mainLamp,
|
|
172
|
-
secondlyLamp: state.secondlyLamp
|
|
173
|
+
secondlyLamp: params.isStatic ? defSecondly : state.secondlyLamp
|
|
173
174
|
})
|
|
174
175
|
state.loading = false
|
|
175
176
|
if (res.success) {
|
|
@@ -515,7 +516,7 @@ const RgbcMoodEditPage = () => {
|
|
|
515
516
|
style={styles.nodeAddBtn}
|
|
516
517
|
onPress={() => {
|
|
517
518
|
const node = {
|
|
518
|
-
...state.secondlyLamp
|
|
519
|
+
...state.secondlyLamp?.nodes?.[state.currentColorNodeIdx],
|
|
519
520
|
}
|
|
520
521
|
state.secondlyLamp.nodes.push(node)
|
|
521
522
|
state.currentColorNodeIdx = state.secondlyLamp.nodes.length - 1
|
|
@@ -541,9 +542,9 @@ const RgbcMoodEditPage = () => {
|
|
|
541
542
|
</View>
|
|
542
543
|
<Spacer />
|
|
543
544
|
<ColorAdjustView
|
|
544
|
-
h={state.secondlyLamp.nodes[state.currentColorNodeIdx]
|
|
545
|
-
s={state.secondlyLamp.nodes[state.currentColorNodeIdx]
|
|
546
|
-
v={state.secondlyLamp.nodes[state.currentColorNodeIdx]
|
|
545
|
+
h={state.secondlyLamp.nodes[state.currentColorNodeIdx]?.h}
|
|
546
|
+
s={state.secondlyLamp.nodes[state.currentColorNodeIdx]?.s}
|
|
547
|
+
v={state.secondlyLamp.nodes[state.currentColorNodeIdx]?.v}
|
|
547
548
|
onHSVChange={() => { }}
|
|
548
549
|
onHSVChangeComplete={(h, s, v) => {
|
|
549
550
|
state.secondlyLamp.nodes.forEach((node, idx) => {
|
|
@@ -572,9 +573,19 @@ const RgbcMoodEditPage = () => {
|
|
|
572
573
|
textStyle={styles.deleteBtnText}
|
|
573
574
|
text={I18n.getLang('edit_static_mood_button_delete_text')}
|
|
574
575
|
onPress={() => {
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
576
|
+
showDialog({
|
|
577
|
+
method: 'confirm',
|
|
578
|
+
title: I18n.getLang('string_light_pp_dialog_sm_ed_headline_d'),
|
|
579
|
+
subTitle: I18n.getLang('strip_light_static_mood_edit_dialog_text'),
|
|
580
|
+
onConfirm: async (_, { close }) => {
|
|
581
|
+
close()
|
|
582
|
+
state.loading = true
|
|
583
|
+
const res = await params.modDeleteFlag('del', state.mood)
|
|
584
|
+
state.loading = false
|
|
585
|
+
if(res.success){
|
|
586
|
+
navigation.navigate(ui_biz_routerKey.ui_biz_mix_mood)
|
|
587
|
+
}
|
|
588
|
+
}
|
|
578
589
|
})
|
|
579
590
|
}} />
|
|
580
591
|
</View>}
|
|
@@ -69,7 +69,7 @@ export function MixMoodColorsLine(props: { mixSubLight: MixMainLampInfo, colorLi
|
|
|
69
69
|
<MoodColorsLine
|
|
70
70
|
nodeStyle={{ borderColor: '#ccc', borderWidth: 1 }}
|
|
71
71
|
width={cx(264)}
|
|
72
|
-
type={'separate'}
|
|
72
|
+
type={!colorLight ? 'separate' : (mixSubLight.mode === 1 ? 'gradient' : 'separate')}
|
|
73
73
|
colors={lightColors} />
|
|
74
74
|
<Spacer height={0} width={cx(7)} />
|
|
75
75
|
<View style={styles.gradientItemIconView}>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback, useEffect } from 'react'
|
|
1
|
+
import React, { useCallback, useEffect, useMemo } from 'react'
|
|
2
2
|
import { FlatList, StyleSheet, View, Platform } from 'react-native'
|
|
3
3
|
import { Utils } from 'tuya-panel-kit'
|
|
4
4
|
import Page from '@ledvance/base/src/components/Page'
|
|
@@ -49,6 +49,7 @@ export interface MixMoodPageProps {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
const MAX_MOOD_COUNT = 256
|
|
52
|
+
let moodTimerId: undefined | number = undefined
|
|
52
53
|
|
|
53
54
|
const MixMoodPage = () => {
|
|
54
55
|
const routeParams = useRoute().params as MixMoodPageProps
|
|
@@ -62,7 +63,7 @@ const MixMoodPage = () => {
|
|
|
62
63
|
const [flagMode, setFlagMode] = useFlagMode()
|
|
63
64
|
const deviceInfo = useDeviceInfo()
|
|
64
65
|
const navigation = useNavigation()
|
|
65
|
-
|
|
66
|
+
const isMoodMode = useMemo(() => workMode === WORK_MODE.SCENE || rgbcWorkMode === WORK_MODE.SCENE,[workMode, rgbcWorkMode])
|
|
66
67
|
const state = useReactive<MixMoodPageUIState>({
|
|
67
68
|
currentScene: undefined,
|
|
68
69
|
staticTagChecked: true,
|
|
@@ -75,7 +76,7 @@ const MixMoodPage = () => {
|
|
|
75
76
|
})
|
|
76
77
|
|
|
77
78
|
const getSceneList = useCallback(async (mainId: number, secondlyId: number) => {
|
|
78
|
-
setTimeout(async () => {
|
|
79
|
+
moodTimerId = setTimeout(async () => {
|
|
79
80
|
const res = await getRemoteMixScene(deviceInfo.devId)
|
|
80
81
|
if (res.success) {
|
|
81
82
|
state.scenes = res.data || []
|
|
@@ -84,7 +85,7 @@ const MixMoodPage = () => {
|
|
|
84
85
|
return (mainLamp.id === mainId) && (secondlyLamp.id === secondlyId)
|
|
85
86
|
})
|
|
86
87
|
}
|
|
87
|
-
},
|
|
88
|
+
}, 200)
|
|
88
89
|
}, [])
|
|
89
90
|
|
|
90
91
|
const onAddMoodDialogItemClick = useCallback((isStatic: boolean, _: number) => {
|
|
@@ -115,6 +116,9 @@ const MixMoodPage = () => {
|
|
|
115
116
|
|
|
116
117
|
useEffect(() => {
|
|
117
118
|
getSceneList(whiteSceneId, fantasyId).then()
|
|
119
|
+
return () =>{
|
|
120
|
+
if (moodTimerId) clearTimeout(moodTimerId)
|
|
121
|
+
}
|
|
118
122
|
}, [state.flag])
|
|
119
123
|
|
|
120
124
|
|
|
@@ -144,17 +148,18 @@ const MixMoodPage = () => {
|
|
|
144
148
|
}
|
|
145
149
|
}
|
|
146
150
|
|
|
147
|
-
const
|
|
148
|
-
const { mainLamp, secondlyLamp } =
|
|
151
|
+
const checkedCurMoodInAllMoods = useCallback((checkMood: MixSceneInfo, curMood?: MixSceneInfo) =>{
|
|
152
|
+
const { mainLamp, secondlyLamp } = checkMood
|
|
153
|
+
const curWhiteId = curMood ? curMood.mainLamp.id : whiteSceneId
|
|
154
|
+
const curColorId = curMood ? curMood.secondlyLamp.id : fantasyId
|
|
149
155
|
const isStatic = mainLamp.nodes.length === 1
|
|
150
|
-
return (
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}, [workMode, rgbcWorkMode, fantasyId, whiteSceneId])
|
|
156
|
+
return isStatic ? ((curWhiteId === mainLamp.id) && mainLamp.id !== -1) :
|
|
157
|
+
(((curWhiteId === mainLamp.id) && mainLamp.id !== -1) && ((curColorId === secondlyLamp.id) && secondlyLamp.id !== -1))
|
|
158
|
+
}, [fantasyId, whiteSceneId])
|
|
154
159
|
|
|
155
160
|
const modDeleteFlag = async (mode: 'add' | 'edit' | 'del', currentMood: MixSceneInfo) => {
|
|
156
161
|
const list = mode === 'add' ? [currentMood, ...state.scenes] :
|
|
157
|
-
mode === 'del' ? state.scenes.filter(mood => (
|
|
162
|
+
mode === 'del' ? state.scenes.filter(mood => !checkedCurMoodInAllMoods(currentMood, mood)) :
|
|
158
163
|
state.scenes.map(mood => {
|
|
159
164
|
return ((mood.mainLamp.id === currentMood.mainLamp.id) && (mood.secondlyLamp.id === currentMood.secondlyLamp.id)) ? currentMood : mood
|
|
160
165
|
})
|
|
@@ -173,18 +178,25 @@ const MixMoodPage = () => {
|
|
|
173
178
|
if (list.length > 0) {
|
|
174
179
|
const { mainLamp, secondlyLamp } = currentMood
|
|
175
180
|
if (mode === 'del') {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
+
// 判断当前删除的Mood是否是正在执行的
|
|
182
|
+
if (checkedCurMoodInAllMoods(currentMood) && isMoodMode){
|
|
183
|
+
if(list[0].mainLamp.nodes?.length){
|
|
184
|
+
setScene(deviceInfo.devId, getSceneByMix(list[0].mainLamp), params.sceneDpCode, params.workModeDpCode, params.switchLedDpCode, false, false).then()
|
|
185
|
+
}
|
|
186
|
+
if (list[0].secondlyLamp.nodes?.length){
|
|
187
|
+
setFantasyScene(list[0]?.secondlyLamp).then()
|
|
188
|
+
}else{
|
|
189
|
+
setRgbcWorkMode(WORK_MODE.COLOUR).then()
|
|
190
|
+
}
|
|
181
191
|
}
|
|
182
192
|
} else {
|
|
183
|
-
if (mainLamp.nodes
|
|
193
|
+
if (mainLamp.nodes?.length > 0) {
|
|
184
194
|
setScene(deviceInfo.devId, getSceneByMix(mainLamp), params.sceneDpCode, params.workModeDpCode, params.switchLedDpCode, false, false).then()
|
|
185
195
|
}
|
|
186
|
-
if (secondlyLamp.nodes
|
|
196
|
+
if (secondlyLamp.nodes?.length > 0) {
|
|
187
197
|
setFantasyScene(secondlyLamp).then()
|
|
198
|
+
}else{
|
|
199
|
+
setRgbcWorkMode(WORK_MODE.COLOUR).then()
|
|
188
200
|
}
|
|
189
201
|
}
|
|
190
202
|
} else {
|
|
@@ -198,9 +210,6 @@ const MixMoodPage = () => {
|
|
|
198
210
|
return { success: false }
|
|
199
211
|
}
|
|
200
212
|
|
|
201
|
-
useEffect(() => {
|
|
202
|
-
console.log(state.filteredMoods, '< --- filterMoods')
|
|
203
|
-
}, [JSON.stringify(state.filteredMoods)])
|
|
204
213
|
return (
|
|
205
214
|
<>
|
|
206
215
|
<Page
|
|
@@ -243,7 +252,7 @@ const MixMoodPage = () => {
|
|
|
243
252
|
renderItem={({ item }) => {
|
|
244
253
|
return (
|
|
245
254
|
<MixMoodItem
|
|
246
|
-
enable={
|
|
255
|
+
enable={checkedCurMoodInAllMoods(item) && isMoodMode}
|
|
247
256
|
mixMood={item}
|
|
248
257
|
onPress={() => {
|
|
249
258
|
navigation.navigate(ui_biz_routerKey.ui_biz_mix_mood_edit, {
|
|
@@ -256,7 +265,7 @@ const MixMoodPage = () => {
|
|
|
256
265
|
})
|
|
257
266
|
}}
|
|
258
267
|
onSwitch={async _ => {
|
|
259
|
-
if (
|
|
268
|
+
if (checkedCurMoodInAllMoods(item) && isMoodMode) return
|
|
260
269
|
state.loading = true
|
|
261
270
|
await modDeleteFlag('edit', item)
|
|
262
271
|
state.currentScene = item
|
|
@@ -54,6 +54,7 @@ const styles = StyleSheet.create({
|
|
|
54
54
|
content: {
|
|
55
55
|
height: cx(56),
|
|
56
56
|
marginHorizontal: cx(16),
|
|
57
|
+
width: cx(295)
|
|
57
58
|
},
|
|
58
59
|
title: {
|
|
59
60
|
color: '#000',
|
|
@@ -65,4 +66,4 @@ const styles = StyleSheet.create({
|
|
|
65
66
|
},
|
|
66
67
|
})
|
|
67
68
|
|
|
68
|
-
export default RecommendMixMoodItem
|
|
69
|
+
export default RecommendMixMoodItem
|
|
@@ -147,7 +147,7 @@ const MoodSetting = (props: MoodSettingProps) => {
|
|
|
147
147
|
ListFooterComponent={() => (<Spacer />)}
|
|
148
148
|
keyExtractor={item => `${item.name}`} /> :
|
|
149
149
|
<>
|
|
150
|
-
<View style={styles.tagLine}>
|
|
150
|
+
<View style={[styles.tagLine, {marginHorizontal: cx(24)}]}>
|
|
151
151
|
<Tag
|
|
152
152
|
checked={state.staticTagChecked}
|
|
153
153
|
text={I18n.getLang('mood_overview_filter_name_text1')}
|
|
@@ -180,7 +180,7 @@ const MoodSetting = (props: MoodSettingProps) => {
|
|
|
180
180
|
ListHeaderComponent={() => (<Spacer height={cx(10)} />)}
|
|
181
181
|
ItemSeparatorComponent={() => (<Spacer />)}
|
|
182
182
|
ListFooterComponent={() => (
|
|
183
|
-
<View style={styles.infoLine}>
|
|
183
|
+
<View style={[styles.infoLine, {marginHorizontal: cx(24)}]}>
|
|
184
184
|
<Spacer />
|
|
185
185
|
<InfoText
|
|
186
186
|
icon={res.ic_info}
|
|
@@ -71,7 +71,7 @@ const TimeSchedulePage = () => {
|
|
|
71
71
|
|
|
72
72
|
const [, setTimeSchedule] = useTimeSchedule()
|
|
73
73
|
|
|
74
|
-
useEffect(() => {
|
|
74
|
+
useEffect(() => {
|
|
75
75
|
getTimerScheduleList().then()
|
|
76
76
|
}, [])
|
|
77
77
|
|
|
@@ -238,7 +238,7 @@ const TimeSchedulePage = () => {
|
|
|
238
238
|
<Text>{I18n.getLang('motion_detection_time_schedule_notifications_warning_text')}</Text>
|
|
239
239
|
</View>}
|
|
240
240
|
{showTags() && <View style={styles.categoryList}>
|
|
241
|
-
{(props.isCeilingLight ? [
|
|
241
|
+
{(props.isCeilingLight ? [] : Object.keys(state.filterTags)).map(tag => {
|
|
242
242
|
return <Tag
|
|
243
243
|
key={tag}
|
|
244
244
|
text={getLabelByDp(tag)}
|
|
@@ -355,4 +355,4 @@ const styles = StyleSheet.create({
|
|
|
355
355
|
},
|
|
356
356
|
})
|
|
357
357
|
|
|
358
|
-
export default TimeSchedulePage
|
|
358
|
+
export default TimeSchedulePage
|