@ledvance/ui-biz-bundle 1.1.13 → 1.1.15
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/flags/FlagActions.ts +7 -0
- package/src/modules/flags/FlagEditPage.tsx +2 -0
- package/src/modules/flags/FlagPage.tsx +13 -3
- package/src/modules/mood/DynamicMoodEditorPage.tsx +8 -2
- package/src/modules/mood/FantasyMoodEditPage.tsx +10 -3
- package/src/modules/mood/MoodPage.tsx +11 -1
- package/src/modules/mood/StaticMoodEditorPage.tsx +7 -2
package/package.json
CHANGED
|
@@ -229,3 +229,10 @@ export function saveFlag(devId: string, flagInfo: FlagUiInfo[]) {
|
|
|
229
229
|
return NativeApi.putJson(devId, featureId, JSON.stringify(flagInfo))
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
export function getFlagMode(groupId: string){
|
|
233
|
+
return NativeApi.getJson(groupId, 'flagMode')
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export function saveFlagMode(groupId: string, v:string){
|
|
237
|
+
return NativeApi.putJson(groupId, 'flagMode', v)
|
|
238
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import React, { useEffect, useMemo } from "react";
|
|
2
2
|
import Page from "@ledvance/base/src/components/Page";
|
|
3
|
-
import { useDeviceId, useDeviceInfo, useFlags, useMoods } from "@ledvance/base/src/models/modules/NativePropsSlice";
|
|
3
|
+
import { useDeviceId, useDeviceInfo, useFlagMode, useFlags, useMoods } 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, useUpdateEffect } from "ahooks";
|
|
@@ -46,6 +46,7 @@ const FlagPage = () => {
|
|
|
46
46
|
const [dps, setDps] = useDps()
|
|
47
47
|
const [moods, setMoods] = useMoods()
|
|
48
48
|
const [flags, setFlags] = useFlags()
|
|
49
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
49
50
|
const [flagState, setFlag] = useFlag((params.isStripLight ? params?.drawToolLight?.drawToolCode : params.sceneDataCode)!!, {
|
|
50
51
|
isMixLight: params.isSupportMixScene,
|
|
51
52
|
isStringLight: params.isStringLight,
|
|
@@ -144,6 +145,7 @@ const FlagPage = () => {
|
|
|
144
145
|
const mood = mode === 'del' ? (newScene.length === 0 ? undefined : newScene[0]) : checkedMood
|
|
145
146
|
const res = await saveFlag(devId, cloneDeep(newScene))
|
|
146
147
|
if (res.success) {
|
|
148
|
+
updateFlagMode()
|
|
147
149
|
state.flags = cloneDeep(newScene)
|
|
148
150
|
setFlags(cloneDeep(newScene))
|
|
149
151
|
if(mode === 'del' && currentMood.id !== flagState.id){
|
|
@@ -165,6 +167,13 @@ const FlagPage = () => {
|
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
|
|
170
|
+
const updateFlagMode = () =>{
|
|
171
|
+
if(!flagMode){
|
|
172
|
+
saveFlagMode(devId, JSON.stringify(true)).then()
|
|
173
|
+
setFlagMode(true)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
168
177
|
return (
|
|
169
178
|
<Page
|
|
170
179
|
headlineText={I18n.getLang('Feature_devicepanel_flags')}
|
|
@@ -185,12 +194,13 @@ const FlagPage = () => {
|
|
|
185
194
|
<FlatList
|
|
186
195
|
data={state.flags}
|
|
187
196
|
renderItem={({ item }) => <FlagItem
|
|
188
|
-
enable={dps[params.workModeCode] === (params.isStripLight ? WORK_MODE.
|
|
197
|
+
enable={dps[params.workModeCode] === (params.isStripLight ? WORK_MODE.COLOUR : WORK_MODE.SCENE) && flagId === item.id}
|
|
189
198
|
title={item.name}
|
|
190
199
|
colors={item.colors.map(item => hsv2Hex(item.h, item.s, item.v))}
|
|
191
200
|
onSwitch={async (enable) => {
|
|
192
201
|
if (enable) {
|
|
193
202
|
await setFlag(item)
|
|
203
|
+
updateFlagMode()
|
|
194
204
|
}
|
|
195
205
|
}}
|
|
196
206
|
onPress={() => {
|
|
@@ -18,7 +18,7 @@ import LampAdjustView from '@ledvance/base/src/components/LampAdjustView'
|
|
|
18
18
|
import {Utils} from 'tuya-panel-kit'
|
|
19
19
|
import LdvSlider from '@ledvance/base/src/components/ldvSlider'
|
|
20
20
|
import {saveScene, useScene} from '../scene/SceneAction'
|
|
21
|
-
import {isUVCFanDevice, useDeviceId, useFanMaxSpeed,
|
|
21
|
+
import {isUVCFanDevice, useDeviceId, useFanMaxSpeed, useFlagMode} from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
22
22
|
import TextButton from '@ledvance/base/src/components/TextButton'
|
|
23
23
|
import {SceneNodeInfo, SceneNodeTransitionMode} from '../scene/SceneInfo'
|
|
24
24
|
import TextFieldStyleButton from '@ledvance/base/src/components/TextFieldStyleButton'
|
|
@@ -27,6 +27,7 @@ import {toSelectPage} from '../../navigation/tools'
|
|
|
27
27
|
import FanAdjustView from '@ledvance/base/src/components/FanAdjustView'
|
|
28
28
|
import {showDeleteMoodDialog} from './tools'
|
|
29
29
|
import {ui_biz_routerKey} from '../../navigation/Routers'
|
|
30
|
+
import { saveFlagMode } from 'modules/flags/FlagActions'
|
|
30
31
|
const cx = Utils.RatioUtils.convertX
|
|
31
32
|
interface DynamicMoodEditorPageState extends StaticMoodEditorPageState {
|
|
32
33
|
paintBucketSelected: boolean
|
|
@@ -39,8 +40,8 @@ const DynamicMoodEditorPage = () => {
|
|
|
39
40
|
const deviceId = useDeviceId()
|
|
40
41
|
const [moodId, setScene] = useScene(moduleParams.sceneDpCode)
|
|
41
42
|
const [workMode, setWorkMode] = useWorkMode(moduleParams.workModeDpCode)
|
|
43
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
42
44
|
const isUVCFan = isUVCFanDevice()
|
|
43
|
-
const role = useRole()
|
|
44
45
|
const state = useReactive<DynamicMoodEditorPageState>({
|
|
45
46
|
headline: '',
|
|
46
47
|
mood: params.currentMood,
|
|
@@ -100,6 +101,10 @@ const DynamicMoodEditorPage = () => {
|
|
|
100
101
|
isUVCFan
|
|
101
102
|
)
|
|
102
103
|
if (saveRes.success) {
|
|
104
|
+
if(flagMode){
|
|
105
|
+
saveFlagMode(deviceId, JSON.stringify(false)).then()
|
|
106
|
+
setFlagMode(false)
|
|
107
|
+
}
|
|
103
108
|
if (list.length > 0) {
|
|
104
109
|
if (isDelete && currentMood.id === moodId && workMode === SCENE) {
|
|
105
110
|
const setSceneRes = await setScene(
|
|
@@ -124,6 +129,7 @@ const DynamicMoodEditorPage = () => {
|
|
|
124
129
|
)
|
|
125
130
|
console.log('设置修改后的场景结果', setSceneRes)
|
|
126
131
|
}
|
|
132
|
+
|
|
127
133
|
} else {
|
|
128
134
|
await setWorkMode(moduleParams.isOnlyRGBLamp ? COLOUR : WHITE)
|
|
129
135
|
console.log('Mood被清空,将work_mode设置成white')
|
|
@@ -16,7 +16,7 @@ import Spacer from '@ledvance/base/src/components/Spacer'
|
|
|
16
16
|
import LampAdjustView from '@ledvance/base/src/components/LampAdjustView'
|
|
17
17
|
import { Utils } from 'tuya-panel-kit'
|
|
18
18
|
import LdvSlider from '@ledvance/base/src/components/ldvSlider'
|
|
19
|
-
import { useDeviceId } from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
19
|
+
import { useDeviceId, useFlagMode } from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
20
20
|
import TextButton from '@ledvance/base/src/components/TextButton'
|
|
21
21
|
import { stringLightSceneMode, stripLightSceneMode, StripSceneUIState, StripNodeInfo, StripLightSceneMode } from '../scene/SceneInfo'
|
|
22
22
|
import TextFieldStyleButton from '@ledvance/base/src/components/TextFieldStyleButton'
|
|
@@ -26,6 +26,7 @@ import { ui_biz_routerKey } from '../../navigation/Routers'
|
|
|
26
26
|
import { FantasyMoodPageProps } from './FantasyMood'
|
|
27
27
|
import Segmented from '@ledvance/base/src/components/Segmented'
|
|
28
28
|
import { saveFantasyScene, useFantasyScene } from '../scene/SceneAction'
|
|
29
|
+
import { saveFlagMode } from 'modules/flags/FlagActions'
|
|
29
30
|
const cx = Utils.RatioUtils.convertX
|
|
30
31
|
|
|
31
32
|
interface FantasyMoodEditPageState {
|
|
@@ -50,7 +51,8 @@ const FantasyMoodEditPage = () => {
|
|
|
50
51
|
const moduleParams = params.moduleParams
|
|
51
52
|
const deviceId = useDeviceId()
|
|
52
53
|
const [workMode, setWorkMode] = useWorkMode(moduleParams.workModeDpCode)
|
|
53
|
-
const [,
|
|
54
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
55
|
+
const [fantasyId, setFantasyScene] = useFantasyScene(params.moduleParams.sceneDpCode, params.moduleParams.workModeDpCode, params.moduleParams.switchLedDpCode, moduleParams.isStringLight)
|
|
54
56
|
const state = useReactive<FantasyMoodEditPageState>({
|
|
55
57
|
headline: '',
|
|
56
58
|
mood: params.currentMood,
|
|
@@ -105,8 +107,13 @@ const FantasyMoodEditPage = () => {
|
|
|
105
107
|
})
|
|
106
108
|
const saveRes = await saveFantasyScene(deviceId, params.moduleParams.featureId, list, moduleParams.isStringLight)
|
|
107
109
|
if (saveRes.success) {
|
|
110
|
+
if(flagMode){
|
|
111
|
+
saveFlagMode(deviceId, JSON.stringify(false)).then()
|
|
112
|
+
setFlagMode(false)
|
|
113
|
+
}
|
|
108
114
|
if (list.length > 0) {
|
|
109
|
-
if (isDelete
|
|
115
|
+
if (isDelete && workMode === SCENE) {
|
|
116
|
+
if(currentMood.id !== fantasyId) return
|
|
110
117
|
await setFantasyScene(list[0])
|
|
111
118
|
} else {
|
|
112
119
|
await setFantasyScene(currentMood)
|
|
@@ -4,7 +4,7 @@ import { Utils } from 'tuya-panel-kit'
|
|
|
4
4
|
import { ScenePageUIState, SceneUIState } from '../scene/SceneInfo'
|
|
5
5
|
import { getRemoteSceneList, useScene } from '../scene/SceneAction'
|
|
6
6
|
import { SCENE, useWorkMode } from '../../hooks/DeviceDpStateHooks'
|
|
7
|
-
import { isUVCFanDevice, useDeviceInfo } from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
7
|
+
import { isUVCFanDevice, useDeviceInfo, useFlagMode } from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
8
8
|
import { useReactive, useUpdateEffect } from 'ahooks'
|
|
9
9
|
import Strings from '@ledvance/base/src/i18n'
|
|
10
10
|
import res from '@ledvance/base/src/res'
|
|
@@ -16,6 +16,7 @@ import CustomListDialog from '@ledvance/base/src/components/CustomListDialog'
|
|
|
16
16
|
import MoodItem from './MoodItem'
|
|
17
17
|
import { toAddMoodPage, toDynamicMoodEditorPage, toStaticMoodEditorPage } from '../../navigation/tools'
|
|
18
18
|
import { useNavigation, useRoute } from '@react-navigation/core'
|
|
19
|
+
import { saveFlagMode } from '../flags/FlagActions'
|
|
19
20
|
|
|
20
21
|
const cx = Utils.RatioUtils.convertX
|
|
21
22
|
|
|
@@ -58,6 +59,7 @@ const MoodPage = () => {
|
|
|
58
59
|
}
|
|
59
60
|
const [sceneId, setScene] = useScene(params.sceneDpCode)
|
|
60
61
|
const [workMode] = useWorkMode(params.workModeDpCode)
|
|
62
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
61
63
|
const deviceInfo = useDeviceInfo()
|
|
62
64
|
const navigation = useNavigation()
|
|
63
65
|
const isUVCFan = isUVCFanDevice()
|
|
@@ -143,6 +145,13 @@ const MoodPage = () => {
|
|
|
143
145
|
return mood
|
|
144
146
|
}, [])
|
|
145
147
|
|
|
148
|
+
const updateFlagMode = () =>{
|
|
149
|
+
if(flagMode && params.isSupportColor){
|
|
150
|
+
saveFlagMode(deviceInfo.devId, JSON.stringify(false)).then()
|
|
151
|
+
setFlagMode(false)
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
146
155
|
return (
|
|
147
156
|
<>
|
|
148
157
|
<Page
|
|
@@ -226,6 +235,7 @@ const MoodPage = () => {
|
|
|
226
235
|
!!params.isFanLamp
|
|
227
236
|
)
|
|
228
237
|
state.currentScene = checkMoodData(item)
|
|
238
|
+
updateFlagMode()
|
|
229
239
|
state.loading = false
|
|
230
240
|
}} />
|
|
231
241
|
)
|
|
@@ -15,13 +15,14 @@ import res from '@ledvance/base/src/res'
|
|
|
15
15
|
import {cloneDeep, find, isEqual} from 'lodash'
|
|
16
16
|
import TextButton from '@ledvance/base/src/components/TextButton'
|
|
17
17
|
import {saveScene, useScene} from '../scene/SceneAction'
|
|
18
|
-
import {useDeviceId, useFanMaxSpeed} from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
18
|
+
import {useDeviceId, useFanMaxSpeed, useFlagMode} from '@ledvance/base/src/models/modules/NativePropsSlice'
|
|
19
19
|
import {SceneNodeInfo, SceneUIState} from '../scene/SceneInfo'
|
|
20
20
|
import LampAdjustView from '@ledvance/base/src/components/LampAdjustView'
|
|
21
21
|
import FanAdjustView from '@ledvance/base/src/components/FanAdjustView'
|
|
22
22
|
import {showDeleteMoodDialog} from './tools'
|
|
23
23
|
import {MoodPageProps} from './MoodPage'
|
|
24
24
|
import {ui_biz_routerKey} from '../../navigation/Routers'
|
|
25
|
+
import { saveFlagMode } from 'modules/flags/FlagActions'
|
|
25
26
|
|
|
26
27
|
const cx = Utils.RatioUtils.convertX
|
|
27
28
|
|
|
@@ -47,7 +48,7 @@ const StaticMoodEditorPage = () => {
|
|
|
47
48
|
const deviceId = useDeviceId()
|
|
48
49
|
const [moodId, setScene] = useScene(moduleParams.sceneDpCode)
|
|
49
50
|
const [workMode, setWorkMode] = useWorkMode(moduleParams.workModeDpCode)
|
|
50
|
-
|
|
51
|
+
const [flagMode, setFlagMode] = useFlagMode()
|
|
51
52
|
const state = useReactive<StaticMoodEditorPageState>({
|
|
52
53
|
headline: '',
|
|
53
54
|
mood: params.currentMood,
|
|
@@ -101,6 +102,10 @@ const StaticMoodEditorPage = () => {
|
|
|
101
102
|
!!moduleParams.isFanLamp,
|
|
102
103
|
)
|
|
103
104
|
if (saveRes.success) {
|
|
105
|
+
if(flagMode && moduleParams.isSupportColor){
|
|
106
|
+
saveFlagMode(deviceId, JSON.stringify(false)).then()
|
|
107
|
+
setFlagMode(false)
|
|
108
|
+
}
|
|
104
109
|
if (list.length > 0) {
|
|
105
110
|
if (isDelete && currentMood.id === moodId && workMode === SCENE) {
|
|
106
111
|
const setSceneRes = await setScene(
|