@ledvance/ui-biz-bundle 1.0.86 → 1.0.88

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.0.86",
7
+ "version": "1.0.88",
8
8
  "scripts": {},
9
9
  "dependencies": {
10
10
  "@ledvance/base": "^1.x",
@@ -553,6 +553,9 @@ const BiorhythmPage = () => {
553
553
  onPlanEdited,
554
554
  onPlanDelete,
555
555
  minimumEnable,
556
+ iconIdList: state.planList?.map(item => {
557
+ return item.iconId
558
+ }),
556
559
  isMixRGBWLamp: params.isMixRGBWLamp,
557
560
  isSupportTemperature: params.isSupportTemperature,
558
561
  isSupportBrightness: params.isSupportBrightness,
@@ -34,6 +34,15 @@ export interface CycleTimerItem extends CycleTimer {
34
34
  name: string
35
35
  }
36
36
 
37
+ export interface PlugFixedTimer {
38
+ power: boolean;
39
+ channel: number;
40
+ weeks: number[];
41
+ startTime: number;
42
+ endTime: number;
43
+ openTime: number;
44
+ closeTime: number;
45
+ }
37
46
 
38
47
  type UseFixedTimeType = (dpKey: string, disableFeature?: boolean) => [CycleTimerItem[], (fixedTimeList: CycleTimerItem[], manualEdit?: boolean) => Promise<{ success: boolean }>]
39
48
 
@@ -41,7 +41,7 @@ const FantasyMoodPage = () => {
41
41
  const params: FantasyMoodPageProps = {
42
42
  ...routeParams,
43
43
  }
44
- const [sceneId, setScene] = useFantasyScene(params.sceneDpCode, params.workModeDpCode, params.isStringLight)
44
+ const [sceneId, setScene] = useFantasyScene(params.sceneDpCode, params.workModeDpCode, params.switchLedDpCode, params.isStringLight)
45
45
  const [workMode] = useWorkMode(params.workModeDpCode)
46
46
  const deviceInfo = useDeviceInfo()
47
47
  const navigation = useNavigation()
@@ -80,7 +80,7 @@ const FantasyMoodPage = () => {
80
80
  state.flag = Symbol()
81
81
  },
82
82
  })
83
- }, [])
83
+ }, [state.scenes])
84
84
 
