@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
|
@@ -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
|
-
|
|
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
|
-
<
|
|
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
|
-
|
|
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
|
)
|