@ledvance/ui-biz-bundle 1.1.11 → 1.1.13
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
|
@@ -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 })
|
|
@@ -11,7 +11,7 @@ import TextField from '@ledvance/base/src/components/TextField'
|
|
|
11
11
|
import Card from '@ledvance/base/src/components/Card'
|
|
12
12
|
import LdvSlider from '@ledvance/base/src/components/ldvSlider'
|
|
13
13
|
import TextButton from '@ledvance/base/src/components/TextButton'
|
|
14
|
-
import { hex2Hsv, hsv2Hex
|
|
14
|
+
import { hex2Hsv, hsv2Hex } from '@ledvance/base/src/utils'
|
|
15
15
|
import { cloneDeep, find, isEqual } from 'lodash'
|
|
16
16
|
import { FlagUiInfo } from './FlagInfo'
|
|
17
17
|
import ColorAdjustView from '@ledvance/base/src/components/ColorAdjustView'
|
|
@@ -60,8 +60,8 @@ const FlagEditPage = () => {
|
|
|
60
60
|
if(isMainLight){
|
|
61
61
|
return cctToColor(state.currentWhiteNode.colorTemp, Math.max(...[state.currentWhiteNode.brightness, 50]))
|
|
62
62
|
}
|
|
63
|
-
const s =
|
|
64
|
-
return hsv2Hex(
|
|
63
|
+
const { h, s, v} = state.currentNode
|
|
64
|
+
return hsv2Hex(h, s, v)
|
|
65
65
|
}, [state.currentNode, state.currentWhiteNode])
|
|
66
66
|
|
|
67
67
|
const nameRepeat = useMemo(() => {
|
|
@@ -162,7 +162,6 @@ const FlagEditPage = () => {
|
|
|
162
162
|
<Text style={styles.light}>
|
|
163
163
|
{I18n.getLang(params.moduleParams.isSupportMixScene ? 'light_sources_tile_sec_lighting_headline' : 'light_sources_tile_tw_lighting_headline')}
|
|
164
164
|
</Text>
|
|
165
|
-
<View style={[styles.preview, { backgroundColor: getColorBlockColor() }]} />
|
|
166
165
|
</View>
|
|
167
166
|
<Spacer height={cx(10)} />
|
|
168
167
|
<LdvSlider
|
|
@@ -274,6 +273,7 @@ const FlagEditPage = () => {
|
|
|
274
273
|
s={state.currentNode.s}
|
|
275
274
|
v={state.currentNode.v}
|
|
276
275
|
reserveSV={true}
|
|
276
|
+
minBrightness={0}
|
|
277
277
|
onHSVChange={(h, s, v) => {
|
|
278
278
|
if (state.colorPaintBucketSelected) {
|
|
279
279
|
state.mood.colors = state.mood.colors.map(() => (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useMemo } from "react";
|
|
2
2
|
import Page from "@ledvance/base/src/components/Page";
|
|
3
|
-
import { useDeviceId, useDeviceInfo } from "@ledvance/base/src/models/modules/NativePropsSlice";
|
|
3
|
+
import { useDeviceId, useDeviceInfo, 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";
|
|
@@ -9,7 +9,7 @@ import { FlagUiInfo } from "./FlagInfo";
|
|
|
9
9
|
import { getRemoteFlag, saveFlag, useFlag } from "./FlagActions";
|
|
10
10
|
import { useRoute, useNavigation } from '@react-navigation/core'
|
|
11
11
|
import I18n from "@ledvance/base/src/i18n";
|
|
12
|
-
import { useReactive } from "ahooks";
|
|
12
|
+
import { useReactive, useUpdateEffect } from "ahooks";
|
|
13
13
|
import { cloneDeep, difference, isEqual, last, map, range } from "lodash";
|
|
14
14
|
import { ui_biz_routerKey} from "../../navigation/Routers";
|
|
15
15
|
import res from "@ledvance/base/src/res";
|
|
@@ -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 {
|
|
@@ -44,6 +44,8 @@ const FlagPage = () => {
|
|
|
44
44
|
const devId = useDeviceId()
|
|
45
45
|
const navigation = useNavigation()
|
|
46
46
|
const [dps, setDps] = useDps()
|
|
47
|
+
const [moods, setMoods] = useMoods()
|
|
48
|
+
const [flags, setFlags] = useFlags()
|
|
47
49
|
const [flagState, setFlag] = useFlag((params.isStripLight ? params?.drawToolLight?.drawToolCode : params.sceneDataCode)!!, {
|
|
48
50
|
isMixLight: params.isSupportMixScene,
|
|
49
51
|
isStringLight: params.isStringLight,
|
|
@@ -51,13 +53,13 @@ const FlagPage = () => {
|
|
|
51
53
|
})
|
|
52
54
|
const state = useReactive({
|
|
53
55
|
loading: true,
|
|
54
|
-
flags:
|
|
55
|
-
moods: []
|
|
56
|
+
flags: cloneDeep(flags) as FlagUiInfo[],
|
|
57
|
+
moods: params.isStripLight ? [] : cloneDeep(moods)
|
|
56
58
|
})
|
|
57
59
|
const flagId = useMemo(() =>{
|
|
58
60
|
if(flagState.colors !== undefined){
|
|
59
61
|
const flag = state.flags.find(item => {
|
|
60
|
-
const hexColors = item.colors.map(c =>
|
|
62
|
+
const hexColors = item.colors.map(c => ColorUtils.hsv2hex(c.h, c.s, c.v).toLocaleUpperCase())
|
|
61
63
|
return isEqual(hexColors, flagState.colors)
|
|
62
64
|
})
|
|
63
65
|
return flag?.id
|
|
@@ -71,16 +73,27 @@ const FlagPage = () => {
|
|
|
71
73
|
|
|
72
74
|
useEffect(() => {
|
|
73
75
|
if(!devId) return
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
if(!flags?.length){
|
|
77
|
+
getRemoteFlagInfo().then()
|
|
78
|
+
}
|
|
79
|
+
if(params.getRemoteMoodList && !moods?.length){
|
|
76
80
|
params.getRemoteMoodList(devId).then(res =>{
|
|
77
81
|
if(res.success && Array.isArray(res.data)){
|
|
78
82
|
state.moods = res.data
|
|
83
|
+
setMoods(cloneDeep(res.data))
|
|
79
84
|
}
|
|
80
85
|
})
|
|
81
86
|
}
|
|
82
87
|
}, [devId])
|
|
83
88
|
|
|
89
|
+
useUpdateEffect(() =>{
|
|
90
|
+
state.moods = params.isStripLight ? [] : cloneDeep(moods)
|
|
91
|
+
}, [JSON.stringify(moods)])
|
|
92
|
+
|
|
93
|
+
useUpdateEffect(() =>{
|
|
94
|
+
state.flags = cloneDeep(flags)
|
|
95
|
+
}, [JSON.stringify(flags)])
|
|
96
|
+
|
|
84
97
|
const getRemoteFlagInfo = async () => {
|
|
85
98
|
const res = await getRemoteFlag(devId)
|
|
86
99
|
if (res.success) {
|
|
@@ -92,6 +105,7 @@ const FlagPage = () => {
|
|
|
92
105
|
})
|
|
93
106
|
}
|
|
94
107
|
state.flags = cloneFlag
|
|
108
|
+
setFlags(cloneDeep(cloneFlag))
|
|
95
109
|
}
|
|
96
110
|
}
|
|
97
111
|
|
|
@@ -131,6 +145,7 @@ const FlagPage = () => {
|
|
|
131
145
|
const res = await saveFlag(devId, cloneDeep(newScene))
|
|
132
146
|
if (res.success) {
|
|
133
147
|
state.flags = cloneDeep(newScene)
|
|
148
|
+
setFlags(cloneDeep(newScene))
|
|
134
149
|
if(mode === 'del' && currentMood.id !== flagState.id){
|
|
135
150
|
return {
|
|
136
151
|
success: true
|
|
@@ -170,7 +185,7 @@ const FlagPage = () => {
|
|
|
170
185
|
<FlatList
|
|
171
186
|
data={state.flags}
|
|
172
187
|
renderItem={({ item }) => <FlagItem
|
|
173
|
-
enable={dps[params.workModeCode] === WORK_MODE.
|
|
188
|
+
enable={dps[params.workModeCode] === (params.isStripLight ? WORK_MODE.Colour : WORK_MODE.Scene) && flagId === item.id}
|
|
174
189
|
title={item.name}
|
|
175
190
|
colors={item.colors.map(item => hsv2Hex(item.h, item.s, item.v))}
|
|
176
191
|
onSwitch={async (enable) => {
|