@ledvance/group-ui-biz-bundle 1.0.10 → 1.0.12

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/group-ui-biz-bundle",
5
5
  "pid": [],
6
6
  "uiid": "",
7
- "version": "1.0.10",
7
+ "version": "1.0.12",
8
8
  "scripts": {},
9
9
  "dependencies": {
10
10
  "@ledvance/base": "^1.x",
@@ -1,4 +1,5 @@
1
1
  import I18n from "@ledvance/base/src/i18n";
2
+ import res from "@ledvance/base/src/res";
2
3
  import { SceneNodeTransitionMode } from "../mood/SceneInfo";
3
4
 
4
5
  type HSV = {
@@ -19,8 +20,7 @@ export interface FlagItemInfo {
19
20
  speed: number
20
21
  colors: HSV[]
21
22
  whiteColors: BT []
22
- fanEnable?: boolean
23
- fanSpeed?: number
23
+ icon?: number | string
24
24
  }
25
25
 
26
26
  export interface FlagUiInfo extends FlagItemInfo{
@@ -301,6 +301,7 @@ export const defFlagList: FlagUiInfo[] = [
301
301
  mode: SceneNodeTransitionMode.Jump,
302
302
  speed: 70,
303
303
  name: I18n.getLang('flag_leverkusen'),
304
+ icon: res.leverkusen_icon,
304
305
  whiteColors: [
305
306
  { brightness: 100, colorTemp: 0},
306
307
  ],
@@ -1,4 +1,4 @@
1
- import { StyleSheet, View, Text, ViewStyle } from 'react-native'
1
+ import { StyleSheet, View, Text, ViewStyle, Image } from 'react-native'
2
2
  import React from 'react'
3
3
  import Card from '@ledvance/base/src/components/Card'
4
4
  import { SwitchButton, Utils } from 'tuya-panel-kit'
@@ -11,12 +11,15 @@ interface RecommendMoodItemProps {
11
11
  enable: boolean
12
12
  title: string
13
13
  colors: string[]
14
+ icon?: number | string
14
15
  style?: ViewStyle
15
16
  onPress?: () => void
16
17
  onSwitch: (enable: boolean) => void
17
18
  }
18
19
 
19
20
  export default function FlagItem(props: RecommendMoodItemProps) {
21
+ const icon = typeof props.icon === 'number' ? props.icon : { uri: props.icon }
22
+
20
23
  return (
21
24
  <Card
22
25
  style={[styles.card, props.style]}
@@ -24,7 +27,10 @@ export default function FlagItem(props: RecommendMoodItemProps) {
24
27
  <View>
25
28
  <Spacer height={cx(16)} />
26
29
  <View style={styles.headline}>
27
- <Text style={styles.headText}>{props.title}</Text>
30
+ <View style={{ flexDirection: 'row', flex: 1, paddingRight: cx(5), justifyContent: 'flex-start' }}>
31
+ <Text style={styles.headText}>{props.title}</Text>
32
+ {props.icon && <Image source={icon} style={{ width: cx(60), aspectRatio: 2.14, marginRight: cx(10) }} />}
33
+ </View>
28
34
  <SwitchButton
29
35
  thumbStyle={{ elevation: 0 }}
30
36
  value={props.enable}
@@ -50,13 +56,14 @@ const styles = StyleSheet.create({
50
56
  headline: {
51
57
  flexDirection: 'row',
52
58
  marginHorizontal: cx(16),
59
+ justifyContent: 'space-between',
53
60
  },
54
61
  headText: {
55
- flex: 1,
56
62
  color: '#000',
57
63
  fontSize: cx(16),
58
64
  fontFamily: 'helvetica_neue_lt_std_bd',
59
65
  lineHeight: cx(20),
66
+ flex: 1
60
67
  },
61
68
  gradientItem: {
62
69
  alignItems: 'center',
@@ -1,12 +1,12 @@
1
1
  import React, { useEffect, useMemo } from "react";
2
2
  import Page from "@ledvance/base/src/components/Page";
3
- import { useDeviceInfo, useFlags, useMoods, useUAGroupInfo } from "@ledvance/base/src/models/modules/NativePropsSlice";
3
+ import { useDeviceInfo, useFlagMode, useFlags, useMoods, useUAGroupInfo } 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 } from "ahooks";
@@ -42,6 +42,7 @@ const FlagPage = () => {
42
42
  const navigation = useNavigation()
43
43
  const [moods, setMoods] = useMoods()
44
44
  const [flags, setFlags] = useFlags()
45
+ const [flagMode, setFlagMode] = useFlagMode()
45
46
  const [flagState, setFlag] = useFlag({
46
47
  isStripLight: params.isStripLight,
47
48
  isStringLight: params.isStringLight,
@@ -81,10 +82,6 @@ const FlagPage = () => {
81
82
  return -1
82
83
  }, [JSON.stringify(flagState), JSON.stringify(state.flags)])
83
84
 
84
- useEffect(() =>{
85
- console.log(flagState, '< --- flagstate')
86
- console.log(state.flags, '< --- state.flags')
87
- }, [flagState, JSON.stringify(state.flags)])
88
85
  useEffect(() => {
89
86
  if(!flags?.length){
90
87
  getRemoteFlagInfo().then()
@@ -129,7 +126,6 @@ const FlagPage = () => {
129
126
  const checkedMood: FlagUiInfo = {
130
127
  ...currentMood,
131
128
  }
132
-
133
129
  let newScene: FlagUiInfo[] = []
134
130
  if (mode === 'add') {
135
131
  newScene = [
@@ -156,6 +152,7 @@ const FlagPage = () => {
156
152
  success: true
157
153
  }
158
154
  }
155
+ updateFlagMode()
159
156
  return setFlag({
160
157
  ...defParams,
161
158
  flag: cloneDeep(mood)
@@ -166,6 +163,13 @@ const FlagPage = () => {
166
163
  }
167
164
  }
168
165
 
166
+ const updateFlagMode = () =>{
167
+ if(!flagMode){
168
+ saveFlagMode(uaGroupInfo.tyGroupId.toString(), JSON.stringify(true)).then()
169
+ setFlagMode(true)
170
+ }
171
+ }
172
+
169
173
  return (
170
174
  <Page
171
175
  headlineText={I18n.getLang('Feature_devicepanel_flags')}
@@ -189,6 +193,7 @@ const FlagPage = () => {
189
193
  renderItem={({ item }) => <FlagItem
190
194
  enable={flagState?.workMode === (params.isStripLight ? WorkMode.Colour : WorkMode.Scene) && flagId === item.id}
191
195
  title={item.name}
196
+ icon={item.icon}
192
197
  colors={item.colors.map(item => hsv2Hex(item.h, item.s, item.v))}
193
198
  onSwitch={async (enable) => {
194
199
  if (enable) {
@@ -196,6 +201,7 @@ const FlagPage = () => {
196
201
  ...defParams,
197
202
  flag: cloneDeep(item),
198
203
  })
204
+ updateFlagMode()
199
205
  }
200
206
  }}
201
207
  onPress={() => {
@@ -80,6 +80,7 @@ const AddMoodPage = () => {
80
80
  routeParams.isStatic,
81
81
  moduleParams
82
82
  ) : recommendMood2SceneUIState(item),
83
+ moods: routeParams.moods,
83
84
  moduleParams,
84
85
  modDeleteMood: routeParams.modDeleteMood
85
86
  })
@@ -93,6 +94,7 @@ const AddMoodPage = () => {
93
94
  routeParams.isStatic,
94
95
  moduleParams
95
96
  ) : recommendMood2SceneUIState(item),
97
+ moods: routeParams.moods,
96
98
  moduleParams,
97
99
  modDeleteMood: routeParams.modDeleteMood
98
100
  })
@@ -823,4 +825,4 @@ function getRecommendMoods(
823
825
  },
824
826
  ]
825
827
  }
826
- }
828
+ }
@@ -173,10 +173,7 @@ const MoodPage = () => {
173
173
  if (res.success) {
174
174
  state.scenes = cloneDeep(newScene)
175
175
  setMoods(cloneDeep(newScene))
176
- if(flagMode && params.isSupportColor){
177
- saveFlagMode(uaGroupInfo.tyGroupId.toString(), JSON.stringify(false)).then()
178
- setFlagMode(false)
179
- }
176
+ updateFlagMode()
180
177
  if(mode === 'del' && currentMood.id !== scene?.scene?.id){
181
178
  return {
182
179
  success: true
@@ -195,6 +192,13 @@ const MoodPage = () => {
195
192
  }
196
193
  }
197
194
 
195
+ const updateFlagMode = () =>{
196
+ if(flagMode && params.isSupportColor){
197
+ saveFlagMode(uaGroupInfo.tyGroupId.toString(), JSON.stringify(false)).then()
198
+ setFlagMode(false)
199
+ }
200
+ }
201
+
198
202
  const onAddMoodDialogItemClick = useCallback((isStatic: boolean, _: number) => {
199
203
  if (!!state.scenes) {
200
204
  navigationRoute(isStatic, 'add')
@@ -277,6 +281,7 @@ const MoodPage = () => {
277
281
  workMode: WorkMode.Scene,
278
282
  switchLedDpCode: params.switchLedDpCode
279
283
  })
284
+ updateFlagMode()
280
285
  state.loading = false
281
286
  }} />
282
287
  )