@ledvance/base 1.2.83 → 1.2.85
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/.babelrc +31 -31
- package/.eslintignore +5 -5
- package/.eslintrc.js +27 -27
- package/.prettierrc.js +1 -1
- package/.versionrc +5 -5
- package/localazy.json +851 -848
- package/localazy.keys.json +4 -4
- package/package.json +74 -74
- package/rn-cli.config.js +8 -8
- package/src/api/native.d.ts +71 -71
- package/src/api/native.ts +423 -423
- package/src/api/nativeEventEmitter.d.ts +3 -3
- package/src/api/nativeEventEmitter.ts +125 -125
- package/src/components/AdvanceCard.d.ts +25 -25
- package/src/components/AdvanceCard.tsx +117 -117
- package/src/components/AdvanceList.d.ts +9 -9
- package/src/components/AdvanceList.tsx +69 -69
- package/src/components/ApplyForDeviceItem.d.ts +6 -6
- package/src/components/ApplyForDeviceItem.tsx +83 -83
- package/src/components/ApplyForDeviceList.d.ts +7 -7
- package/src/components/ApplyForDeviceList.tsx +61 -61
- package/src/components/ApplyForText.d.ts +6 -6
- package/src/components/ApplyForText.tsx +52 -52
- package/src/components/Card.d.ts +10 -10
- package/src/components/Card.tsx +40 -40
- package/src/components/Cell.d.ts +21 -21
- package/src/components/Cell.tsx +69 -69
- package/src/components/CircularProgress.d.ts +8 -8
- package/src/components/CircularProgress.tsx +42 -42
- package/src/components/ColorAdjustView.d.ts +12 -12
- package/src/components/ColorAdjustView.tsx +64 -64
- package/src/components/ColorExtractor.d.ts +73 -73
- package/src/components/ColorExtractor.tsx +374 -374
- package/src/components/ColorTempAdjustView.d.ts +13 -13
- package/src/components/ColorTempAdjustView.tsx +57 -57
- package/src/components/ColorsLine.d.ts +7 -7
- package/src/components/ColorsLine.tsx +47 -47
- package/src/components/CustomListDialog.d.ts +15 -15
- package/src/components/CustomListDialog.tsx +66 -66
- package/src/components/DeleteButton.d.ts +10 -10
- package/src/components/DeleteButton.tsx +40 -40
- package/src/components/Dialog.d.ts +10 -10
- package/src/components/Dialog.tsx +38 -38
- package/src/components/DrawToolView.d.ts +46 -46
- package/src/components/DrawToolView.tsx +262 -262
- package/src/components/FanAdjustView.d.ts +23 -23
- package/src/components/FanAdjustView.tsx +141 -141
- package/src/components/InfoText.d.ts +11 -11
- package/src/components/InfoText.tsx +45 -45
- package/src/components/LampAdjustView.d.ts +10 -10
- package/src/components/LampAdjustView.tsx +75 -75
- package/src/components/LampAdjustView2.d.ts +24 -24
- package/src/components/LampAdjustView2.tsx +104 -104
- package/src/components/LinearGradientLine.d.ts +9 -9
- package/src/components/LinearGradientLine.tsx +63 -63
- package/src/components/LoadingView.tsx +39 -39
- package/src/components/MoodColorsLine.d.ts +9 -9
- package/src/components/MoodColorsLine.tsx +38 -38
- package/src/components/Page.d.ts +21 -21
- package/src/components/Page.tsx +104 -104
- package/src/components/Popup.d.ts +7 -7
- package/src/components/Popup.tsx +71 -71
- package/src/components/Segmented.d.ts +14 -14
- package/src/components/Segmented.tsx +76 -76
- package/src/components/ShowSelect.d.ts +1 -1
- package/src/components/ShowSelect.tsx +158 -158
- package/src/components/SocketItem.d.ts +13 -13
- package/src/components/SocketItem.tsx +87 -87
- package/src/components/Spacer.d.ts +7 -7
- package/src/components/Spacer.tsx +13 -13
- package/src/components/Stepper.d.ts +19 -19
- package/src/components/Stepper.tsx +130 -130
- package/src/components/StripAdjustView.d.ts +16 -16
- package/src/components/StripAdjustView.tsx +129 -129
- package/src/components/StripLightView.d.ts +14 -14
- package/src/components/StripLightView.tsx +24 -24
- package/src/components/Summary.tsx +116 -116
- package/src/components/Tag.d.ts +8 -8
- package/src/components/Tag.tsx +56 -56
- package/src/components/TextButton.d.ts +9 -9
- package/src/components/TextButton.tsx +31 -31
- package/src/components/TextField.d.ts +9 -9
- package/src/components/TextField.tsx +92 -92
- package/src/components/TextFieldStyleButton.d.ts +8 -8
- package/src/components/TextFieldStyleButton.tsx +85 -85
- package/src/components/UATabTitle.d.ts +6 -6
- package/src/components/UATabTitle.tsx +31 -31
- package/src/components/UATabs.d.ts +12 -12
- package/src/components/UATabs.tsx +77 -77
- package/src/components/connect.d.ts +10 -10
- package/src/components/connect.tsx +20 -20
- package/src/components/ldvColorBrightness.d.ts +1 -1
- package/src/components/ldvColorBrightness.tsx +18 -18
- package/src/components/ldvColorSlider.d.ts +14 -14
- package/src/components/ldvColorSlider.tsx +131 -131
- package/src/components/ldvItemView.d.ts +12 -12
- package/src/components/ldvItemView.tsx +43 -43
- package/src/components/ldvPickerView.d.ts +13 -13
- package/src/components/ldvPickerView.tsx +97 -97
- package/src/components/ldvPresetView.d.ts +2 -2
- package/src/components/ldvPresetView.tsx +86 -86
- package/src/components/ldvSaturation.d.ts +2 -2
- package/src/components/ldvSaturation.tsx +22 -22
- package/src/components/ldvSlider.d.ts +15 -15
- package/src/components/ldvSlider.tsx +103 -103
- package/src/components/ldvSwitch.d.ts +10 -10
- package/src/components/ldvSwitch.tsx +52 -52
- package/src/components/ldvTemperatureSlider.d.ts +13 -13
- package/src/components/ldvTemperatureSlider.tsx +139 -139
- package/src/components/ldvTopBar.d.ts +10 -10
- package/src/components/ldvTopBar.tsx +76 -76
- package/src/components/ldvTopName.d.ts +9 -9
- package/src/components/ldvTopName.tsx +63 -63
- package/src/components/segmentControl.d.ts +1 -1
- package/src/components/segmentControl.tsx +65 -65
- package/src/components/weekSelect.d.ts +7 -7
- package/src/components/weekSelect.tsx +98 -98
- package/src/composeLayout.d.ts +30 -30
- package/src/composeLayout.tsx +261 -261
- package/src/config/dark-theme.ts +61 -61
- package/src/config/light-theme.ts +61 -61
- package/src/hooks/Hooks.d.ts +2 -2
- package/src/hooks/Hooks.ts +8 -8
- package/src/i18n/index.d.ts +16 -16
- package/src/i18n/index.ts +37 -37
- package/src/i18n/strings.d.ts +15953 -15953
- package/src/i18n/strings.ts +23781 -23723
- package/src/main.tsx +9 -9
- package/src/models/GlobalParams.d.ts +14 -14
- package/src/models/GlobalParams.ts +14 -14
- package/src/models/TuyaApi.d.ts +29 -29
- package/src/models/TuyaApi.ts +92 -92
- package/src/models/combine.d.ts +26 -26
- package/src/models/combine.ts +17 -17
- package/src/models/configureStore.d.ts +9 -9
- package/src/models/configureStore.ts +33 -33
- package/src/models/index.d.ts +31 -31
- package/src/models/index.ts +22 -22
- package/src/models/modules/NativePropsSlice.d.ts +61 -61
- package/src/models/modules/NativePropsSlice.tsx +467 -467
- package/src/models/modules/Result.d.ts +14 -14
- package/src/models/modules/Result.ts +15 -15
- package/src/models/modules/common.d.ts +44 -44
- package/src/models/modules/common.ts +161 -161
- package/src/res/index.d.ts +70 -70
- package/src/res/index.ts +73 -73
- package/src/utils/ColorParser.d.ts +66 -66
- package/src/utils/ColorParser.ts +189 -189
- package/src/utils/ColorUtils.d.ts +71 -71
- package/src/utils/ColorUtils.tsx +448 -448
- package/src/utils/Support.d.ts +13 -13
- package/src/utils/Support.ts +108 -108
- package/src/utils/TypeUtils.d.ts +3 -3
- package/src/utils/cctUtils.d.ts +1 -1
- package/src/utils/cctUtils.ts +110 -110
- package/src/utils/common.d.ts +35 -35
- package/src/utils/common.ts +379 -379
- package/src/utils/index.d.ts +26 -26
- package/src/utils/index.ts +191 -191
- package/src/utils/interface.d.ts +6 -6
- package/src/utils/interface.ts +50 -50
- package/src/utils/loopsCompare.d.ts +1 -1
- package/src/utils/loopsCompare.ts +62 -62
- package/tsconfig.json +50 -50
- package/update-localazy.py +52 -52
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import React, { useCallback } from 'react'
|
|
2
|
-
import { FlatList, StyleSheet, View, Image } from 'react-native'
|
|
3
|
-
import AdvanceCard, { AdvancedData } from './AdvanceCard'
|
|
4
|
-
import Spacer from './Spacer'
|
|
5
|
-
import { useNavigation } from '@react-navigation/core'
|
|
6
|
-
import { Utils } from 'tuya-panel-kit'
|
|
7
|
-
|
|
8
|
-
const { convertX: cx } = Utils.RatioUtils
|
|
9
|
-
|
|
10
|
-
export interface AdvanceListProps {
|
|
11
|
-
advanceData: AdvancedData[],
|
|
12
|
-
onAdvanceItemClick?: (advanceData: AdvancedData, index: number) => Promise<void> | undefined
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function AdvanceList(props: AdvanceListProps) {
|
|
16
|
-
const navigation = useNavigation()
|
|
17
|
-
|
|
18
|
-
const { advanceData, onAdvanceItemClick } = props
|
|
19
|
-
|
|
20
|
-
const renderItem = useCallback(({ item, index }) => (
|
|
21
|
-
<View style={styles.item}>
|
|
22
|
-
<AdvanceCard
|
|
23
|
-
data={item}
|
|
24
|
-
onPress={() => {
|
|
25
|
-
if (!onAdvanceItemClick || onAdvanceItemClick(item, index)) {
|
|
26
|
-
navigation.navigate(item.router.key, item.router.params)
|
|
27
|
-
}
|
|
28
|
-
}}>
|
|
29
|
-
{item.icons && <View style={{
|
|
30
|
-
height: cx(118),
|
|
31
|
-
justifyContent: 'center',
|
|
32
|
-
alignItems: 'center',
|
|
33
|
-
}}>
|
|
34
|
-
<Image source={item.icons} style={{ width: cx(80), height: cx(80) }} />
|
|
35
|
-
</View>}
|
|
36
|
-
</AdvanceCard>
|
|
37
|
-
</View>
|
|
38
|
-
), [navigation, onAdvanceItemClick])
|
|
39
|
-
|
|
40
|
-
const keyExtractor = useCallback((item: AdvancedData, index: number) => item.dp?.code || `key-${index}`, [])
|
|
41
|
-
|
|
42
|
-
const Header = useCallback(() => <Spacer height={cx(10)} />, [])
|
|
43
|
-
const Separator = useCallback(() => <Spacer />, [])
|
|
44
|
-
const Footer = useCallback(() => <Spacer height={cx(30)} />, [])
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<FlatList
|
|
48
|
-
numColumns={2}
|
|
49
|
-
style={styles.container}
|
|
50
|
-
data={advanceData}
|
|
51
|
-
renderItem={renderItem}
|
|
52
|
-
keyExtractor={keyExtractor}
|
|
53
|
-
ListHeaderComponent={Header}
|
|
54
|
-
ItemSeparatorComponent={Separator}
|
|
55
|
-
ListFooterComponent={Footer} />
|
|
56
|
-
)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const styles = StyleSheet.create({
|
|
60
|
-
container: {
|
|
61
|
-
marginHorizontal: cx(14),
|
|
62
|
-
},
|
|
63
|
-
item: {
|
|
64
|
-
flex: .5,
|
|
65
|
-
justifyContent: 'center',
|
|
66
|
-
alignItems: 'center',
|
|
67
|
-
},
|
|
68
|
-
})
|
|
69
|
-
|
|
1
|
+
import React, { useCallback } from 'react'
|
|
2
|
+
import { FlatList, StyleSheet, View, Image } from 'react-native'
|
|
3
|
+
import AdvanceCard, { AdvancedData } from './AdvanceCard'
|
|
4
|
+
import Spacer from './Spacer'
|
|
5
|
+
import { useNavigation } from '@react-navigation/core'
|
|
6
|
+
import { Utils } from 'tuya-panel-kit'
|
|
7
|
+
|
|
8
|
+
const { convertX: cx } = Utils.RatioUtils
|
|
9
|
+
|
|
10
|
+
export interface AdvanceListProps {
|
|
11
|
+
advanceData: AdvancedData[],
|
|
12
|
+
onAdvanceItemClick?: (advanceData: AdvancedData, index: number) => Promise<void> | undefined
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function AdvanceList(props: AdvanceListProps) {
|
|
16
|
+
const navigation = useNavigation()
|
|
17
|
+
|
|
18
|
+
const { advanceData, onAdvanceItemClick } = props
|
|
19
|
+
|
|
20
|
+
const renderItem = useCallback(({ item, index }) => (
|
|
21
|
+
<View style={styles.item}>
|
|
22
|
+
<AdvanceCard
|
|
23
|
+
data={item}
|
|
24
|
+
onPress={() => {
|
|
25
|
+
if (!onAdvanceItemClick || onAdvanceItemClick(item, index)) {
|
|
26
|
+
navigation.navigate(item.router.key, item.router.params)
|
|
27
|
+
}
|
|
28
|
+
}}>
|
|
29
|
+
{item.icons && <View style={{
|
|
30
|
+
height: cx(118),
|
|
31
|
+
justifyContent: 'center',
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
}}>
|
|
34
|
+
<Image source={item.icons} style={{ width: cx(80), height: cx(80) }} />
|
|
35
|
+
</View>}
|
|
36
|
+
</AdvanceCard>
|
|
37
|
+
</View>
|
|
38
|
+
), [navigation, onAdvanceItemClick])
|
|
39
|
+
|
|
40
|
+
const keyExtractor = useCallback((item: AdvancedData, index: number) => item.dp?.code || `key-${index}`, [])
|
|
41
|
+
|
|
42
|
+
const Header = useCallback(() => <Spacer height={cx(10)} />, [])
|
|
43
|
+
const Separator = useCallback(() => <Spacer />, [])
|
|
44
|
+
const Footer = useCallback(() => <Spacer height={cx(30)} />, [])
|
|
45
|
+
|
|
46
|
+
return (
|
|
47
|
+
<FlatList
|
|
48
|
+
numColumns={2}
|
|
49
|
+
style={styles.container}
|
|
50
|
+
data={advanceData}
|
|
51
|
+
renderItem={renderItem}
|
|
52
|
+
keyExtractor={keyExtractor}
|
|
53
|
+
ListHeaderComponent={Header}
|
|
54
|
+
ItemSeparatorComponent={Separator}
|
|
55
|
+
ListFooterComponent={Footer} />
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const styles = StyleSheet.create({
|
|
60
|
+
container: {
|
|
61
|
+
marginHorizontal: cx(14),
|
|
62
|
+
},
|
|
63
|
+
item: {
|
|
64
|
+
flex: .5,
|
|
65
|
+
justifyContent: 'center',
|
|
66
|
+
alignItems: 'center',
|
|
67
|
+
},
|
|
68
|
+
})
|
|
69
|
+
|
|
70
70
|
export default React.memo(AdvanceList)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DeviceInfo } from '../api/native';
|
|
2
|
-
export interface ApplyForDeviceItemProps {
|
|
3
|
-
deviceInfo: DeviceInfo;
|
|
4
|
-
}
|
|
5
|
-
declare const ApplyForDeviceItem: (props: ApplyForDeviceItemProps) => JSX.Element;
|
|
6
|
-
export default ApplyForDeviceItem;
|
|
1
|
+
import { DeviceInfo } from '../api/native';
|
|
2
|
+
export interface ApplyForDeviceItemProps {
|
|
3
|
+
deviceInfo: DeviceInfo;
|
|
4
|
+
}
|
|
5
|
+
declare const ApplyForDeviceItem: (props: ApplyForDeviceItemProps) => JSX.Element;
|
|
6
|
+
export default ApplyForDeviceItem;
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Image, StyleSheet, Text, View } from 'react-native'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import { Utils } from 'tuya-panel-kit'
|
|
4
|
-
import { DeviceInfo } from '../api/native'
|
|
5
|
-
import Spacer from './Spacer'
|
|
6
|
-
import res from '../res'
|
|
7
|
-
|
|
8
|
-
const cx = Utils.RatioUtils.convertX
|
|
9
|
-
|
|
10
|
-
export interface ApplyForDeviceItemProps {
|
|
11
|
-
deviceInfo: DeviceInfo
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const ApplyForDeviceItem = (props: ApplyForDeviceItemProps) => {
|
|
15
|
-
return (
|
|
16
|
-
<View style={styles.root}>
|
|
17
|
-
<View style={{ flex: 1 }}>
|
|
18
|
-
<View style={styles.deviceInfo}>
|
|
19
|
-
<Image style={styles.deviceIcon} source={{ uri: props.deviceInfo.deviceIcon }} />
|
|
20
|
-
<Text style={styles.deviceName}>{props.deviceInfo.deviceName}</Text>
|
|
21
|
-
</View>
|
|
22
|
-
<View style={styles.deviceRoomInfo}>
|
|
23
|
-
<View style={styles.roomNameTag}>
|
|
24
|
-
<Text style={styles.roomName}>{props.deviceInfo.roomName}</Text>
|
|
25
|
-
</View>
|
|
26
|
-
</View>
|
|
27
|
-
<Spacer height={cx(6)} />
|
|
28
|
-
</View>
|
|
29
|
-
<View style={[styles.offlineIcon, {marginRight: cx(5)}]}>
|
|
30
|
-
{!props.deviceInfo.status && <Image style={styles.offlineIcon} source={res.offline_wifi} />}
|
|
31
|
-
</View>
|
|
32
|
-
</View>
|
|
33
|
-
)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const styles = StyleSheet.create({
|
|
37
|
-
root: {
|
|
38
|
-
marginHorizontal: cx(8),
|
|
39
|
-
backgroundColor: '#fff',
|
|
40
|
-
flexDirection: 'row',
|
|
41
|
-
alignItems: 'center'
|
|
42
|
-
},
|
|
43
|
-
deviceInfo: {
|
|
44
|
-
flex: 1,
|
|
45
|
-
flexDirection: 'row',
|
|
46
|
-
alignItems: 'center',
|
|
47
|
-
marginTop: cx(4),
|
|
48
|
-
},
|
|
49
|
-
deviceIcon: {
|
|
50
|
-
width: cx(24),
|
|
51
|
-
height: cx(24),
|
|
52
|
-
marginStart: cx(6),
|
|
53
|
-
},
|
|
54
|
-
deviceName: {
|
|
55
|
-
flex: 1,
|
|
56
|
-
marginStart: cx(8),
|
|
57
|
-
color: '#666',
|
|
58
|
-
fontSize: cx(16),
|
|
59
|
-
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
60
|
-
},
|
|
61
|
-
deviceRoomInfo: {
|
|
62
|
-
marginStart: cx(38),
|
|
63
|
-
flexDirection: 'row',
|
|
64
|
-
},
|
|
65
|
-
roomNameTag: {
|
|
66
|
-
height: cx(16),
|
|
67
|
-
display: 'flex',
|
|
68
|
-
justifyContent: 'center',
|
|
69
|
-
backgroundColor: '#cbcbcb',
|
|
70
|
-
borderRadius: cx(8),
|
|
71
|
-
},
|
|
72
|
-
roomName: {
|
|
73
|
-
marginHorizontal: cx(12),
|
|
74
|
-
color: '#000',
|
|
75
|
-
fontSize: cx(10),
|
|
76
|
-
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
77
|
-
},
|
|
78
|
-
offlineIcon: {
|
|
79
|
-
width: cx(24),
|
|
80
|
-
height: cx(24)
|
|
81
|
-
}
|
|
82
|
-
})
|
|
83
|
-
|
|
1
|
+
import { Image, StyleSheet, Text, View } from 'react-native'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { Utils } from 'tuya-panel-kit'
|
|
4
|
+
import { DeviceInfo } from '../api/native'
|
|
5
|
+
import Spacer from './Spacer'
|
|
6
|
+
import res from '../res'
|
|
7
|
+
|
|
8
|
+
const cx = Utils.RatioUtils.convertX
|
|
9
|
+
|
|
10
|
+
export interface ApplyForDeviceItemProps {
|
|
11
|
+
deviceInfo: DeviceInfo
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const ApplyForDeviceItem = (props: ApplyForDeviceItemProps) => {
|
|
15
|
+
return (
|
|
16
|
+
<View style={styles.root}>
|
|
17
|
+
<View style={{ flex: 1 }}>
|
|
18
|
+
<View style={styles.deviceInfo}>
|
|
19
|
+
<Image style={styles.deviceIcon} source={{ uri: props.deviceInfo.deviceIcon }} />
|
|
20
|
+
<Text style={styles.deviceName}>{props.deviceInfo.deviceName}</Text>
|
|
21
|
+
</View>
|
|
22
|
+
<View style={styles.deviceRoomInfo}>
|
|
23
|
+
<View style={styles.roomNameTag}>
|
|
24
|
+
<Text style={styles.roomName}>{props.deviceInfo.roomName}</Text>
|
|
25
|
+
</View>
|
|
26
|
+
</View>
|
|
27
|
+
<Spacer height={cx(6)} />
|
|
28
|
+
</View>
|
|
29
|
+
<View style={[styles.offlineIcon, {marginRight: cx(5)}]}>
|
|
30
|
+
{!props.deviceInfo.status && <Image style={styles.offlineIcon} source={res.offline_wifi} />}
|
|
31
|
+
</View>
|
|
32
|
+
</View>
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const styles = StyleSheet.create({
|
|
37
|
+
root: {
|
|
38
|
+
marginHorizontal: cx(8),
|
|
39
|
+
backgroundColor: '#fff',
|
|
40
|
+
flexDirection: 'row',
|
|
41
|
+
alignItems: 'center'
|
|
42
|
+
},
|
|
43
|
+
deviceInfo: {
|
|
44
|
+
flex: 1,
|
|
45
|
+
flexDirection: 'row',
|
|
46
|
+
alignItems: 'center',
|
|
47
|
+
marginTop: cx(4),
|
|
48
|
+
},
|
|
49
|
+
deviceIcon: {
|
|
50
|
+
width: cx(24),
|
|
51
|
+
height: cx(24),
|
|
52
|
+
marginStart: cx(6),
|
|
53
|
+
},
|
|
54
|
+
deviceName: {
|
|
55
|
+
flex: 1,
|
|
56
|
+
marginStart: cx(8),
|
|
57
|
+
color: '#666',
|
|
58
|
+
fontSize: cx(16),
|
|
59
|
+
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
60
|
+
},
|
|
61
|
+
deviceRoomInfo: {
|
|
62
|
+
marginStart: cx(38),
|
|
63
|
+
flexDirection: 'row',
|
|
64
|
+
},
|
|
65
|
+
roomNameTag: {
|
|
66
|
+
height: cx(16),
|
|
67
|
+
display: 'flex',
|
|
68
|
+
justifyContent: 'center',
|
|
69
|
+
backgroundColor: '#cbcbcb',
|
|
70
|
+
borderRadius: cx(8),
|
|
71
|
+
},
|
|
72
|
+
roomName: {
|
|
73
|
+
marginHorizontal: cx(12),
|
|
74
|
+
color: '#000',
|
|
75
|
+
fontSize: cx(10),
|
|
76
|
+
fontFamily: 'helvetica_neue_lt_std_roman',
|
|
77
|
+
},
|
|
78
|
+
offlineIcon: {
|
|
79
|
+
width: cx(24),
|
|
80
|
+
height: cx(24)
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
|
|
84
84
|
export default ApplyForDeviceItem
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DeviceInfo } from '../api/native';
|
|
2
|
-
export interface ApplyForDeviceListProps {
|
|
3
|
-
devices: DeviceInfo[];
|
|
4
|
-
expand?: boolean;
|
|
5
|
-
onExpandChange?: (expand: boolean) => void;
|
|
6
|
-
}
|
|
7
|
-
export default function ApplyForDeviceList(props: ApplyForDeviceListProps): JSX.Element;
|
|
1
|
+
import { DeviceInfo } from '../api/native';
|
|
2
|
+
export interface ApplyForDeviceListProps {
|
|
3
|
+
devices: DeviceInfo[];
|
|
4
|
+
expand?: boolean;
|
|
5
|
+
onExpandChange?: (expand: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
export default function ApplyForDeviceList(props: ApplyForDeviceListProps): JSX.Element;
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { DeviceInfo } from '../api/native'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import ApplyForText from './ApplyForText'
|
|
4
|
-
import { FlatList, StyleSheet, View } from 'react-native'
|
|
5
|
-
import Spacer from './Spacer'
|
|
6
|
-
import ApplyForDeviceItem from './ApplyForDeviceItem'
|
|
7
|
-
import { Utils } from 'tuya-panel-kit'
|
|
8
|
-
import { useReactive, useUpdateEffect } from 'ahooks'
|
|
9
|
-
|
|
10
|
-
const cx = Utils.RatioUtils.convertX
|
|
11
|
-
|
|
12
|
-
export interface ApplyForDeviceListProps {
|
|
13
|
-
devices: DeviceInfo[]
|
|
14
|
-
expand?: boolean
|
|
15
|
-
onExpandChange?: (expand: boolean) => void
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default function ApplyForDeviceList(props: ApplyForDeviceListProps) {
|
|
19
|
-
const state = useReactive({
|
|
20
|
-
expand: props.expand || false
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
useUpdateEffect(() =>{
|
|
24
|
-
state.expand = props.expand || false
|
|
25
|
-
}, [props.expand])
|
|
26
|
-
|
|
27
|
-
return <View>
|
|
28
|
-
<ApplyForText
|
|
29
|
-
expand={state.expand}
|
|
30
|
-
onExpandChange={(expand) =>{
|
|
31
|
-
if(props.onExpandChange){
|
|
32
|
-
props.onExpandChange(expand)
|
|
33
|
-
}else{
|
|
34
|
-
state.expand = expand
|
|
35
|
-
}
|
|
36
|
-
}}/>
|
|
37
|
-
<Spacer height={cx(2)}/>
|
|
38
|
-
{state.expand &&
|
|
39
|
-
<FlatList
|
|
40
|
-
style={styles.deviceList}
|
|
41
|
-
data={props.devices}
|
|
42
|
-
renderItem={({ item }) => <ApplyForDeviceItem deviceInfo={item}/>}
|
|
43
|
-
keyExtractor={item => item.deviceId}
|
|
44
|
-
ItemSeparatorComponent={() => {
|
|
45
|
-
return (
|
|
46
|
-
<Spacer
|
|
47
|
-
style={{
|
|
48
|
-
backgroundColor: 'rgb(241,241,241)',
|
|
49
|
-
}}
|
|
50
|
-
height={cx(8)}/>
|
|
51
|
-
)
|
|
52
|
-
}}/>}
|
|
53
|
-
</View>
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const styles = StyleSheet.create({
|
|
57
|
-
deviceList: {
|
|
58
|
-
marginHorizontal: cx(16),
|
|
59
|
-
paddingVertical: cx(8),
|
|
60
|
-
backgroundColor: 'rgb(241,241,241)',
|
|
61
|
-
},
|
|
1
|
+
import { DeviceInfo } from '../api/native'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import ApplyForText from './ApplyForText'
|
|
4
|
+
import { FlatList, StyleSheet, View } from 'react-native'
|
|
5
|
+
import Spacer from './Spacer'
|
|
6
|
+
import ApplyForDeviceItem from './ApplyForDeviceItem'
|
|
7
|
+
import { Utils } from 'tuya-panel-kit'
|
|
8
|
+
import { useReactive, useUpdateEffect } from 'ahooks'
|
|
9
|
+
|
|
10
|
+
const cx = Utils.RatioUtils.convertX
|
|
11
|
+
|
|
12
|
+
export interface ApplyForDeviceListProps {
|
|
13
|
+
devices: DeviceInfo[]
|
|
14
|
+
expand?: boolean
|
|
15
|
+
onExpandChange?: (expand: boolean) => void
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default function ApplyForDeviceList(props: ApplyForDeviceListProps) {
|
|
19
|
+
const state = useReactive({
|
|
20
|
+
expand: props.expand || false
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
useUpdateEffect(() =>{
|
|
24
|
+
state.expand = props.expand || false
|
|
25
|
+
}, [props.expand])
|
|
26
|
+
|
|
27
|
+
return <View>
|
|
28
|
+
<ApplyForText
|
|
29
|
+
expand={state.expand}
|
|
30
|
+
onExpandChange={(expand) =>{
|
|
31
|
+
if(props.onExpandChange){
|
|
32
|
+
props.onExpandChange(expand)
|
|
33
|
+
}else{
|
|
34
|
+
state.expand = expand
|
|
35
|
+
}
|
|
36
|
+
}}/>
|
|
37
|
+
<Spacer height={cx(2)}/>
|
|
38
|
+
{state.expand &&
|
|
39
|
+
<FlatList
|
|
40
|
+
style={styles.deviceList}
|
|
41
|
+
data={props.devices}
|
|
42
|
+
renderItem={({ item }) => <ApplyForDeviceItem deviceInfo={item}/>}
|
|
43
|
+
keyExtractor={item => item.deviceId}
|
|
44
|
+
ItemSeparatorComponent={() => {
|
|
45
|
+
return (
|
|
46
|
+
<Spacer
|
|
47
|
+
style={{
|
|
48
|
+
backgroundColor: 'rgb(241,241,241)',
|
|
49
|
+
}}
|
|
50
|
+
height={cx(8)}/>
|
|
51
|
+
)
|
|
52
|
+
}}/>}
|
|
53
|
+
</View>
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const styles = StyleSheet.create({
|
|
57
|
+
deviceList: {
|
|
58
|
+
marginHorizontal: cx(16),
|
|
59
|
+
paddingVertical: cx(8),
|
|
60
|
+
backgroundColor: 'rgb(241,241,241)',
|
|
61
|
+
},
|
|
62
62
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export interface ApplyForTextProps {
|
|
2
|
-
expand: boolean;
|
|
3
|
-
onExpandChange: (expand: boolean) => void;
|
|
4
|
-
}
|
|
5
|
-
declare const ApplyForText: (props: ApplyForTextProps) => JSX.Element;
|
|
6
|
-
export default ApplyForText;
|
|
1
|
+
export interface ApplyForTextProps {
|
|
2
|
+
expand: boolean;
|
|
3
|
+
onExpandChange: (expand: boolean) => void;
|
|
4
|
+
}
|
|
5
|
+
declare const ApplyForText: (props: ApplyForTextProps) => JSX.Element;
|
|
6
|
+
export default ApplyForText;
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import { Utils } from 'tuya-panel-kit'
|
|
4
|
-
import res from '../res/index'
|
|
5
|
-
import I18n from '../i18n/index'
|
|
6
|
-
|
|
7
|
-
const cx = Utils.RatioUtils.convertX
|
|
8
|
-
|
|
9
|
-
export interface ApplyForTextProps {
|
|
10
|
-
expand: boolean
|
|
11
|
-
onExpandChange: (expand: boolean) => void
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const ApplyForText = (props: ApplyForTextProps) => {
|
|
15
|
-
return (
|
|
16
|
-
<TouchableOpacity
|
|
17
|
-
onPress={() => {
|
|
18
|
-
props.onExpandChange(!props.expand)
|
|
19
|
-
}}>
|
|
20
|
-
<View style={styles.root}>
|
|
21
|
-
<Text style={styles.text}>{I18n.getLang('timeschedule_add_schedule_subheadline_text')}</Text>
|
|
22
|
-
<Image
|
|
23
|
-
style={
|
|
24
|
-
[styles.icon,
|
|
25
|
-
{
|
|
26
|
-
transform: [{ rotate: props.expand ? '0deg' : '180deg' }],
|
|
27
|
-
},
|
|
28
|
-
]}
|
|
29
|
-
source={res.ic_top_arrow}/>
|
|
30
|
-
</View>
|
|
31
|
-
</TouchableOpacity>
|
|
32
|
-
)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const styles = StyleSheet.create({
|
|
36
|
-
root: {
|
|
37
|
-
flexDirection: 'row',
|
|
38
|
-
alignItems: 'center',
|
|
39
|
-
marginStart: cx(16),
|
|
40
|
-
},
|
|
41
|
-
text: {
|
|
42
|
-
color: '#666',
|
|
43
|
-
fontSize: cx(16),
|
|
44
|
-
letterSpacing: cx(0.12),
|
|
45
|
-
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
46
|
-
},
|
|
47
|
-
icon: {
|
|
48
|
-
width: cx(24),
|
|
49
|
-
height: cx(24),
|
|
50
|
-
},
|
|
51
|
-
})
|
|
52
|
-
|
|
1
|
+
import { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { Utils } from 'tuya-panel-kit'
|
|
4
|
+
import res from '../res/index'
|
|
5
|
+
import I18n from '../i18n/index'
|
|
6
|
+
|
|
7
|
+
const cx = Utils.RatioUtils.convertX
|
|
8
|
+
|
|
9
|
+
export interface ApplyForTextProps {
|
|
10
|
+
expand: boolean
|
|
11
|
+
onExpandChange: (expand: boolean) => void
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const ApplyForText = (props: ApplyForTextProps) => {
|
|
15
|
+
return (
|
|
16
|
+
<TouchableOpacity
|
|
17
|
+
onPress={() => {
|
|
18
|
+
props.onExpandChange(!props.expand)
|
|
19
|
+
}}>
|
|
20
|
+
<View style={styles.root}>
|
|
21
|
+
<Text style={styles.text}>{I18n.getLang('timeschedule_add_schedule_subheadline_text')}</Text>
|
|
22
|
+
<Image
|
|
23
|
+
style={
|
|
24
|
+
[styles.icon,
|
|
25
|
+
{
|
|
26
|
+
transform: [{ rotate: props.expand ? '0deg' : '180deg' }],
|
|
27
|
+
},
|
|
28
|
+
]}
|
|
29
|
+
source={res.ic_top_arrow}/>
|
|
30
|
+
</View>
|
|
31
|
+
</TouchableOpacity>
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const styles = StyleSheet.create({
|
|
36
|
+
root: {
|
|
37
|
+
flexDirection: 'row',
|
|
38
|
+
alignItems: 'center',
|
|
39
|
+
marginStart: cx(16),
|
|
40
|
+
},
|
|
41
|
+
text: {
|
|
42
|
+
color: '#666',
|
|
43
|
+
fontSize: cx(16),
|
|
44
|
+
letterSpacing: cx(0.12),
|
|
45
|
+
fontFamily: 'helvetica_neue_lt_std_bd',
|
|
46
|
+
},
|
|
47
|
+
icon: {
|
|
48
|
+
width: cx(24),
|
|
49
|
+
height: cx(24),
|
|
50
|
+
},
|
|
51
|
+
})
|
|
52
|
+
|
|
53
53
|
export default ApplyForText
|
package/src/components/Card.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { StyleProp, ViewProps, ViewStyle } from 'react-native';
|
|
2
|
-
import { PropsWithChildren } from 'react';
|
|
3
|
-
interface CardProps extends PropsWithChildren<ViewProps> {
|
|
4
|
-
shadowHeight?: number | undefined;
|
|
5
|
-
onPress?: () => void;
|
|
6
|
-
onLongPress?: () => void;
|
|
7
|
-
containerStyle?: StyleProp<ViewStyle>;
|
|
8
|
-
}
|
|
9
|
-
export default function Card(props: CardProps): JSX.Element;
|
|
10
|
-
export {};
|
|
1
|
+
import { StyleProp, ViewProps, ViewStyle } from 'react-native';
|
|
2
|
+
import { PropsWithChildren } from 'react';
|
|
3
|
+
interface CardProps extends PropsWithChildren<ViewProps> {
|
|
4
|
+
shadowHeight?: number | undefined;
|
|
5
|
+
onPress?: () => void;
|
|
6
|
+
onLongPress?: () => void;
|
|
7
|
+
containerStyle?: StyleProp<ViewStyle>;
|
|
8
|
+
}
|
|
9
|
+
export default function Card(props: CardProps): JSX.Element;
|
|
10
|
+
export {};
|