85
85
  const getSwitchEnable = useCallback((id: number) => {
86
86
  return state.currentScene?.id === id && workMode === SCENE
@@ -50,7 +50,7 @@ const FantasyMoodEditPage = () => {
50
50
  const moduleParams = params.moduleParams
51
51
  const deviceId = useDeviceId()
52
52
  const [, setWorkMode] = useWorkMode(moduleParams.workModeDpCode)
53
- const [, setFantasyScene] = useFantasyScene(params.moduleParams.sceneDpCode, params.moduleParams.workModeDpCode, moduleParams.isStringLight)
53
+ const [, setFantasyScene] = useFantasyScene(params.moduleParams.sceneDpCode, params.moduleParams.workModeDpCode, params.moduleParams.switchLedDpCode, moduleParams.isStringLight)
54
54
  const role = useRole()
55
55
  const state = useReactive<FantasyMoodEditPageState>({
56
56
  headline: '',
@@ -83,7 +83,7 @@ const FantasyMoodEditPage = () => {
83
83
  }, [])
84
84
 
85
85
  const onPost = useCallback(async (isDelete: boolean) => {
86
- const maxModeObject = maxBy(params.moods, 'mode');
86
+ const maxModeObject = maxBy(params.moods, 'id');
87
87
  const currentMood = {
88
88
  ...state.mood,
89
89
  nodes: state.mood.nodes.map(node => {
@@ -97,8 +97,9 @@ const FantasyMoodEditPage = () => {
97
97
  }
98
98
  return node
99
99
  }),
100
- id: params.mode === 'add' ? maxModeObject && maxModeObject.mode > 200 ? maxModeObject.mode + 1 : 201 : state.mood.id
100
+ id: params.mode === 'add' ? maxModeObject && maxModeObject.id > 200 ? maxModeObject.id + 1 : 201 : state.mood.id
101
101
  }
102
+
102
103
  const list = params.mode === 'add' ? [currentMood,...params.moods] :
103
104
  isDelete ? params.moods.filter(mood => mood.id !== currentMood.id) :
104
105
  params.moods.map(mood => {
@@ -118,7 +119,7 @@ const FantasyMoodEditPage = () => {
118
119
  }
119
120
  navigation.navigate(ui_biz_routerKey.ui_biz_fantasy_mood)
120
121
  routeParams.onSave()
121
- }, [])
122
+ }, [params.moods])
122
123
 
123
124
  const createSelectModeData = useCallback(() => {
124
125
  return Object.values(state.sceneMode).map(scene => {
@@ -1,9 +1,10 @@
1
1
  import React, { PropsWithChildren } from 'react'
2
2
  import { Image, ScrollView, StyleSheet, Text, TouchableOpacity, View, ViewProps } from 'react-native'
3
+ import { useRoute } from '@react-navigation/core'
3
4
  import Page from '@ledvance/base/src/components/Page'
4
5
  import { useDeviceInfo } from '@ledvance/base/src/models/modules/NativePropsSlice'
5
6
  import I18n from '@ledvance/base/src/i18n'
6
- import { PowerBehaviorPageParams, usePowerBehavior } from './powerOnBehaviorActions'
7
+ import { PowerBehaviorPageParams, usePowerBehavior } from './PowerOnBehaviorActions'
7
8
  import { Utils } from 'tuya-panel-kit'
8
9
  import Spacer from '@ledvance/base/src/components/Spacer'
9
10
  import Card from '@ledvance/base/src/components/Card'
@@ -16,10 +17,11 @@ const RELAY_STATUS_OFF = 'off'
16
17
  const RELAY_STATUS_ON = 'on'
17
18
  const RELAY_STATUS_MEMORY = 'memory'
18
19
 
19
- const PowerOnBehaviorPage = (props: PowerBehaviorPageParams) => {
20
+ const PowerOnBehaviorPage = () => {
21
+ const params = useRoute().params as PowerBehaviorPageParams
20
22
  const deviceInfo = useDeviceInfo()
21
- const [powerMemory, setPowerMemory] = usePowerBehavior(props.powerBehaviorCode)
22
-
23
+ const [powerMemory, setPowerMemory] = usePowerBehavior(params.powerBehaviorCode)
24
+
23
25
  const state = useReactive({
24
26
  powerMemory,
25
27
  loading: false,
@@ -29,6 +29,18 @@ export interface RandomTimerItem extends RandomTimer{
29
29
  name: string
30
30
  }
31
31
 
32
+ export interface PlugRandomTimer {
33
+ power: boolean;
34
+ weeks: number[];
35
+ startTime: number;
36
+ endTime: number;
37
+ }
38
+
39
+ export interface PlugRandomTimerItem extends PlugRandomTimer {
40
+ index: number | string
41
+ name: string
42
+ }
43
+
32
44
 
33
45
  type UseFixedTimeType = (dpKey: string, disableFeature?: boolean) => [RandomTimerItem[], (randomTimeList: RandomTimerItem[], manualEdit?: boolean) => Promise<{ success: boolean}>]
34
46
 
@@ -38,7 +50,6 @@ export const useRandomTime : UseFixedTimeType = (dpKey: string, disableFeature?:
38
50
  const [uiData, setUiData] = useState<RandomTimerItem[]>([])
39
51
  const [randomTime, setRandomTime]: [string, (v: string) => Promise<Result<any>>] = useDp(dpKey)
40
52
  const randomTimeList: RandomTimer[] = useMemo(() => RandomTimer.parse(randomTime).nodes, [randomTime])
41
- console.log(RandomTimer.parse(randomTime), '< --- randomTimer')
42
53
  const formatterFn = useCallback(() =>{
43
54
  return randomTimeList.map((item, idx)=>({
44
55
  ...item,
@@ -401,7 +401,7 @@ export function stripObj2Dp(scene: StripSceneInfo, isStringLight: boolean = fals
401
401
  return versionHex + idHex + modeHex + intervalTimeHex + changeTimeHex + optionAHex + optionBHex + optionCHex + nodeHex
402
402
  }
403
403
 
404
- export function useFantasyScene(sceneDp: string, workModeDp: string, isStringLight?: boolean): [number, (scene: StripSceneInfo) => Promise<Result<any>>] {
404
+ export function useFantasyScene(sceneDp: string, workModeDp: string, switchDp: string, isStringLight?: boolean): [number, (scene: StripSceneInfo) => Promise<Result<any>>] {
405
405
  const [dps, setDps]: [any, (v: any) => Promise<Result<any>>] = useDps()
406
406
  const dp = dps[sceneDp]
407
407
  const [sceneState, setSceneState] = useState<StripSceneInfo>(stripDp2Obj(dp, isStringLight))
@@ -414,7 +414,8 @@ export function useFantasyScene(sceneDp: string, workModeDp: string, isStringLig
414
414
  const sceneHex = stripObj2Dp(scene, isStringLight)
415
415
  return setDps({
416
416
  [sceneDp]: sceneHex,
417
- [workModeDp]: SCENE
417
+ [workModeDp]: SCENE,
418
+ [switchDp]: true
418
419
  })
419
420
  }
420
421
  return [sceneState.id, setFantasyScene]
@@ -426,14 +427,14 @@ type LampType = {
426
427
  }
427
428
  export async function getRemoteFantasyScene(featureId: string, devId: string, lampType: LampType) {
428
429
  const res = await NativeApi.getJson(devId, featureId)
429
- const cloudData = Array.isArray(parseJSON(res?.data)) && parseJSON(res?.data) || []
430
- if (res.success && cloudData?.length) {
430
+ const isNormalData = Array.isArray(parseJSON(res?.data))
431
+ if (res.success && isNormalData) {
431
432
  return {
432
433
  success: true,
433
434
  data: JSON.parse(res.data)?.map(item => remoteFantasySceneInfo2SceneUIState(item, lampType.isStringLight)),
434
435
  }
435
436
  } else {
436
- if (res.msg?.includes('资源未找到') || cloudData?.length === 0) {
437
+ if (res.msg?.includes('资源未找到') || !isNormalData) {
437
438
  const defaultScene = getDefFantasyScene(lampType)
438
439
  const res = await NativeApi.putJson(devId, featureId, JSON.stringify(defaultScene))
439
440
  if (res.success) {
@@ -126,19 +126,19 @@ const SleepWakeUpDetailPage = () => {
126
126
  }, [])
127
127
 
128
128
  useUpdateEffect(() => {
129
- const min = state.fadeOutHour === '02' ? '00' : (state.fadeOutHour === '00' && state.fadeOutMinute === '00' && '05') || state.fadeOutMinute
129
+ const min = state.fadeOutHour === '02' ? '00' : (state.fadeOutHour === '00' && state.fadeOutMinute === '00') ? '05' : state.fadeOutMinute
130
130
  state.fadeOutMinute = min
131
131
  state.fadeOut = (Number(state.fadeOutHour) * 60) + Number(min)
132
132
  }, [state.fadeOutHour, state.fadeOutMinute])
133
133
 
134
134
  useUpdateEffect(() => {
135
- const min = state.fadeInHour === '02' ? '00' : (state.fadeInHour === '00' && state.fadeInMinute === '00' && '05') || state.fadeInMinute
135
+ const min = state.fadeInHour === '02' ? '00' : (state.fadeInHour === '00' && state.fadeInMinute === '00') ? '05' : state.fadeInMinute
136
136
  state.fadeInMinute = min
137
137
  state.fadeIn = (Number(state.fadeInHour) * 60) + Number(min)
138
138
  }, [state.fadeInHour, state.fadeInMinute])
139
139
 
140
140
  useUpdateEffect(() => {
141
- const min = state.durationHour === '02' ? '00' : (state.durationHour === '00' && state.durationMinute === '00' && '05') || state.durationMinute
141
+ const min = state.durationHour === '02' ? '00' : (state.durationHour === '00' && state.durationMinute === '00') ? '05' : state.durationMinute
142
142
  state.durationMinute = min
143
143
  state.duration = (Number(state.durationHour) * 60) + Number(min)
144
144
  }, [state.durationHour, state.durationMinute])
@@ -386,7 +386,7 @@ const SleepWakeUpDetailPage = () => {
386
386
  <LdvPickerView
387
387
  style={styles.picker}
388
388
  hour={props.isSleep ? state.fadeOutHour : state.fadeInHour}
389
- minute={props.isSleep ? state.fadeOutMinute : state.fadeOutMinute}
389
+ minute={props.isSleep ? state.fadeOutMinute : state.fadeInMinute}
390
390
  minutesStep={5}
391
391
  setHour={v => {
392
392
  if (props.isSleep) {
@@ -403,6 +403,7 @@ const SleepWakeUpDetailPage = () => {
403
403
  }
404
404
  }}
405
405
  unit={['h', 'min']}
406
+ maxHour={3}
406
407
  />
407
408
  <Text>{I18n.formatValue(props.isSleep ? 'add_sleepschedule_one_source_settings_text2' : 'add_wakeupschedule_settings_text2', `${formateTime(props.isSleep ? state.fadeOut : state.fadeIn, props.isSleep)}`)}</Text>
408
409
  <Spacer />
@@ -435,6 +436,7 @@ const SleepWakeUpDetailPage = () => {
435
436
  setHour={v => (state.durationHour = v)}
436
437
  setMinute={v => (state.durationMinute = v)}
437
438
  unit={['h', 'min']}
439
+ maxHour={3}
438
440
  />
439
441
  <Text>{I18n.formatValue('add_wakeupschedule_settings_text5', `${formateTime(state.duration, !props.isSleep)}`)}</Text>
440
442
  <Spacer />
@@ -99,13 +99,21 @@ const TimeSchedulePage = () => {
99
99
  }, [state.timeScheduleList])
100
100
 
101
101
  const getTimerScheduleList = async () => {
102
- const res: any = await NativeApi.timerList(deviceInfo.devId)
103
- if (res.result && res.value) {
102
+ // const res: any = await NativeApi.timerList(deviceInfo.devId)
103
+ const res: any = await NativeApi.getAllTaskTimer(deviceInfo.devId)
104
+ if (res.success && res.data) {
104
105
  // 原生传过来的dps是json字符串。
105
- const originList = res.value.map((item: any) => {
106
+ const originList = res.data.map((item: any) => {
106
107
  return {
107
- ...item,
108
- dps: JSON.parse(item.dps),
108
+ aliasName: item.remark,
109
+ status: !!item.mStatus,
110
+ id: item.mTimerId,
111
+ groupId: item.mTimerId,
112
+ loops: item.mLoops,
113
+ date: item.mDate,
114
+ time: item.mTime,
115
+ isAppPush: item.isAppPush ? 1 : 0,
116
+ dps: JSON.parse(item.mValue),
109
117
  }
110
118
  })
111
119
  state.timeScheduleList = originList