@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 CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "@ledvance/ui-biz-bundle",
5
5
  "pid": [],
6
6
  "uiid": "",
7
- "version": "1.1.12",
7
+ "version": "1.1.14",
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 })
@@ -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
+ }
@@ -394,6 +394,8 @@ const styles = StyleSheet.create({
394
394
  flex: 1,
395
395
  height: cx(40),
396
396
  borderRadius: cx(8),
397
+ borderWidth: 1,
398
+ borderColor: '#ccc'
397
399
  },
398
400
  nodeDeleteBtn: {
399
401
  width: cx(24),
@@ -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 => hsv2Hex(c.h, c.s, c.v).toLocaleUpperCase())
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.SCENE && flagId === item.id}
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, useRole} from '@ledvance/base/src/models/modules/NativePropsSlice'
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 [, setFantasyScene] = useFantasyScene(params.moduleParams.sceneDpCode, params.moduleParams.workModeDpCode, params.moduleParams.switchLedDpCode, moduleParams.isStringLight)
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 && workMode === SCENE) {
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(