@ledvance/group-ui-biz-bundle 1.0.9 → 1.0.11
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
CHANGED
|
@@ -200,3 +200,11 @@ export function saveFlag(devId: string, flagInfo: FlagUiInfo[]) {
|
|
|
200
200
|
return NativeApi.putJson(devId, featureId, JSON.stringify(flagInfo))
|
|
201
201
|
}
|
|
202
202
|
|
|
203
|
+
export function getFlagMode(groupId: string){
|
|
204
|
+
return NativeApi.getJson(groupId, 'flagMode')
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export function saveFlagMode(groupId: string, v:string){
|
|
208
|
+
return NativeApi.putJson(groupId, 'flagMode', v)
|
|
209
|
+
}
|
|
210
|
+
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useMemo } from "react";
|
|
2
2
|
import Page from "@ledvance/base/src/components/Page";
|
|
3
|
-
import { useDeviceInfo, useMoods, useUAGroupInfo } from "@ledvance/base/src/models/modules/NativePropsSlice";
|
|
3
|
+
import { useDeviceInfo, useFlagMode, useFlags, useMoods, useUAGroupInfo } from "@ledvance/base/src/models/modules/NativePropsSlice";
|
|
4
4
|
import { FlatList } from "react-native";
|
|
5
5
|
import Spacer from "@ledvance/base/src/components/Spacer";
|
|
6
6
|
import { Utils } from "tuya-panel-kit";
|
|
7
7
|
import FlagItem from "./FlagItem";
|
|
8
8
|
import { FlagUiInfo } from "./FlagInfo";
|
|
9
|
-
import { getRemoteFlag, saveFlag, useFlag } from "./FlagActions";
|
|
9
|
+
import { getRemoteFlag, saveFlag, saveFlagMode, useFlag } from "./FlagActions";
|
|
10
10
|
import { useRoute, useNavigation } from '@react-navigation/core'
|
|
11
11
|
import I18n from "@ledvance/base/src/i18n";
|
|
12
12
|
import { useReactive } from "ahooks";
|
|
@@ -42,6 +42,7 @@ const FlagPage = () => {
|
|
|
42
42
|
const navigation = useNavigation()
|
|
43
43
|
const [moods, setMoods] = useMoods()
|
|
44
44
|
const [flags, setFlags] = useFlags()
|
|
45
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
45
46
|
const [flagState, setFlag] = useFlag({
|
|
46
47
|
isStripLight: params.isStripLight,
|
|
47
48
|
isStringLight: params.isStringLight,
|
|
@@ -81,10 +82,6 @@ const FlagPage = () => {
|
|
|
81
82
|
return -1
|
|
82
83
|
}, [JSON.stringify(flagState), JSON.stringify(state.flags)])
|
|
83
84
|
|
|
84
|
-
useEffect(() =>{
|
|
85
|
-
console.log(flagState, '< --- flagstate')
|
|
86
|
-
console.log(state.flags, '< --- state.flags')
|
|
87
|
-
}, [flagState, JSON.stringify(state.flags)])
|
|
88
85
|
useEffect(() => {
|
|
89
86
|
if(!flags?.length){
|
|
90
87
|
getRemoteFlagInfo().then()
|
|
@@ -129,7 +126,6 @@ const FlagPage = () => {
|
|
|
129
126
|
const checkedMood: FlagUiInfo = {
|
|
130
127
|
...currentMood,
|
|
131
128
|
}
|
|
132
|
-
|
|
133
129
|
let newScene: FlagUiInfo[] = []
|
|
134
130
|
if (mode === 'add') {
|
|
135
131
|
newScene = [
|
|
@@ -156,6 +152,7 @@ const FlagPage = () => {
|
|
|
156
152
|
success: true
|
|
157
153
|
}
|
|
158
154
|
}
|
|
155
|
+
updateFlagMode()
|
|
159
156
|
return setFlag({
|
|
160
157
|
...defParams,
|
|
161
158
|
flag: cloneDeep(mood)
|
|
@@ -166,6 +163,13 @@ const FlagPage = () => {
|
|
|
166
163
|
}
|
|
167
164
|
}
|
|
168
165
|
|
|
166
|
+
const updateFlagMode = () =>{
|
|
167
|
+
if(!flagMode){
|
|
168
|
+
saveFlagMode(uaGroupInfo.tyGroupId.toString(), JSON.stringify(true)).then()
|
|
169
|
+
setFlagMode(true)
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
169
173
|
return (
|
|
170
174
|
<Page
|
|
171
175
|
headlineText={I18n.getLang('Feature_devicepanel_flags')}
|
|
@@ -187,7 +191,7 @@ const FlagPage = () => {
|
|
|
187
191
|
<FlatList
|
|
188
192
|
data={state.flags}
|
|
189
193
|
renderItem={({ item }) => <FlagItem
|
|
190
|
-
enable={flagState?.workMode === (params.isStripLight ? WorkMode.
|
|
194
|
+
enable={flagState?.workMode === (params.isStripLight ? WorkMode.Colour : WorkMode.Scene) && flagId === item.id}
|
|
191
195
|
title={item.name}
|
|
192
196
|
colors={item.colors.map(item => hsv2Hex(item.h, item.s, item.v))}
|
|
193
197
|
onSwitch={async (enable) => {
|
|
@@ -196,6 +200,7 @@ const FlagPage = () => {
|
|
|
196
200
|
...defParams,
|
|
197
201
|
flag: cloneDeep(item),
|
|
198
202
|
})
|
|
203
|
+
updateFlagMode()
|
|
199
204
|
}
|
|
200
205
|
}}
|
|
201
206
|
onPress={() => {
|
|
@@ -80,6 +80,7 @@ const AddMoodPage = () => {
|
|
|
80
80
|
routeParams.isStatic,
|
|
81
81
|
moduleParams
|
|
82
82
|
) : recommendMood2SceneUIState(item),
|
|
83
|
+
moods: routeParams.moods,
|
|
83
84
|
moduleParams,
|
|
84
85
|
modDeleteMood: routeParams.modDeleteMood
|
|
85
86
|
})
|
|
@@ -93,6 +94,7 @@ const AddMoodPage = () => {
|
|
|
93
94
|
routeParams.isStatic,
|
|
94
95
|
moduleParams
|
|
95
96
|
) : recommendMood2SceneUIState(item),
|
|
97
|
+
moods: routeParams.moods,
|
|
96
98
|
moduleParams,
|
|
97
99
|
modDeleteMood: routeParams.modDeleteMood
|
|
98
100
|
})
|
|
@@ -823,4 +825,4 @@ function getRecommendMoods(
|
|
|
823
825
|
},
|
|
824
826
|
]
|
|
825
827
|
}
|
|
826
|
-
}
|
|
828
|
+
}
|
|
@@ -4,7 +4,7 @@ import { Utils } from 'tuya-panel-kit'
|
|
|
4
4
|
import { SceneMode, ScenePageUIState, SceneUIState, StripSceneUIState } from './SceneInfo'
|
|
5
5
|
import { getRemoteSceneList, saveScene, useScene, useSwitchLed, useWorkMode } from './SceneAction'
|
|
6
6
|
import { WorkMode } from '@ledvance/base/src/utils/interface'
|
|
7
|
-
import { useDeviceInfo, useMoods, useUAGroupInfo } from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
7
|
+
import { useDeviceInfo, useFlagMode, useMoods, useUAGroupInfo } from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
8
8
|
import { useReactive } from 'ahooks'
|
|
9
9
|
import Strings from '@ledvance/base/src/i18n'
|
|
10
10
|
import res from '@ledvance/base/src/res'
|
|
@@ -17,6 +17,7 @@ import MoodItem from './MoodItem'
|
|
|
17
17
|
import { useNavigation, useRoute } from '@react-navigation/core'
|
|
18
18
|
import { cloneDeep } from 'lodash'
|
|
19
19
|
import { ui_biz_routerKey } from '../../navigation/Routers'
|
|
20
|
+
import { saveFlagMode } from '../flags/FlagActions'
|
|
20
21
|
|
|
21
22
|
const cx = Utils.RatioUtils.convertX
|
|
22
23
|
|
|
@@ -61,6 +62,7 @@ const MoodPage = () => {
|
|
|
61
62
|
const [moods, setMoods] = useMoods()
|
|
62
63
|
const [workMode] = useWorkMode()
|
|
63
64
|
const [switchLed] = useSwitchLed()
|
|
65
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
64
66
|
const state = useReactive<MoodPageUIState>({
|
|
65
67
|
currentScene: undefined,
|
|
66
68
|
staticTagChecked: true,
|
|
@@ -171,6 +173,12 @@ const MoodPage = () => {
|
|
|
171
173
|
if (res.success) {
|
|
172
174
|
state.scenes = cloneDeep(newScene)
|
|
173
175
|
setMoods(cloneDeep(newScene))
|
|
176
|
+
updateFlagMode()
|
|
177
|
+
if(mode === 'del' && currentMood.id !== scene?.scene?.id){
|
|
178
|
+
return {
|
|
179
|
+
success: true
|
|
180
|
+
}
|
|
181
|
+
}
|
|
174
182
|
return setScene({
|
|
175
183
|
scene: cloneDeep(mood),
|
|
176
184
|
sceneDataDpCode: params.sceneDataDpCode,
|
|
@@ -184,6 +192,13 @@ const MoodPage = () => {
|
|
|
184
192
|
}
|
|
185
193
|
}
|
|
186
194
|
|
|
195
|
+
const updateFlagMode = () =>{
|
|
196
|
+
if(flagMode && params.isSupportColor){
|
|
197
|
+
saveFlagMode(uaGroupInfo.tyGroupId.toString(), JSON.stringify(false)).then()
|
|
198
|
+
setFlagMode(false)
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
187
202
|
const onAddMoodDialogItemClick = useCallback((isStatic: boolean, _: number) => {
|
|
188
203
|
if (!!state.scenes) {
|
|
189
204
|
navigationRoute(isStatic, 'add')
|
|
@@ -266,6 +281,7 @@ const MoodPage = () => {
|
|
|
266
281
|
workMode: WorkMode.Scene,
|
|
267
282
|
switchLedDpCode: params.switchLedDpCode
|
|
268
283
|
})
|
|
284
|
+
updateFlagMode()
|
|
269
285
|
state.loading = false
|
|
270
286
|
}} />
|
|
271
287
|
)
|