@ledvance/group-ui-biz-bundle 1.0.78 → 1.0.80
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 +1 -1
- package/src/modules/biorhythm/BiorhythmDetailPage.tsx +55 -53
- package/src/modules/biorhythm/BiorhythmPage.tsx +91 -89
- package/src/modules/biorhythm/IconSelect.tsx +5 -4
- package/src/modules/childLock/ChildLockPage.tsx +2 -2
- package/src/modules/energyConsumption/component/EnergyModal.tsx +2 -2
- package/src/modules/fixedTimingForLight/FixedTimingForLightDetailPage.tsx +66 -87
- package/src/modules/fixedTimingForLight/FixedTimingForLightPage.tsx +49 -58
- package/src/modules/fixedTimingForLight/ItemCard.tsx +29 -26
- package/src/modules/fixedTimingForLight/Summary.tsx +62 -58
- package/src/modules/mood_new/DynamicMoodEditorPage.tsx +102 -99
- package/src/modules/mood_new/RecommendMoodItem.tsx +28 -25
- package/src/modules/overchargeSwitch/OverchargeSwitchPage.tsx +0 -17
- package/src/modules/remoteSwitch/RemoteSwitchPage.tsx +38 -36
- package/src/modules/sleepWakeUp/SleepWakeUpDetailPage.tsx +9 -5
- package/src/modules/timeSchedule/TimeScheduleDetailPage.tsx +1 -1
- package/src/modules/timeSchedule/components/ManuaSettings.tsx +1 -0
- package/src/modules/timer/TimerAction.ts +2 -1
|
@@ -24,6 +24,7 @@ import LdvPickerView from "@ledvance/base/src/components/ldvPickerView";
|
|
|
24
24
|
|
|
25
25
|
const {parseTimer} = Utils.TimeUtils
|
|
26
26
|
const {convertX: cx} = Utils.RatioUtils;
|
|
27
|
+
const { withTheme } = Utils.ThemeUtils
|
|
27
28
|
|
|
28
29
|
interface FixedTimeDetailParam extends FixedTimingParam {
|
|
29
30
|
mode: 'add' | 'edit',
|
|
@@ -52,7 +53,7 @@ const newFixedTimingItem = (): FixedTimingItem => {
|
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
const FixedTimingForLightDetailPage = () => {
|
|
56
|
+
const FixedTimingForLightDetailPage = (props: { theme?: any }) => {
|
|
56
57
|
const navigation = useNavigation()
|
|
57
58
|
const params = useRoute().params as FixedTimeDetailParam
|
|
58
59
|
const initItem = newFixedTimingItem();
|
|
@@ -156,6 +157,50 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
156
157
|
}
|
|
157
158
|
})
|
|
158
159
|
}
|
|
160
|
+
|
|
161
|
+
const styles = StyleSheet.create({
|
|
162
|
+
cardContainer: {
|
|
163
|
+
marginHorizontal: cx(24)
|
|
164
|
+
},
|
|
165
|
+
itemTitle: {
|
|
166
|
+
color: props.theme.global.fontColor,
|
|
167
|
+
fontSize: cx(16),
|
|
168
|
+
fontWeight: 'bold',
|
|
169
|
+
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
170
|
+
},
|
|
171
|
+
applyContent: {
|
|
172
|
+
backgroundColor: props.theme.container.background,
|
|
173
|
+
borderRadius: 4,
|
|
174
|
+
minHeight: cx(55),
|
|
175
|
+
flex: 1,
|
|
176
|
+
justifyContent: 'center',
|
|
177
|
+
paddingHorizontal: cx(10),
|
|
178
|
+
paddingTop: cx(10)
|
|
179
|
+
},
|
|
180
|
+
applyItem: {
|
|
181
|
+
paddingLeft: cx(5),
|
|
182
|
+
flexDirection: 'row',
|
|
183
|
+
justifyContent: 'space-between',
|
|
184
|
+
alignItems: 'center',
|
|
185
|
+
backgroundColor: props.theme.global.background,
|
|
186
|
+
height: cx(35),
|
|
187
|
+
},
|
|
188
|
+
rightTitle: {
|
|
189
|
+
color: props.theme.tag.fontColor,
|
|
190
|
+
paddingLeft: cx(12),
|
|
191
|
+
paddingRight: cx(12),
|
|
192
|
+
fontSize: cx(10),
|
|
193
|
+
textAlign: 'center',
|
|
194
|
+
alignSelf: 'flex-start'
|
|
195
|
+
},
|
|
196
|
+
filletCorner: {
|
|
197
|
+
flexDirection: 'row',
|
|
198
|
+
backgroundColor: props.theme.tag.background,
|
|
199
|
+
borderRadius: cx(16),
|
|
200
|
+
alignSelf: 'flex-start'
|
|
201
|
+
}
|
|
202
|
+
})
|
|
203
|
+
|
|
159
204
|
return (
|
|
160
205
|
<Page
|
|
161
206
|
backText={I18n.getLang('fixedTimeCycle_socket_headline')}
|
|
@@ -185,7 +230,8 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
185
230
|
{/* pick */}
|
|
186
231
|
<TimerPicker
|
|
187
232
|
itemTextColor='#aeadb5'
|
|
188
|
-
style={{paddingVertical: cx(0), marginVertical: cx(0)}}
|
|
233
|
+
style={{ paddingVertical: cx(0), marginVertical: cx(0), backgroundColor: props.theme.global.background }}
|
|
234
|
+
pickerFontColor={props.theme.global.fontColor}
|
|
189
235
|
is12Hours={!params.is24Hour}
|
|
190
236
|
startTime={state.item.startTime}
|
|
191
237
|
endTime={state.item.endTime}
|
|
@@ -201,7 +247,9 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
201
247
|
state.item.weeks[rawIndex] = state.item.weeks[rawIndex] === 1 ? 0 : 1
|
|
202
248
|
}}/>
|
|
203
249
|
<Spacer/>
|
|
204
|
-
<Text style={styles.cardContainer
|
|
250
|
+
<Text style={{ ...styles.cardContainer, color: props.theme.global.fontColor, fontSize: cx(14) }}>
|
|
251
|
+
{loopText(state.item.weeks, parseTimer(state.item.endTime * 60))}
|
|
252
|
+
</Text>
|
|
205
253
|
<Spacer/>
|
|
206
254
|
{/*Apply for */}
|
|
207
255
|
<View style={styles.cardContainer}>
|
|
@@ -209,15 +257,17 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
209
257
|
<Spacer height={cx(10)}/>
|
|
210
258
|
<View style={styles.applyContent}>
|
|
211
259
|
{state.item.channel === undefined ?
|
|
212
|
-
<Text
|
|
260
|
+
<Text style={{color: props.theme.global.fontColor}}>
|
|
261
|
+
{I18n.getLang('timer_ceiling_fan_selectionfield_no_components_text')}
|
|
262
|
+
</Text> :
|
|
213
263
|
<View style={[styles.applyItem, {marginBottom: cx(10), borderRadius: 4}]}>
|
|
214
|
-
<Text style={{color:
|
|
264
|
+
<Text style={{color: props.theme.global.fontColor}}>{params.channels[state.item.channel]}</Text>
|
|
215
265
|
{params.channels.length > 1 && <TouchableOpacity
|
|
216
266
|
onPress={() => {
|
|
217
267
|
state.item.channel = undefined
|
|
218
268
|
}}
|
|
219
269
|
style={{paddingHorizontal: cx(5)}}>
|
|
220
|
-
<Image style={{width: cx(16), height: cx(16)}} source={res.ic_arrows_nav_clear}/>
|
|
270
|
+
<Image style={{width: cx(16), height: cx(16), tintColor: props.theme.global.fontColor}} source={res.ic_arrows_nav_clear}/>
|
|
221
271
|
</TouchableOpacity>}
|
|
222
272
|
</View>
|
|
223
273
|
}
|
|
@@ -234,8 +284,8 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
234
284
|
state.item.channel = index
|
|
235
285
|
}}
|
|
236
286
|
>
|
|
237
|
-
<Text style={{color:
|
|
238
|
-
<Image style={{width: cx(16), height: cx(16)}} source={res.device_panel_timer_add}/>
|
|
287
|
+
<Text style={{color: props.theme.global.fontColor}}>{item}</Text>
|
|
288
|
+
<Image style={{width: cx(16), height: cx(16), tintColor: props.theme.global.fontColor}} source={res.device_panel_timer_add}/>
|
|
239
289
|
</TouchableOpacity>
|
|
240
290
|
)
|
|
241
291
|
})}
|
|
@@ -248,7 +298,7 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
248
298
|
<Card>
|
|
249
299
|
<LdvSwitch
|
|
250
300
|
title={I18n.getLang('light_sources_tile_tw_lighting_headline')}
|
|
251
|
-
color={
|
|
301
|
+
color={props.theme.card.background}
|
|
252
302
|
colorAlpha={1}
|
|
253
303
|
enable={true}
|
|
254
304
|
setEnable={() => { }}
|
|
@@ -293,11 +343,11 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
293
343
|
<View style={styles.cardContainer}>
|
|
294
344
|
<Text style={styles.itemTitle}>{I18n.getLang('timeschedule_add_schedule_subheadline4_text')}</Text>
|
|
295
345
|
{!isTimeEffective && <View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
|
296
|
-
<Image style={{ width: cx(16), height: cx(16), tintColor:
|
|
297
|
-
<Text style={{ fontSize: cx(12), color:
|
|
346
|
+
<Image style={{ width: cx(16), height: cx(16), tintColor: props.theme.global.warning }} source={res.ic_warning_amber} />
|
|
347
|
+
<Text style={{ fontSize: cx(12), color: props.theme.global.warning }}>{I18n.getLang('addTimeCycle_warning_text')}</Text>
|
|
298
348
|
</View>}
|
|
299
349
|
<View >
|
|
300
|
-
<Text style={{ color:
|
|
350
|
+
<Text style={{ color: props.theme.global.fontColor, marginVertical: cx(10) }}>{I18n.getLang('addTimeCycle_settings_sec_text')}</Text>
|
|
301
351
|
<LdvPickerView
|
|
302
352
|
hour={state.onHour}
|
|
303
353
|
minute={state.onMinute}
|
|
@@ -307,7 +357,7 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
307
357
|
/>
|
|
308
358
|
</View>
|
|
309
359
|
<View>
|
|
310
|
-
<Text style={{ color:
|
|
360
|
+
<Text style={{ color: props.theme.global.fontColor, marginVertical: cx(10) }}>{I18n.getLang('addTimeCycle_settings_sec_text2')}</Text>
|
|
311
361
|
<LdvPickerView
|
|
312
362
|
hour={state.offHour}
|
|
313
363
|
minute={state.offMinute}
|
|
@@ -329,7 +379,7 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
329
379
|
actions={<View style={{ flex: 1 }}>
|
|
330
380
|
<>
|
|
331
381
|
<View>
|
|
332
|
-
<Text style={{ fontSize: cx(12), color:
|
|
382
|
+
<Text style={{ fontSize: cx(12), color: props.theme.global.fontColor }}>
|
|
333
383
|
{I18n.formatValue('feature_summary_action_txt_4', `${Number(state.onHour)}`, `${Number(state.onMinute)}`)}
|
|
334
384
|
</Text>
|
|
335
385
|
</View>
|
|
@@ -341,7 +391,7 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
341
391
|
</>
|
|
342
392
|
<>
|
|
343
393
|
<View>
|
|
344
|
-
<Text style={{ fontSize: cx(12), color:
|
|
394
|
+
<Text style={{ fontSize: cx(12), color: props.theme.global.fontColor }}>
|
|
345
395
|
{I18n.formatValue('feature_summary_action_txt_6', `${Number(state.offHour)}`, `${Number(state.offMinute)}`)}
|
|
346
396
|
</Text>
|
|
347
397
|
</View>
|
|
@@ -367,75 +417,4 @@ const FixedTimingForLightDetailPage = () => {
|
|
|
367
417
|
)
|
|
368
418
|
}
|
|
369
419
|
|
|
370
|
-
|
|
371
|
-
cardContainer: {
|
|
372
|
-
marginHorizontal: cx(24)
|
|
373
|
-
},
|
|
374
|
-
itemTitle: {
|
|
375
|
-
color: '#000',
|
|
376
|
-
fontSize: cx(16),
|
|
377
|
-
fontWeight: 'bold',
|
|
378
|
-
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
379
|
-
},
|
|
380
|
-
applyContent: {
|
|
381
|
-
backgroundColor: '#f6f6f6',
|
|
382
|
-
borderRadius: 4,
|
|
383
|
-
minHeight: cx(55),
|
|
384
|
-
flex: 1,
|
|
385
|
-
justifyContent: 'center',
|
|
386
|
-
paddingHorizontal: cx(10),
|
|
387
|
-
paddingTop: cx(10)
|
|
388
|
-
},
|
|
389
|
-
applyItem: {
|
|
390
|
-
paddingLeft: cx(5),
|
|
391
|
-
flexDirection: 'row',
|
|
392
|
-
justifyContent: 'space-between',
|
|
393
|
-
alignItems: 'center',
|
|
394
|
-
backgroundColor: '#fff',
|
|
395
|
-
height: cx(35),
|
|
396
|
-
},
|
|
397
|
-
summaryContainer: {
|
|
398
|
-
flexDirection: 'row',
|
|
399
|
-
justifyContent: 'flex-start',
|
|
400
|
-
marginBottom: cx(10)
|
|
401
|
-
},
|
|
402
|
-
summaryLeft: {
|
|
403
|
-
flexDirection: 'row',
|
|
404
|
-
justifyContent: 'flex-start',
|
|
405
|
-
alignItems: 'center',
|
|
406
|
-
},
|
|
407
|
-
summaryImg: {
|
|
408
|
-
width: cx(12),
|
|
409
|
-
height: cx(12),
|
|
410
|
-
marginRight: cx(6)
|
|
411
|
-
},
|
|
412
|
-
leftTitle: {
|
|
413
|
-
fontSize: cx(14),
|
|
414
|
-
color: '#000'
|
|
415
|
-
},
|
|
416
|
-
summaryRight: {
|
|
417
|
-
flexDirection: 'column',
|
|
418
|
-
marginLeft: cx(21),
|
|
419
|
-
borderRadius: cx(16),
|
|
420
|
-
backgroundColor: '#cbcbcb',
|
|
421
|
-
},
|
|
422
|
-
rightItem: {
|
|
423
|
-
paddingHorizontal: cx(12),
|
|
424
|
-
color: '#000',
|
|
425
|
-
},
|
|
426
|
-
rightTitle: {
|
|
427
|
-
paddingLeft: cx(12),
|
|
428
|
-
paddingRight: cx(12),
|
|
429
|
-
fontSize: cx(10),
|
|
430
|
-
textAlign: 'center',
|
|
431
|
-
alignSelf: 'flex-start'
|
|
432
|
-
},
|
|
433
|
-
filletCorner: {
|
|
434
|
-
flexDirection: 'row',
|
|
435
|
-
backgroundColor: '#cbcbcb',
|
|
436
|
-
borderRadius: cx(16),
|
|
437
|
-
alignSelf: 'flex-start'
|
|
438
|
-
}
|
|
439
|
-
})
|
|
440
|
-
|
|
441
|
-
export default FixedTimingForLightDetailPage
|
|
420
|
+
export default withTheme(FixedTimingForLightDetailPage)
|
|
@@ -12,11 +12,13 @@ import {FixedTimingItem, FixedTimingParam, useFixedTiming} from "./FixedTimingFo
|
|
|
12
12
|
import Spacer from "@ledvance/base/src/components/Spacer";
|
|
13
13
|
import ItemCard from "./ItemCard";
|
|
14
14
|
import {cloneDeep} from "lodash";
|
|
15
|
+
import InfoText from "@ledvance/base/src/components/InfoText";
|
|
15
16
|
|
|
16
17
|
const {convertX: cx, topBarHeight} = Utils.RatioUtils;
|
|
18
|
+
const { withTheme } = Utils.ThemeUtils
|
|
17
19
|
const MAX_NUM = 4
|
|
18
20
|
|
|
19
|
-
const FixedTimeForLightPage =
|
|
21
|
+
const FixedTimeForLightPage = (props: { theme?: any}) => {
|
|
20
22
|
const devInfo = useDeviceInfo()
|
|
21
23
|
const navigation = useNavigation()
|
|
22
24
|
const params = useRoute().params as FixedTimingParam
|
|
@@ -58,17 +60,47 @@ const FixedTimeForLightPage = () => {
|
|
|
58
60
|
}
|
|
59
61
|
}, [fixedTimingList])
|
|
60
62
|
|
|
63
|
+
const styles = StyleSheet.create({
|
|
64
|
+
bg: {
|
|
65
|
+
marginTop: topBarHeight,
|
|
66
|
+
flex: 1,
|
|
67
|
+
},
|
|
68
|
+
emptyListCon: {
|
|
69
|
+
justifyContent: 'center',
|
|
70
|
+
alignItems: 'center',
|
|
71
|
+
marginTop: cx(30),
|
|
72
|
+
},
|
|
73
|
+
emptyImage: {
|
|
74
|
+
width: cx(225),
|
|
75
|
+
height: cx(198)
|
|
76
|
+
},
|
|
77
|
+
emptyNoTime: {
|
|
78
|
+
fontSize: cx(12),
|
|
79
|
+
color: props.theme.global.fontColor,
|
|
80
|
+
},
|
|
81
|
+
execTip: {
|
|
82
|
+
color: props.theme.global.fontColor,
|
|
83
|
+
marginLeft: cx(24),
|
|
84
|
+
},
|
|
85
|
+
maxImg: {
|
|
86
|
+
width: cx(16),
|
|
87
|
+
height: cx(16),
|
|
88
|
+
tintColor: props.theme.global.warning
|
|
89
|
+
},
|
|
90
|
+
maxTip: {
|
|
91
|
+
color: props.theme.global.secondFontColor,
|
|
92
|
+
},
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
|
|
61
96
|
const renderList = () => {
|
|
62
97
|
return (
|
|
63
98
|
<ScrollView nestedScrollEnabled={true}>
|
|
64
|
-
<Text style={{
|
|
65
|
-
color: '#000',
|
|
66
|
-
marginLeft: cx(24),
|
|
67
|
-
}}>{I18n.getLang('timeschedule_overview_description_text')}</Text>
|
|
99
|
+
<Text style={styles.execTip}>{I18n.getLang('timeschedule_overview_description_text')}</Text>
|
|
68
100
|
<Spacer height={cx(10)}/>
|
|
69
101
|
{isMaxNum && <View style={{marginHorizontal: cx(24), flexDirection: 'row'}}>
|
|
70
|
-
<Image style={
|
|
71
|
-
<Text>{I18n.getLang('fixedtimecycle_warning_max_number_text')}</Text>
|
|
102
|
+
<Image style={styles.maxImg} source={res.ic_warning_amber}/>
|
|
103
|
+
<Text style={styles.maxTip}>{I18n.getLang('fixedtimecycle_warning_max_number_text')}</Text>
|
|
72
104
|
</View>}
|
|
73
105
|
<FlatList
|
|
74
106
|
data={fixedTimingList}
|
|
@@ -103,20 +135,13 @@ const FixedTimeForLightPage = () => {
|
|
|
103
135
|
style={styles.emptyImage}
|
|
104
136
|
source={{uri: res.ldv_timer_empty}}
|
|
105
137
|
resizeMode="contain"/>
|
|
106
|
-
<
|
|
107
|
-
style={{
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
>
|
|
114
|
-
<Image
|
|
115
|
-
source={{uri: res.device_panel_schedule_alert}}
|
|
116
|
-
style={{width: cx(16), height: cx(16)}}
|
|
117
|
-
/>
|
|
118
|
-
<Text style={styles.emptyNoTime}>{I18n.getLang('fixedTimeCycle_information_text')}</Text>
|
|
119
|
-
</View>
|
|
138
|
+
<InfoText
|
|
139
|
+
style={{width: 'auto', alignItems: 'center'}}
|
|
140
|
+
icon={res.device_panel_schedule_alert}
|
|
141
|
+
text={I18n.getLang('fixedTimeCycle_information_text')}
|
|
142
|
+
textStyle={{flex: undefined}}
|
|
143
|
+
contentColor={props.theme.global.secondFontColor}
|
|
144
|
+
/>
|
|
120
145
|
<View
|
|
121
146
|
style={{
|
|
122
147
|
height: cx(36),
|
|
@@ -124,7 +149,7 @@ const FixedTimeForLightPage = () => {
|
|
|
124
149
|
marginVertical: cx(25),
|
|
125
150
|
marginHorizontal: cx(24),
|
|
126
151
|
borderRadius: cx(6),
|
|
127
|
-
backgroundColor:
|
|
152
|
+
backgroundColor: props.theme.button.primary,
|
|
128
153
|
}}
|
|
129
154
|
>
|
|
130
155
|
<TouchableOpacity
|
|
@@ -135,7 +160,7 @@ const FixedTimeForLightPage = () => {
|
|
|
135
160
|
}}
|
|
136
161
|
onPress={() => onAddOrEditItem('add')}
|
|
137
162
|
>
|
|
138
|
-
<Text style={{fontSize: cx(12), fontWeight: 'bold', color:
|
|
163
|
+
<Text style={{fontSize: cx(12), fontWeight: 'bold', color: props.theme.button.fontColor, textAlign: 'center'}}>
|
|
139
164
|
{I18n.getLang('fixedTimeCycle_bttn_text')}
|
|
140
165
|
</Text>
|
|
141
166
|
</TouchableOpacity>
|
|
@@ -156,38 +181,4 @@ const FixedTimeForLightPage = () => {
|
|
|
156
181
|
)
|
|
157
182
|
}
|
|
158
183
|
|
|
159
|
-
|
|
160
|
-
bg: {
|
|
161
|
-
marginTop: topBarHeight,
|
|
162
|
-
flex: 1,
|
|
163
|
-
},
|
|
164
|
-
emptyListCon: {
|
|
165
|
-
justifyContent: 'center',
|
|
166
|
-
alignItems: 'center',
|
|
167
|
-
marginTop: cx(30),
|
|
168
|
-
},
|
|
169
|
-
emptyImage: {
|
|
170
|
-
width: cx(225),
|
|
171
|
-
height: cx(198)
|
|
172
|
-
},
|
|
173
|
-
emptyNoTime: {
|
|
174
|
-
fontSize: cx(12),
|
|
175
|
-
color: '#000'
|
|
176
|
-
},
|
|
177
|
-
emptyTimeTip: {
|
|
178
|
-
fontSize: cx(12),
|
|
179
|
-
lineHeight: cx(17),
|
|
180
|
-
marginTop: cx(6),
|
|
181
|
-
width: '76%',
|
|
182
|
-
textAlign: 'center'
|
|
183
|
-
},
|
|
184
|
-
listContainer: {
|
|
185
|
-
bottom: cx(74)
|
|
186
|
-
},
|
|
187
|
-
categoryList: {
|
|
188
|
-
marginHorizontal: cx(24),
|
|
189
|
-
marginBottom: cx(12),
|
|
190
|
-
},
|
|
191
|
-
})
|
|
192
|
-
|
|
193
|
-
export default FixedTimeForLightPage
|
|
184
|
+
export default withTheme(FixedTimeForLightPage)
|
|
@@ -8,9 +8,11 @@ import {parseHour12} from "@tuya/tuya-panel-lamp-sdk/lib/utils";
|
|
|
8
8
|
import {FixedTimingItem} from "./FixedTimingForLightAction";
|
|
9
9
|
|
|
10
10
|
const {convertX: cx} = Utils.RatioUtils
|
|
11
|
+
const { withTheme } = Utils.ThemeUtils
|
|
11
12
|
const {parseTimer} = Utils.TimeUtils
|
|
12
13
|
|
|
13
14
|
export interface ItemCardProps {
|
|
15
|
+
theme?: any
|
|
14
16
|
item: FixedTimingItem,
|
|
15
17
|
is24Hour?: boolean,
|
|
16
18
|
onSwitch: (enable: boolean) => void
|
|
@@ -19,8 +21,33 @@ export interface ItemCardProps {
|
|
|
19
21
|
|
|
20
22
|
const ItemCard = (props: ItemCardProps) => {
|
|
21
23
|
const {item, is24Hour, onSwitch, onPress} = props
|
|
22
|
-
// 判断是否关闭
|
|
24
|
+
// 判断是否关闭
|
|
23
25
|
const closed = getIsClosed(item)
|
|
26
|
+
|
|
27
|
+
const styles = StyleSheet.create({
|
|
28
|
+
itemCard: {
|
|
29
|
+
marginHorizontal: cx(24),
|
|
30
|
+
paddingHorizontal: cx(16),
|
|
31
|
+
},
|
|
32
|
+
switchLine: {
|
|
33
|
+
flexDirection: 'row',
|
|
34
|
+
alignItems: 'center',
|
|
35
|
+
},
|
|
36
|
+
time: {
|
|
37
|
+
flex: 1,
|
|
38
|
+
color: props.theme.global.fontColor,
|
|
39
|
+
fontSize: cx(16),
|
|
40
|
+
fontWeight: 'bold',
|
|
41
|
+
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
42
|
+
},
|
|
43
|
+
switchBtn: {},
|
|
44
|
+
loopText: {
|
|
45
|
+
color: props.theme.global.fontColor,
|
|
46
|
+
fontSize: cx(14),
|
|
47
|
+
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
48
|
+
},
|
|
49
|
+
})
|
|
50
|
+
|
|
24
51
|
return (
|
|
25
52
|
<Card style={styles.itemCard} onPress={onPress}>
|
|
26
53
|
<Spacer height={cx(16)}/>
|
|
@@ -46,28 +73,4 @@ const ItemCard = (props: ItemCardProps) => {
|
|
|
46
73
|
)
|
|
47
74
|
}
|
|
48
75
|
|
|
49
|
-
|
|
50
|
-
itemCard: {
|
|
51
|
-
marginHorizontal: cx(24),
|
|
52
|
-
paddingHorizontal: cx(16),
|
|
53
|
-
},
|
|
54
|
-
switchLine: {
|
|
55
|
-
flexDirection: 'row',
|
|
56
|
-
alignItems: 'center',
|
|
57
|
-
},
|
|
58
|
-
time: {
|
|
59
|
-
flex: 1,
|
|
60
|
-
color: '#000',
|
|
61
|
-
fontSize: cx(16),
|
|
62
|
-
fontWeight: 'bold',
|
|
63
|
-
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
64
|
-
},
|
|
65
|
-
switchBtn: {},
|
|
66
|
-
loopText: {
|
|
67
|
-
color: '#000',
|
|
68
|
-
fontSize: cx(14),
|
|
69
|
-
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
70
|
-
},
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
export default ItemCard
|
|
76
|
+
export default withTheme(ItemCard)
|
|
@@ -6,8 +6,10 @@ import { Utils } from "tuya-panel-kit";
|
|
|
6
6
|
import Spacer from "@ledvance/base/src/components/Spacer";
|
|
7
7
|
|
|
8
8
|
const { convertX: cx } = Utils.RatioUtils;
|
|
9
|
+
const { withTheme } = Utils.ThemeUtils
|
|
9
10
|
|
|
10
11
|
interface SummaryProps {
|
|
12
|
+
theme?: any
|
|
11
13
|
style?: ViewStyle
|
|
12
14
|
frequency?: string | ReactElement
|
|
13
15
|
time?: string | ReactElement
|
|
@@ -16,6 +18,53 @@ interface SummaryProps {
|
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
const Summary = (props: SummaryProps) => {
|
|
21
|
+
|
|
22
|
+
const styles = StyleSheet.create({
|
|
23
|
+
cardContainer: {
|
|
24
|
+
marginHorizontal: cx(24),
|
|
25
|
+
},
|
|
26
|
+
itemTitle: {
|
|
27
|
+
color: props.theme.global.fontColor,
|
|
28
|
+
fontSize: cx(16),
|
|
29
|
+
fontWeight: 'bold',
|
|
30
|
+
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
31
|
+
},
|
|
32
|
+
summaryContainer: {
|
|
33
|
+
flex: 1,
|
|
34
|
+
flexDirection: 'row',
|
|
35
|
+
marginBottom: cx(10),
|
|
36
|
+
},
|
|
37
|
+
summaryLeft: {
|
|
38
|
+
flexDirection: 'row',
|
|
39
|
+
alignItems: 'center',
|
|
40
|
+
minWidth: cx(100)
|
|
41
|
+
},
|
|
42
|
+
summaryImg: {
|
|
43
|
+
tintColor: props.theme.global.fontColor,
|
|
44
|
+
width: cx(12),
|
|
45
|
+
height: cx(12),
|
|
46
|
+
marginRight: cx(6)
|
|
47
|
+
},
|
|
48
|
+
leftTitle: {
|
|
49
|
+
fontSize: cx(14),
|
|
50
|
+
color: props.theme.global.fontColor,
|
|
51
|
+
},
|
|
52
|
+
summaryRight: {
|
|
53
|
+
flex: 1,
|
|
54
|
+
flexDirection: 'column',
|
|
55
|
+
marginLeft: cx(15),
|
|
56
|
+
},
|
|
57
|
+
rightWrap: {
|
|
58
|
+
borderRadius: cx(16),
|
|
59
|
+
paddingHorizontal: cx(12),
|
|
60
|
+
alignSelf: 'flex-start',
|
|
61
|
+
backgroundColor: props.theme.tag.background,
|
|
62
|
+
},
|
|
63
|
+
rightItem: {
|
|
64
|
+
color: props.theme.tag.fontColor,
|
|
65
|
+
},
|
|
66
|
+
})
|
|
67
|
+
|
|
19
68
|
return (
|
|
20
69
|
<View style={styles.cardContainer}>
|
|
21
70
|
<Text style={styles.itemTitle}>{I18n.getLang('add_randomtimecycle_subheadline_text')}</Text>
|
|
@@ -56,68 +105,23 @@ const Summary = (props: SummaryProps) => {
|
|
|
56
105
|
</View>
|
|
57
106
|
</View>
|
|
58
107
|
{!props.hideActions && <View style={[styles.summaryContainer, { alignItems: 'flex-start' }]}>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
108
|
+
<View style={styles.summaryLeft}>
|
|
109
|
+
<Image
|
|
110
|
+
source={res.summary_icon3}
|
|
111
|
+
resizeMode="contain"
|
|
112
|
+
style={styles.summaryImg}
|
|
113
|
+
/>
|
|
114
|
+
<View>
|
|
115
|
+
<Text style={styles.leftTitle}>{I18n.getLang('motion_detection_add_time_schedule_actions_text1')}</Text>
|
|
116
|
+
</View>
|
|
117
|
+
</View>
|
|
118
|
+
<View style={styles.summaryRight}>
|
|
119
|
+
{props.actions}
|
|
67
120
|
</View>
|
|
68
|
-
</View>
|
|
69
|
-
<View style={styles.summaryRight}>
|
|
70
|
-
{props.actions}
|
|
71
|
-
</View>
|
|
72
121
|
</View>}
|
|
73
122
|
</View>
|
|
74
123
|
</View>
|
|
75
124
|
)
|
|
76
125
|
}
|
|
77
126
|
|
|
78
|
-
|
|
79
|
-
cardContainer: {
|
|
80
|
-
marginHorizontal: cx(24),
|
|
81
|
-
},
|
|
82
|
-
itemTitle: {
|
|
83
|
-
color: '#000',
|
|
84
|
-
fontSize: cx(16),
|
|
85
|
-
fontWeight: 'bold',
|
|
86
|
-
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
87
|
-
},
|
|
88
|
-
summaryContainer: {
|
|
89
|
-
flex: 1,
|
|
90
|
-
flexDirection: 'row',
|
|
91
|
-
marginBottom: cx(10),
|
|
92
|
-
},
|
|
93
|
-
summaryLeft: {
|
|
94
|
-
flexDirection: 'row',
|
|
95
|
-
alignItems: 'center',
|
|
96
|
-
minWidth: cx(100)
|
|
97
|
-
},
|
|
98
|
-
summaryImg: {
|
|
99
|
-
width: cx(12),
|
|
100
|
-
height: cx(12),
|
|
101
|
-
marginRight: cx(6)
|
|
102
|
-
},
|
|
103
|
-
leftTitle: {
|
|
104
|
-
fontSize: cx(14),
|
|
105
|
-
color: '#000'
|
|
106
|
-
},
|
|
107
|
-
summaryRight: {
|
|
108
|
-
flex: 1,
|
|
109
|
-
flexDirection: 'column',
|
|
110
|
-
marginLeft: cx(15),
|
|
111
|
-
},
|
|
112
|
-
rightWrap: {
|
|
113
|
-
borderRadius: cx(16),
|
|
114
|
-
paddingHorizontal: cx(12),
|
|
115
|
-
alignSelf: 'flex-start',
|
|
116
|
-
backgroundColor: '#cbcbcb',
|
|
117
|
-
},
|
|
118
|
-
rightItem: {
|
|
119
|
-
color: '#000',
|
|
120
|
-
},
|
|
121
|
-
})
|
|
122
|
-
|
|
123
|
-
export default memo(Summary)
|
|
127
|
+
export default memo(withTheme(Summary))
|