@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
@@ -4,7 +4,7 @@
4
4
  "name": "@ledvance/ui-biz-bundle",
5
5
  "pid": [],
6
6
  "uiid": "",
7
- "version": "1.1.11",
7
+ "version": "1.1.13",
8
8
  "scripts": {},
9
9
  "dependencies": {
10
10
  "@ledvance/base": "^1.x",
@@ -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 => hsv2Hex(item.h, item.s, item.v)))
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, mapFloatToRange } from '@ledvance/base/src/utils'
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 = Math.round(mapFloatToRange(state.currentNode.s / 100, 30, 100))
64
- return hsv2Hex(state.currentNode.h, s, 100)
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: [] as FlagUiInfo[],
55
- moods: [] as any[]
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 => hsv2Hex(c.h, c.s, c.v).toLocaleUpperCase())
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
- getRemoteFlagInfo().then()
75
- if(params.getRemoteMoodList){
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.SCENE && flagId === item.id}
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) => {