@ledvance/base 1.2.83 → 1.2.84
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 +848 -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 +23723 -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,105 +1,105 @@
|
|
|
1
|
-
import { StyleSheet, View } from 'react-native'
|
|
2
|
-
import React, { memo } from 'react'
|
|
3
|
-
import { Utils } from 'tuya-panel-kit'
|
|
4
|
-
import { useReactive } from 'ahooks'
|
|
5
|
-
import Spacer from './Spacer'
|
|
6
|
-
import ColorAdjustView from './ColorAdjustView'
|
|
7
|
-
import ColorTempAdjustView from './ColorTempAdjustView'
|
|
8
|
-
import SegmentControl from './segmentControl'
|
|
9
|
-
import I18n from '../i18n/index'
|
|
10
|
-
|
|
11
|
-
const { convertX: cx } = Utils.RatioUtils
|
|
12
|
-
|
|
13
|
-
export interface HSV {
|
|
14
|
-
h: number
|
|
15
|
-
s: number
|
|
16
|
-
v: number
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
interface LampConfigViewProps {
|
|
20
|
-
isSupportColor: boolean
|
|
21
|
-
isSupportCCT: boolean
|
|
22
|
-
isSupportBrightness: boolean
|
|
23
|
-
isColorMode: boolean
|
|
24
|
-
setIsColorMode: (isColorMode: boolean) => void
|
|
25
|
-
minBrightness?: number // 最小亮度
|
|
26
|
-
minSaturation?: number // 最小Saturation
|
|
27
|
-
reserveSV?: boolean // 保留 s v
|
|
28
|
-
hsv: HSV
|
|
29
|
-
onHSVChange: (hsv: HSV, isComplete: boolean) => void
|
|
30
|
-
cct: number
|
|
31
|
-
onCCTChange: (cct: number, isComplete: boolean) => void
|
|
32
|
-
brightness: number
|
|
33
|
-
onBrightnessChange: (brightness: number, isComplete: boolean) => void
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const LampAdjustView2 = (props: LampConfigViewProps) => {
|
|
37
|
-
|
|
38
|
-
const state = useReactive({
|
|
39
|
-
hasSegmentControl: props.isSupportColor && (props.isSupportBrightness || props.isSupportCCT),
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<View>
|
|
44
|
-
{state.hasSegmentControl &&
|
|
45
|
-
<SegmentControl
|
|
46
|
-
style={styles.segmentControl}
|
|
47
|
-
title1={I18n.getLang('light_sources_tile_rgb_lighting_tab_color')}
|
|
48
|
-
title2={I18n.getLang('light_sources_tile_rgb_lighting_tab_white')}
|
|
49
|
-
isFirst={props.isColorMode}
|
|
50
|
-
setIsFirst={props.setIsColorMode}/>
|
|
51
|
-
}
|
|
52
|
-
{((state.hasSegmentControl && props.isColorMode) || (!state.hasSegmentControl && props.isSupportColor)) &&
|
|
53
|
-
<>
|
|
54
|
-
{state.hasSegmentControl && <Spacer height={cx(10)}/>}
|
|
55
|
-
<ColorAdjustView
|
|
56
|
-
h={props.hsv.h}
|
|
57
|
-
s={props.hsv.s}
|
|
58
|
-
v={props.hsv.v}
|
|
59
|
-
minBrightness={props.minBrightness}
|
|
60
|
-
minSaturation={props.minSaturation}
|
|
61
|
-
reserveSV={props.reserveSV}
|
|
62
|
-
onHSVChange={(h, s, v) => {
|
|
63
|
-
props.onHSVChange({ h, s, v }, false)
|
|
64
|
-
}}
|
|
65
|
-
onHSVChangeComplete={(h, s, v) => {
|
|
66
|
-
props.onHSVChange({ h, s, v }, true)
|
|
67
|
-
}}/>
|
|
68
|
-
<Spacer/>
|
|
69
|
-
</>
|
|
70
|
-
}
|
|
71
|
-
{((state.hasSegmentControl && !props.isColorMode) || (!state.hasSegmentControl && (props.isSupportBrightness || props.isSupportCCT))) &&
|
|
72
|
-
<>
|
|
73
|
-
{state.hasSegmentControl && <Spacer height={cx(10)}/>}
|
|
74
|
-
<ColorTempAdjustView
|
|
75
|
-
minBrightness={props.minBrightness}
|
|
76
|
-
isSupportTemperature={props.isSupportCCT}
|
|
77
|
-
isSupportBrightness={props.isSupportBrightness}
|
|
78
|
-
colorTemp={props.cct}
|
|
79
|
-
brightness={props.brightness}
|
|
80
|
-
onCCTChange={cct => {
|
|
81
|
-
props.onCCTChange(cct, false)
|
|
82
|
-
}}
|
|
83
|
-
onCCTChangeComplete={cct => {
|
|
84
|
-
props.onCCTChange(cct, true)
|
|
85
|
-
}}
|
|
86
|
-
onBrightnessChange={brightness => {
|
|
87
|
-
props.onBrightnessChange(brightness, false)
|
|
88
|
-
}}
|
|
89
|
-
onBrightnessChangeComplete={brightness => {
|
|
90
|
-
props.onBrightnessChange(brightness, true)
|
|
91
|
-
}}/>
|
|
92
|
-
<Spacer/>
|
|
93
|
-
</>
|
|
94
|
-
}
|
|
95
|
-
</View>
|
|
96
|
-
)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const styles = StyleSheet.create({
|
|
100
|
-
segmentControl: {
|
|
101
|
-
marginHorizontal: cx(16),
|
|
102
|
-
},
|
|
103
|
-
})
|
|
104
|
-
|
|
1
|
+
import { StyleSheet, View } from 'react-native'
|
|
2
|
+
import React, { memo } from 'react'
|
|
3
|
+
import { Utils } from 'tuya-panel-kit'
|
|
4
|
+
import { useReactive } from 'ahooks'
|
|
5
|
+
import Spacer from './Spacer'
|
|
6
|
+
import ColorAdjustView from './ColorAdjustView'
|
|
7
|
+
import ColorTempAdjustView from './ColorTempAdjustView'
|
|
8
|
+
import SegmentControl from './segmentControl'
|
|
9
|
+
import I18n from '../i18n/index'
|
|
10
|
+
|
|
11
|
+
const { convertX: cx } = Utils.RatioUtils
|
|
12
|
+
|
|
13
|
+
export interface HSV {
|
|
14
|
+
h: number
|
|
15
|
+
s: number
|
|
16
|
+
v: number
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface LampConfigViewProps {
|
|
20
|
+
isSupportColor: boolean
|
|
21
|
+
isSupportCCT: boolean
|
|
22
|
+
isSupportBrightness: boolean
|
|
23
|
+
isColorMode: boolean
|
|
24
|
+
setIsColorMode: (isColorMode: boolean) => void
|
|
25
|
+
minBrightness?: number // 最小亮度
|
|
26
|
+
minSaturation?: number // 最小Saturation
|
|
27
|
+
reserveSV?: boolean // 保留 s v
|
|
28
|
+
hsv: HSV
|
|
29
|
+
onHSVChange: (hsv: HSV, isComplete: boolean) => void
|
|
30
|
+
cct: number
|
|
31
|
+
onCCTChange: (cct: number, isComplete: boolean) => void
|
|
32
|
+
brightness: number
|
|
33
|
+
onBrightnessChange: (brightness: number, isComplete: boolean) => void
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const LampAdjustView2 = (props: LampConfigViewProps) => {
|
|
37
|
+
|
|
38
|
+
const state = useReactive({
|
|
39
|
+
hasSegmentControl: props.isSupportColor && (props.isSupportBrightness || props.isSupportCCT),
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
return (
|
|
43
|
+
<View>
|
|
44
|
+
{state.hasSegmentControl &&
|
|
45
|
+
<SegmentControl
|
|
46
|
+
style={styles.segmentControl}
|
|
47
|
+
title1={I18n.getLang('light_sources_tile_rgb_lighting_tab_color')}
|
|
48
|
+
title2={I18n.getLang('light_sources_tile_rgb_lighting_tab_white')}
|
|
49
|
+
isFirst={props.isColorMode}
|
|
50
|
+
setIsFirst={props.setIsColorMode}/>
|
|
51
|
+
}
|
|
52
|
+
{((state.hasSegmentControl && props.isColorMode) || (!state.hasSegmentControl && props.isSupportColor)) &&
|
|
53
|
+
<>
|
|
54
|
+
{state.hasSegmentControl && <Spacer height={cx(10)}/>}
|
|
55
|
+
<ColorAdjustView
|
|
56
|
+
h={props.hsv.h}
|
|
57
|
+
s={props.hsv.s}
|
|
58
|
+
v={props.hsv.v}
|
|
59
|
+
minBrightness={props.minBrightness}
|
|
60
|
+
minSaturation={props.minSaturation}
|
|
61
|
+
reserveSV={props.reserveSV}
|
|
62
|
+
onHSVChange={(h, s, v) => {
|
|
63
|
+
props.onHSVChange({ h, s, v }, false)
|
|
64
|
+
}}
|
|
65
|
+
onHSVChangeComplete={(h, s, v) => {
|
|
66
|
+
props.onHSVChange({ h, s, v }, true)
|
|
67
|
+
}}/>
|
|
68
|
+
<Spacer/>
|
|
69
|
+
</>
|
|
70
|
+
}
|
|
71
|
+
{((state.hasSegmentControl && !props.isColorMode) || (!state.hasSegmentControl && (props.isSupportBrightness || props.isSupportCCT))) &&
|
|
72
|
+
<>
|
|
73
|
+
{state.hasSegmentControl && <Spacer height={cx(10)}/>}
|
|
74
|
+
<ColorTempAdjustView
|
|
75
|
+
minBrightness={props.minBrightness}
|
|
76
|
+
isSupportTemperature={props.isSupportCCT}
|
|
77
|
+
isSupportBrightness={props.isSupportBrightness}
|
|
78
|
+
colorTemp={props.cct}
|
|
79
|
+
brightness={props.brightness}
|
|
80
|
+
onCCTChange={cct => {
|
|
81
|
+
props.onCCTChange(cct, false)
|
|
82
|
+
}}
|
|
83
|
+
onCCTChangeComplete={cct => {
|
|
84
|
+
props.onCCTChange(cct, true)
|
|
85
|
+
}}
|
|
86
|
+
onBrightnessChange={brightness => {
|
|
87
|
+
props.onBrightnessChange(brightness, false)
|
|
88
|
+
}}
|
|
89
|
+
onBrightnessChangeComplete={brightness => {
|
|
90
|
+
props.onBrightnessChange(brightness, true)
|
|
91
|
+
}}/>
|
|
92
|
+
<Spacer/>
|
|
93
|
+
</>
|
|
94
|
+
}
|
|
95
|
+
</View>
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
const styles = StyleSheet.create({
|
|
100
|
+
segmentControl: {
|
|
101
|
+
marginHorizontal: cx(16),
|
|
102
|
+
},
|
|
103
|
+
})
|
|
104
|
+
|
|
105
105
|
export default memo(LampAdjustView2)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { StyleProp } from 'react-native';
|
|
2
|
-
interface LinearGradientLineProps extends StyleProp<any> {
|
|
3
|
-
width: number;
|
|
4
|
-
height: number;
|
|
5
|
-
colors: string[];
|
|
6
|
-
orientation?: 'vertical' | 'horizontal';
|
|
7
|
-
}
|
|
8
|
-
declare const LinearGradientLine: (props: LinearGradientLineProps) => JSX.Element;
|
|
9
|
-
export default LinearGradientLine;
|
|
1
|
+
import { StyleProp } from 'react-native';
|
|
2
|
+
interface LinearGradientLineProps extends StyleProp<any> {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
colors: string[];
|
|
6
|
+
orientation?: 'vertical' | 'horizontal';
|
|
7
|
+
}
|
|
8
|
+
declare const LinearGradientLine: (props: LinearGradientLineProps) => JSX.Element;
|
|
9
|
+
export default LinearGradientLine;
|
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
import {LinearGradient} from 'tuya-panel-kit'
|
|
2
|
-
import React, {useEffect} from 'react'
|
|
3
|
-
import {Rect} from 'react-native-svg'
|
|
4
|
-
import {StyleProp, View} from 'react-native'
|
|
5
|
-
import {useReactive} from 'ahooks'
|
|
6
|
-
|
|
7
|
-
interface LinearGradientLineProps extends StyleProp<any> {
|
|
8
|
-
width: number
|
|
9
|
-
height: number
|
|
10
|
-
colors: string[]
|
|
11
|
-
orientation?: 'vertical' | 'horizontal'
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const LinearGradientLine = (props: LinearGradientLineProps) => {
|
|
15
|
-
const {width, height} = props
|
|
16
|
-
|
|
17
|
-
const state = useReactive({
|
|
18
|
-
x1: '0%',
|
|
19
|
-
y1: '50%',
|
|
20
|
-
x2: '100%',
|
|
21
|
-
y2: '50%',
|
|
22
|
-
stops: {},
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (props.orientation === 'vertical') {
|
|
27
|
-
state.x1 = '50%'
|
|
28
|
-
state.y1 = '0%'
|
|
29
|
-
state.x2 = '50%'
|
|
30
|
-
state.y2 = '100%'
|
|
31
|
-
} else {
|
|
32
|
-
state.x1 = '0%'
|
|
33
|
-
state.y1 = '50%'
|
|
34
|
-
state.x2 = '100%'
|
|
35
|
-
state.y2 = '50%'
|
|
36
|
-
}
|
|
37
|
-
}, [props.orientation])
|
|
38
|
-
|
|
39
|
-
useEffect(() => {
|
|
40
|
-
const p = (1 / (props.colors.length - 1)) * 100
|
|
41
|
-
let pc = 0
|
|
42
|
-
props.colors.forEach(color => {
|
|
43
|
-
state.stops[`${pc}%`] = color
|
|
44
|
-
pc += p
|
|
45
|
-
})
|
|
46
|
-
}, [props.colors])
|
|
47
|
-
|
|
48
|
-
return (
|
|
49
|
-
<View style={[{ width, height, overflow: 'hidden' }, props.style]}>
|
|
50
|
-
{JSON.stringify(state.stops) !== '{}' && <LinearGradient
|
|
51
|
-
gradientId="Gradient"
|
|
52
|
-
style={{ width, height }}
|
|
53
|
-
x1={state.x1}
|
|
54
|
-
y1={state.y1}
|
|
55
|
-
x2={state.x2}
|
|
56
|
-
y2={state.y2}
|
|
57
|
-
stops={state.stops}>
|
|
58
|
-
<Rect width={width} height={height} />
|
|
59
|
-
</LinearGradient>}
|
|
60
|
-
</View>
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
|
|
1
|
+
import {LinearGradient} from 'tuya-panel-kit'
|
|
2
|
+
import React, {useEffect} from 'react'
|
|
3
|
+
import {Rect} from 'react-native-svg'
|
|
4
|
+
import {StyleProp, View} from 'react-native'
|
|
5
|
+
import {useReactive} from 'ahooks'
|
|
6
|
+
|
|
7
|
+
interface LinearGradientLineProps extends StyleProp<any> {
|
|
8
|
+
width: number
|
|
9
|
+
height: number
|
|
10
|
+
colors: string[]
|
|
11
|
+
orientation?: 'vertical' | 'horizontal'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const LinearGradientLine = (props: LinearGradientLineProps) => {
|
|
15
|
+
const {width, height} = props
|
|
16
|
+
|
|
17
|
+
const state = useReactive({
|
|
18
|
+
x1: '0%',
|
|
19
|
+
y1: '50%',
|
|
20
|
+
x2: '100%',
|
|
21
|
+
y2: '50%',
|
|
22
|
+
stops: {},
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (props.orientation === 'vertical') {
|
|
27
|
+
state.x1 = '50%'
|
|
28
|
+
state.y1 = '0%'
|
|
29
|
+
state.x2 = '50%'
|
|
30
|
+
state.y2 = '100%'
|
|
31
|
+
} else {
|
|
32
|
+
state.x1 = '0%'
|
|
33
|
+
state.y1 = '50%'
|
|
34
|
+
state.x2 = '100%'
|
|
35
|
+
state.y2 = '50%'
|
|
36
|
+
}
|
|
37
|
+
}, [props.orientation])
|
|
38
|
+
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
const p = (1 / (props.colors.length - 1)) * 100
|
|
41
|
+
let pc = 0
|
|
42
|
+
props.colors.forEach(color => {
|
|
43
|
+
state.stops[`${pc}%`] = color
|
|
44
|
+
pc += p
|
|
45
|
+
})
|
|
46
|
+
}, [props.colors])
|
|
47
|
+
|
|
48
|
+
return (
|
|
49
|
+
<View style={[{ width, height, overflow: 'hidden' }, props.style]}>
|
|
50
|
+
{JSON.stringify(state.stops) !== '{}' && <LinearGradient
|
|
51
|
+
gradientId="Gradient"
|
|
52
|
+
style={{ width, height }}
|
|
53
|
+
x1={state.x1}
|
|
54
|
+
y1={state.y1}
|
|
55
|
+
x2={state.x2}
|
|
56
|
+
y2={state.y2}
|
|
57
|
+
stops={state.stops}>
|
|
58
|
+
<Rect width={width} height={height} />
|
|
59
|
+
</LinearGradient>}
|
|
60
|
+
</View>
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
|
|
64
64
|
export default LinearGradientLine
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import {Progress, Utils} from "tuya-panel-kit";
|
|
2
|
-
import {StyleProp, View, ViewProps, ViewStyle} from "react-native";
|
|
3
|
-
import React, {PropsWithChildren} from "react";
|
|
4
|
-
import {useInterval, useReactive} from "ahooks";
|
|
5
|
-
|
|
6
|
-
const {convertX: cx} = Utils.RatioUtils;
|
|
7
|
-
|
|
8
|
-
interface LoadingProp extends PropsWithChildren<ViewProps> {
|
|
9
|
-
color?: string
|
|
10
|
-
progressStyle?: StyleProp<ViewStyle>
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const LoadingView = (props: LoadingProp = {color: '#ff6600', progressStyle: {width: cx(100), height: cx(100)}}) => {
|
|
14
|
-
const state = useReactive({
|
|
15
|
-
andDegree: 0
|
|
16
|
-
})
|
|
17
|
-
useInterval(() => {
|
|
18
|
-
state.andDegree = (state.andDegree + 20) % 360
|
|
19
|
-
}, 200, {immediate: true})
|
|
20
|
-
|
|
21
|
-
const fillColor = props.color || '#ff6600'
|
|
22
|
-
return <View style={[{justifyContent: 'center', alignItems: 'center'}, props.style]}>
|
|
23
|
-
<Progress.Double
|
|
24
|
-
backColor={props.color}
|
|
25
|
-
minThumbFill={fillColor}
|
|
26
|
-
minThumbStroke={props.color}
|
|
27
|
-
thumbFill={fillColor}
|
|
28
|
-
thumbStroke={props.color}
|
|
29
|
-
startColor={props.color}
|
|
30
|
-
endColor={props.color}
|
|
31
|
-
maxValue={360}
|
|
32
|
-
startDegree={0}
|
|
33
|
-
andDegree={state.andDegree}
|
|
34
|
-
style={props.progressStyle}
|
|
35
|
-
/>
|
|
36
|
-
</View>
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export default LoadingView
|
|
1
|
+
import {Progress, Utils} from "tuya-panel-kit";
|
|
2
|
+
import {StyleProp, View, ViewProps, ViewStyle} from "react-native";
|
|
3
|
+
import React, {PropsWithChildren} from "react";
|
|
4
|
+
import {useInterval, useReactive} from "ahooks";
|
|
5
|
+
|
|
6
|
+
const {convertX: cx} = Utils.RatioUtils;
|
|
7
|
+
|
|
8
|
+
interface LoadingProp extends PropsWithChildren<ViewProps> {
|
|
9
|
+
color?: string
|
|
10
|
+
progressStyle?: StyleProp<ViewStyle>
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const LoadingView = (props: LoadingProp = {color: '#ff6600', progressStyle: {width: cx(100), height: cx(100)}}) => {
|
|
14
|
+
const state = useReactive({
|
|
15
|
+
andDegree: 0
|
|
16
|
+
})
|
|
17
|
+
useInterval(() => {
|
|
18
|
+
state.andDegree = (state.andDegree + 20) % 360
|
|
19
|
+
}, 200, {immediate: true})
|
|
20
|
+
|
|
21
|
+
const fillColor = props.color || '#ff6600'
|
|
22
|
+
return <View style={[{justifyContent: 'center', alignItems: 'center'}, props.style]}>
|
|
23
|
+
<Progress.Double
|
|
24
|
+
backColor={props.color}
|
|
25
|
+
minThumbFill={fillColor}
|
|
26
|
+
minThumbStroke={props.color}
|
|
27
|
+
thumbFill={fillColor}
|
|
28
|
+
thumbStroke={props.color}
|
|
29
|
+
startColor={props.color}
|
|
30
|
+
endColor={props.color}
|
|
31
|
+
maxValue={360}
|
|
32
|
+
startDegree={0}
|
|
33
|
+
andDegree={state.andDegree}
|
|
34
|
+
style={props.progressStyle}
|
|
35
|
+
/>
|
|
36
|
+
</View>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export default LoadingView
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export declare type MoodColorsLineType = 'gradient' | 'separate';
|
|
2
|
-
interface MoodColorsLineProps {
|
|
3
|
-
width?: number;
|
|
4
|
-
height?: number;
|
|
5
|
-
type: MoodColorsLineType;
|
|
6
|
-
colors: string[];
|
|
7
|
-
}
|
|
8
|
-
export default function MoodColorsLine(props: MoodColorsLineProps): JSX.Element;
|
|
9
|
-
export {};
|
|
1
|
+
export declare type MoodColorsLineType = 'gradient' | 'separate';
|
|
2
|
+
interface MoodColorsLineProps {
|
|
3
|
+
width?: number;
|
|
4
|
+
height?: number;
|
|
5
|
+
type: MoodColorsLineType;
|
|
6
|
+
colors: string[];
|
|
7
|
+
}
|
|
8
|
+
export default function MoodColorsLine(props: MoodColorsLineProps): JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import LinearGradientLine from './LinearGradientLine'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import {Utils} from 'tuya-panel-kit'
|
|
4
|
-
import {StyleProp, StyleSheet, ViewStyle} from 'react-native'
|
|
5
|
-
import ColorsLine from './ColorsLine'
|
|
6
|
-
|
|
7
|
-
const cx = Utils.RatioUtils.convertX
|
|
8
|
-
|
|
9
|
-
export type MoodColorsLineType = 'gradient' | 'separate'
|
|
10
|
-
|
|
11
|
-
interface MoodColorsLineProps {
|
|
12
|
-
width?: number
|
|
13
|
-
height?: number
|
|
14
|
-
type: MoodColorsLineType
|
|
15
|
-
colors: string[]
|
|
16
|
-
nodeStyle?: StyleProp<ViewStyle>
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default function MoodColorsLine(props: MoodColorsLineProps) {
|
|
20
|
-
const width = props.width || cx(295)
|
|
21
|
-
const height = props.height || cx(24)
|
|
22
|
-
if (props.type === 'separate' || props.colors.length < 2) {
|
|
23
|
-
return (<ColorsLine colors={props.colors} style={{width, height}} nodeStyle={props.nodeStyle}/>)
|
|
24
|
-
} else {
|
|
25
|
-
return (
|
|
26
|
-
<LinearGradientLine
|
|
27
|
-
width={width}
|
|
28
|
-
height={height}
|
|
29
|
-
style={styles.gradient}
|
|
30
|
-
colors={props.colors}/>
|
|
31
|
-
)
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const styles = StyleSheet.create({
|
|
36
|
-
gradient: {
|
|
37
|
-
borderRadius: cx(8),
|
|
38
|
-
},
|
|
1
|
+
import LinearGradientLine from './LinearGradientLine'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import {Utils} from 'tuya-panel-kit'
|
|
4
|
+
import {StyleProp, StyleSheet, ViewStyle} from 'react-native'
|
|
5
|
+
import ColorsLine from './ColorsLine'
|
|
6
|
+
|
|
7
|
+
const cx = Utils.RatioUtils.convertX
|
|
8
|
+
|
|
9
|
+
export type MoodColorsLineType = 'gradient' | 'separate'
|
|
10
|
+
|
|
11
|
+
interface MoodColorsLineProps {
|
|
12
|
+
width?: number
|
|
13
|
+
height?: number
|
|
14
|
+
type: MoodColorsLineType
|
|
15
|
+
colors: string[]
|
|
16
|
+
nodeStyle?: StyleProp<ViewStyle>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default function MoodColorsLine(props: MoodColorsLineProps) {
|
|
20
|
+
const width = props.width || cx(295)
|
|
21
|
+
const height = props.height || cx(24)
|
|
22
|
+
if (props.type === 'separate' || props.colors.length < 2) {
|
|
23
|
+
return (<ColorsLine colors={props.colors} style={{width, height}} nodeStyle={props.nodeStyle}/>)
|
|
24
|
+
} else {
|
|
25
|
+
return (
|
|
26
|
+
<LinearGradientLine
|
|
27
|
+
width={width}
|
|
28
|
+
height={height}
|
|
29
|
+
style={styles.gradient}
|
|
30
|
+
colors={props.colors}/>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const styles = StyleSheet.create({
|
|
36
|
+
gradient: {
|
|
37
|
+
borderRadius: cx(8),
|
|
38
|
+
},
|
|
39
39
|
})
|
package/src/components/Page.d.ts
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { PropsWithChildren } from 'react';
|
|
2
|
-
import { ViewProps } from 'react-native';
|
|
3
|
-
interface PageProps extends PropsWithChildren<ViewProps> {
|
|
4
|
-
rightButtonDisabled?: boolean;
|
|
5
|
-
backText: string;
|
|
6
|
-
onBackClick?: () => void;
|
|
7
|
-
showBackDialog?: boolean;
|
|
8
|
-
backDialogTitle?: string;
|
|
9
|
-
backDialogContent?: string;
|
|
10
|
-
rightButtonIcon?: string;
|
|
11
|
-
rightButtonStyle?: any | undefined;
|
|
12
|
-
rightButtonIconClick?: () => void;
|
|
13
|
-
headlineText?: string;
|
|
14
|
-
headlineIcon?: string | number;
|
|
15
|
-
onHeadlineIconClick?: () => void;
|
|
16
|
-
showGreenery?: boolean;
|
|
17
|
-
greeneryIcon?: string | undefined | number;
|
|
18
|
-
loading?: boolean;
|
|
19
|
-
}
|
|
20
|
-
declare const Page: (props: PageProps) => JSX.Element;
|
|
21
|
-
export default Page;
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { ViewProps } from 'react-native';
|
|
3
|
+
interface PageProps extends PropsWithChildren<ViewProps> {
|
|
4
|
+
rightButtonDisabled?: boolean;
|
|
5
|
+
backText: string;
|
|
6
|
+
onBackClick?: () => void;
|
|
7
|
+
showBackDialog?: boolean;
|
|
8
|
+
backDialogTitle?: string;
|
|
9
|
+
backDialogContent?: string;
|
|
10
|
+
rightButtonIcon?: string;
|
|
11
|
+
rightButtonStyle?: any | undefined;
|
|
12
|
+
rightButtonIconClick?: () => void;
|
|
13
|
+
headlineText?: string;
|
|
14
|
+
headlineIcon?: string | number;
|
|
15
|
+
onHeadlineIconClick?: () => void;
|
|
16
|
+
showGreenery?: boolean;
|
|
17
|
+
greeneryIcon?: string | undefined | number;
|
|
18
|
+
loading?: boolean;
|
|
19
|
+
}
|
|
20
|
+
declare const Page: (props: PageProps) => JSX.Element;
|
|
21
|
+
export default Page;
|