@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 CHANGED
@@ -4,7 +4,7 @@
4
4
  "name": "@ledvance/ui-biz-bundle",
5
5
  "pid": [],
6
6
  "uiid": "",
7
- "version": "1.1.13",
7
+ "version": "1.1.15",
8
8
  "scripts": {},
9
9
  "dependencies": {
10
10
  "@ledvance/base": "^1.x",
@@ -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
+ }
@@ -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),
@@ -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.Colour : WORK_MODE.Scene) && flagId === item.id}
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, 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){
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){
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)
@@ -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(