@ledvance/ui-biz-bundle 1.1.12 → 1.1.14
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 +10 -4
- package/src/modules/flags/FlagEditPage.tsx +2 -0
- package/src/modules/flags/FlagPage.tsx +4 -4
- package/src/modules/mood/DynamicMoodEditorPage.tsx +8 -2
- package/src/modules/mood/FantasyMoodEditPage.tsx +10 -3
- package/src/modules/mood/StaticMoodEditorPage.tsx +7 -2
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useDps } from "@ledvance/base/src/models/modules/NativePropsSlice";
|
|
2
2
|
import { FlagPageProps } from "./FlagPage";
|
|
3
3
|
import { SceneNodeTransitionMode } from "@ledvance/ui-biz-bundle/src/modules/scene/SceneInfo";
|
|
4
|
-
import { WORK_MODE, nToHS, parseJSON, toFixed } from "@tuya/tuya-panel-lamp-sdk/lib/utils";
|
|
4
|
+
import { ColorUtils, WORK_MODE, nToHS, parseJSON, toFixed } from "@tuya/tuya-panel-lamp-sdk/lib/utils";
|
|
5
5
|
import { cloneDeep } from "lodash";
|
|
6
6
|
import { FlagItemInfo, FlagUiInfo, defFlagList } from "./FlagInfo";
|
|
7
7
|
import { hex2Int } from "@ledvance/base/src/utils/common";
|
|
@@ -9,7 +9,6 @@ import { spliceByStep } from "@ledvance/base/src/utils/common";
|
|
|
9
9
|
import { useMemo, useState } from "react";
|
|
10
10
|
import { useUpdateEffect } from "ahooks";
|
|
11
11
|
import { NativeApi } from "@ledvance/base/src/api/native";
|
|
12
|
-
import { hsv2Hex } from "@ledvance/base/src/utils";
|
|
13
12
|
import { stripDp2Obj } from "@ledvance/ui-biz-bundle/src/modules/scene/SceneAction";
|
|
14
13
|
|
|
15
14
|
export interface ExtraParams extends FlagPageProps, FlagOption {
|
|
@@ -52,8 +51,8 @@ export const useFlag: UseFlagType = (flagCode, extra) => {
|
|
|
52
51
|
|
|
53
52
|
const setFlagFn = (flagItem: FlagItemInfo) => {
|
|
54
53
|
if (extra.drawToolLight) {
|
|
55
|
-
const hex = extra.drawToolLight.drawToolObj2dp(flagItem.colors.map(item =>
|
|
56
|
-
return setDps({ [flagCode]: hex })
|
|
54
|
+
const hex = extra.drawToolLight.drawToolObj2dp(flagItem.colors.map(item => ColorUtils.hsv2hex(item.h, item.s, item.v)))
|
|
55
|
+
return setDps({ [flagCode]: hex , [extra.switchLedCode]: true})
|
|
57
56
|
} else {
|
|
58
57
|
const hex = obj2Dp(flagItem, extra)
|
|
59
58
|
return setDps({ [flagCode]: hex, [extra.workModeCode]: WORK_MODE.SCENE, [extra.switchLedCode]: true })
|
|
@@ -230,3 +229,10 @@ export function saveFlag(devId: string, flagInfo: FlagUiInfo[]) {
|
|
|
230
229
|
return NativeApi.putJson(devId, featureId, JSON.stringify(flagInfo))
|
|
231
230
|
}
|
|
232
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
|
+
}
|
|
@@ -17,7 +17,7 @@ import { hsv2Hex } from "@ledvance/base/src/utils";
|
|
|
17
17
|
import { SceneNodeTransitionMode } from "@ledvance/ui-biz-bundle/src/modules/scene/SceneInfo";
|
|
18
18
|
import { Result } from "@ledvance/base/src/models/modules/Result";
|
|
19
19
|
import { useDps } from "@ledvance/base/src/models/modules/NativePropsSlice";
|
|
20
|
-
import { WORK_MODE } from "@tuya/tuya-panel-lamp-sdk/lib/utils";
|
|
20
|
+
import { ColorUtils, WORK_MODE } from "@tuya/tuya-panel-lamp-sdk/lib/utils";
|
|
21
21
|
const cx = Utils.RatioUtils.convertX
|
|
22
22
|
|
|
23
23
|
export interface FlagPageProps {
|
|
@@ -59,7 +59,7 @@ const FlagPage = () => {
|
|
|
59
59
|
const flagId = useMemo(() =>{
|
|
60
60
|
if(flagState.colors !== undefined){
|
|
61
61
|
const flag = state.flags.find(item => {
|
|
62
|
-
const hexColors = item.colors.map(c =>
|
|
62
|
+
const hexColors = item.colors.map(c => ColorUtils.hsv2hex(c.h, c.s, c.v).toLocaleUpperCase())
|
|
63
63
|
return isEqual(hexColors, flagState.colors)
|
|
64
64
|
})
|
|
65
65
|
return flag?.id
|
|
@@ -105,7 +105,7 @@ const FlagPage = () => {
|
|
|
105
105
|
})
|
|
106
106
|
}
|
|
107
107
|
state.flags = cloneFlag
|
|
108
|
-
setFlags(cloneFlag)
|
|
108
|
+
setFlags(cloneDeep(cloneFlag))
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -185,7 +185,7 @@ const FlagPage = () => {
|
|
|
185
185
|
<FlatList
|
|
186
186
|
data={state.flags}
|
|
187
187
|
renderItem={({ item }) => <FlagItem
|
|
188
|
-
enable={dps[params.workModeCode] === WORK_MODE.
|
|
188
|
+
enable={dps[params.workModeCode] === (params.isStripLight ? WORK_MODE.Colour : WORK_MODE.Scene) && flagId === item.id}
|
|
189
189
|
title={item.name}
|
|
190
190
|
colors={item.colors.map(item => hsv2Hex(item.h, item.s, item.v))}
|
|
191
191
|
onSwitch={async (enable) => {
|
|
@@ -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 && params.isSupportColor){
|
|
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 && params.isSupportColor){
|
|
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)
|
|
@@ -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 && params.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(
|