@eohjsc/react-native-smart-city 0.4.86 → 0.4.87
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/commons/Action/ItemQuickAction.js +105 -124
- package/src/commons/ActionGroup/OnOffTemplate/OnOffButtonTemplate.js +1 -1
- package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +0 -1
- package/src/commons/ActionGroup/ThreeButtonTemplate/components/ThreeButtonDefault.js +2 -2
- package/src/commons/ActionGroup/ThreeButtonTemplate/index.js +1 -1
- package/src/commons/Device/RainningSensor/CurrentRainSensor.js +1 -5
- package/src/commons/IconComponent/index.js +2 -3
- package/src/configs/Constants.js +1 -0
- package/src/screens/Automate/ScriptDetail/utils.js +12 -11
- package/src/screens/Notification/__test__/Notification.test.js +25 -0
- package/src/screens/Notification/components/NotificationItem.js +58 -36
package/package.json
CHANGED
|
@@ -1,144 +1,125 @@
|
|
|
1
1
|
import React, { memo, useCallback, useEffect, useState } from 'react';
|
|
2
|
-
import { TouchableOpacity, View } from 'react-native';
|
|
2
|
+
import { Platform, TouchableOpacity, View } from 'react-native';
|
|
3
3
|
import { AccessibilityLabel } from '../../configs/Constants';
|
|
4
4
|
import { useSCContextSelector } from '../../context';
|
|
5
5
|
import { useRemoteControl } from '../../hooks/IoT';
|
|
6
6
|
import { useConfigGlobalState } from '../../iot/states';
|
|
7
7
|
import IconComponent from '../IconComponent';
|
|
8
|
-
import { Colors } from '../../configs';
|
|
9
8
|
|
|
10
|
-
const ItemQuickAction = memo(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const isFault = currentValue === 2; // phukhaco fault value
|
|
28
|
-
const [isOn, setIsOn] = useState(currentValue);
|
|
9
|
+
const ItemQuickAction = memo(({ sensor, wrapperStyle, setStatus }) => {
|
|
10
|
+
const { quick_action } = sensor || {};
|
|
11
|
+
const {
|
|
12
|
+
config_id,
|
|
13
|
+
off_action,
|
|
14
|
+
on_status,
|
|
15
|
+
on_action,
|
|
16
|
+
off_status,
|
|
17
|
+
interval,
|
|
18
|
+
will_auto_update_status,
|
|
19
|
+
on_state_values,
|
|
20
|
+
} = quick_action || {};
|
|
21
|
+
const [action, setAction] = useState(sensor?.action);
|
|
22
|
+
// eslint-disable-next-line no-unused-vars
|
|
23
|
+
const [configValues, _] = useConfigGlobalState('configValues');
|
|
24
|
+
const currentValue = configValues[config_id]?.value || 0;
|
|
25
|
+
const [isOn, setIsOn] = useState(currentValue);
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const sendRemoteCommand = useRemoteControl();
|
|
28
|
+
const [processing, setProcessing] = useState(false);
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
useEffect(() => {
|
|
41
|
-
setIsOn(getIsOnValue());
|
|
42
|
-
}, [getIsOnValue]);
|
|
30
|
+
const getIsOnValue = useCallback(() => {
|
|
31
|
+
if (on_state_values && on_state_values.length > 0) {
|
|
32
|
+
return on_state_values.includes(currentValue);
|
|
33
|
+
}
|
|
34
|
+
return !!currentValue;
|
|
35
|
+
}, [currentValue, on_state_values]);
|
|
43
36
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
setIsOn(getIsOnValue());
|
|
39
|
+
}, [getIsOnValue]);
|
|
48
40
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
setAction(on_action);
|
|
54
|
-
setStatus && setStatus(off_status);
|
|
55
|
-
}
|
|
56
|
-
}, [
|
|
57
|
-
isOn,
|
|
58
|
-
setStatus,
|
|
59
|
-
quick_action,
|
|
60
|
-
off_action,
|
|
61
|
-
on_status,
|
|
62
|
-
on_action,
|
|
63
|
-
off_status,
|
|
64
|
-
]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!quick_action) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
65
45
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
config_value: 0,
|
|
83
|
-
};
|
|
84
|
-
} else {
|
|
85
|
-
data = {
|
|
86
|
-
config_id: action?.allow_config_store_value_id,
|
|
87
|
-
config_value: 1,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
data = JSON.stringify(data);
|
|
91
|
-
}
|
|
92
|
-
await sendRemoteCommand(sensor, action, data, userId);
|
|
46
|
+
if (isOn) {
|
|
47
|
+
setAction(off_action);
|
|
48
|
+
setStatus && setStatus(on_status);
|
|
49
|
+
} else {
|
|
50
|
+
setAction(on_action);
|
|
51
|
+
setStatus && setStatus(off_status);
|
|
52
|
+
}
|
|
53
|
+
}, [
|
|
54
|
+
isOn,
|
|
55
|
+
setStatus,
|
|
56
|
+
quick_action,
|
|
57
|
+
off_action,
|
|
58
|
+
on_status,
|
|
59
|
+
on_action,
|
|
60
|
+
off_status,
|
|
61
|
+
]);
|
|
93
62
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
63
|
+
const userId = useSCContextSelector((state) => state?.auth.account.user.id);
|
|
64
|
+
const onActionPress = useCallback(async () => {
|
|
65
|
+
if (processing || !action) {
|
|
66
|
+
/* istanbul ignore next */
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
setProcessing(true);
|
|
70
|
+
let data = null;
|
|
71
|
+
if (action?.allow_config_store_value_id === config_id) {
|
|
72
|
+
if (action?.name?.toLowerCase().includes('off')) {
|
|
73
|
+
data = {
|
|
74
|
+
config_id: action?.allow_config_store_value_id,
|
|
75
|
+
config_value: 0,
|
|
76
|
+
};
|
|
77
|
+
} else {
|
|
78
|
+
data = {
|
|
79
|
+
config_id: action?.allow_config_store_value_id,
|
|
80
|
+
config_value: 1,
|
|
81
|
+
};
|
|
98
82
|
}
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
processing,
|
|
103
|
-
action,
|
|
104
|
-
config_id,
|
|
105
|
-
sendRemoteCommand,
|
|
106
|
-
sensor,
|
|
107
|
-
userId,
|
|
108
|
-
will_auto_update_status,
|
|
109
|
-
interval,
|
|
110
|
-
on_action?.id,
|
|
111
|
-
]);
|
|
83
|
+
data = JSON.stringify(data);
|
|
84
|
+
}
|
|
85
|
+
await sendRemoteCommand(sensor, action, data, userId);
|
|
112
86
|
|
|
113
|
-
if (!
|
|
114
|
-
|
|
87
|
+
if (!will_auto_update_status) {
|
|
88
|
+
setTimeout(() => {
|
|
89
|
+
setIsOn(action.id === on_action.id);
|
|
90
|
+
}, interval);
|
|
115
91
|
}
|
|
92
|
+
setProcessing(false);
|
|
93
|
+
}, [
|
|
94
|
+
processing,
|
|
95
|
+
action,
|
|
96
|
+
config_id,
|
|
97
|
+
sendRemoteCommand,
|
|
98
|
+
sensor,
|
|
99
|
+
userId,
|
|
100
|
+
will_auto_update_status,
|
|
101
|
+
interval,
|
|
102
|
+
on_action?.id,
|
|
103
|
+
]);
|
|
116
104
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
accessibilityLabel={`${AccessibilityLabel.ITEM_QUICK_ACTION_PRESS}-${sensor?.id}`}
|
|
120
|
-
onPress={onActionPress}
|
|
121
|
-
>
|
|
122
|
-
<View style={wrapperStyle}>
|
|
123
|
-
{isFault ? (
|
|
124
|
-
<IconComponent
|
|
125
|
-
icon={'WarningOutlined'}
|
|
126
|
-
color={Colors.Red}
|
|
127
|
-
iconSize={iconSize}
|
|
128
|
-
size={iconSize}
|
|
129
|
-
/>
|
|
130
|
-
) : (
|
|
131
|
-
<IconComponent
|
|
132
|
-
icon={action?.icon_kit || action?.icon || 'PoweroffOutlined'}
|
|
133
|
-
isOn={isOn}
|
|
134
|
-
iconSize={iconSize}
|
|
135
|
-
size={iconSize}
|
|
136
|
-
/>
|
|
137
|
-
)}
|
|
138
|
-
</View>
|
|
139
|
-
</TouchableOpacity>
|
|
140
|
-
);
|
|
105
|
+
if (!config_id) {
|
|
106
|
+
return <View />;
|
|
141
107
|
}
|
|
142
|
-
|
|
108
|
+
|
|
109
|
+
return (
|
|
110
|
+
<TouchableOpacity
|
|
111
|
+
accessibilityLabel={`${AccessibilityLabel.ITEM_QUICK_ACTION_PRESS}-${sensor?.id}`}
|
|
112
|
+
onPress={onActionPress}
|
|
113
|
+
>
|
|
114
|
+
<View style={wrapperStyle}>
|
|
115
|
+
<IconComponent
|
|
116
|
+
icon={action?.icon_kit || action?.icon || 'PoweroffOutlined'}
|
|
117
|
+
isOn={isOn}
|
|
118
|
+
size={Platform.OS === 'ios' ? 20 : 30}
|
|
119
|
+
/>
|
|
120
|
+
</View>
|
|
121
|
+
</TouchableOpacity>
|
|
122
|
+
);
|
|
123
|
+
});
|
|
143
124
|
|
|
144
125
|
export default ItemQuickAction;
|
|
@@ -22,7 +22,7 @@ const ThreeButtonDefault = memo(
|
|
|
22
22
|
return icon2 === 'stop' ? (
|
|
23
23
|
<View style={styles.squareStop} />
|
|
24
24
|
) : (
|
|
25
|
-
<IconComponent icon={icon2}
|
|
25
|
+
<IconComponent icon={icon2} size={30} />
|
|
26
26
|
);
|
|
27
27
|
};
|
|
28
28
|
|
|
@@ -87,7 +87,7 @@ const ThreeButtonDefault = memo(
|
|
|
87
87
|
{item?.id === 2 ? (
|
|
88
88
|
<Icon2CT />
|
|
89
89
|
) : (
|
|
90
|
-
<IconComponent icon={item?.icon}
|
|
90
|
+
<IconComponent icon={item?.icon} size={30} />
|
|
91
91
|
)}
|
|
92
92
|
</View>
|
|
93
93
|
<Text style={styles.text}>{item?.text}</Text>
|
|
@@ -41,11 +41,7 @@ const CurrentRainSensor = memo(
|
|
|
41
41
|
end={{ x: 1, y: 1 }}
|
|
42
42
|
/>
|
|
43
43
|
{icon_kit_data?.icon || icon ? (
|
|
44
|
-
<IconComponent
|
|
45
|
-
size={iconSize}
|
|
46
|
-
iconSize={iconSize}
|
|
47
|
-
icon={icon_kit_data?.icon || icon}
|
|
48
|
-
/>
|
|
44
|
+
<IconComponent size={iconSize} icon={icon_kit_data?.icon || icon} />
|
|
49
45
|
) : (
|
|
50
46
|
<FImage
|
|
51
47
|
source={images.activeCurrentSensor}
|
|
@@ -10,7 +10,6 @@ const IconComponent = memo(
|
|
|
10
10
|
icon,
|
|
11
11
|
isOn = false,
|
|
12
12
|
size = 30,
|
|
13
|
-
iconSize = 30,
|
|
14
13
|
style,
|
|
15
14
|
antIconStyle,
|
|
16
15
|
color,
|
|
@@ -66,7 +65,7 @@ const IconComponent = memo(
|
|
|
66
65
|
<IconFill
|
|
67
66
|
name={displayIcon}
|
|
68
67
|
color={colorIcon}
|
|
69
|
-
size={
|
|
68
|
+
size={size}
|
|
70
69
|
style={[extraStyle, antIconStyle || style]}
|
|
71
70
|
/>
|
|
72
71
|
);
|
|
@@ -80,7 +79,7 @@ const IconComponent = memo(
|
|
|
80
79
|
<IconOutline
|
|
81
80
|
name={iconCT}
|
|
82
81
|
color={colorIcon}
|
|
83
|
-
size={
|
|
82
|
+
size={size}
|
|
84
83
|
style={[extraStyle, antIconStyle || style]}
|
|
85
84
|
/>
|
|
86
85
|
);
|
package/src/configs/Constants.js
CHANGED
|
@@ -233,6 +233,7 @@ export const NOTIFICATION_TYPES = {
|
|
|
233
233
|
LOW_BATTERY: 'LOW_BATTERY',
|
|
234
234
|
BROADCAST_NOTIFICATION: 'BROADCAST_NOTIFICATION',
|
|
235
235
|
SUBSCRIBE_SUCCESS: 'SUBSCRIBE_SUCCESS',
|
|
236
|
+
TRIGGER_SCRIPT_NOTIFY: 'TRIGGER_SCRIPT_NOTIFY',
|
|
236
237
|
};
|
|
237
238
|
|
|
238
239
|
export const ACTIVITY_LOG_TYPES = {
|
|
@@ -22,12 +22,14 @@ export const generateAutomationDataConditionText = (
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export const getAutomationData = (automate) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
} else if (
|
|
30
|
-
return
|
|
25
|
+
const { type, event_sensor, event_action, schedule, event, value_change } =
|
|
26
|
+
automate;
|
|
27
|
+
if ([AUTOMATE_TYPE.VALUE_CHANGE].includes(type)) {
|
|
28
|
+
return value_change || event_sensor;
|
|
29
|
+
} else if (type === AUTOMATE_TYPE.SCHEDULE) {
|
|
30
|
+
return schedule;
|
|
31
|
+
} else if ([AUTOMATE_TYPE.EVENT].includes(type)) {
|
|
32
|
+
return event || event_action || event_sensor;
|
|
31
33
|
}
|
|
32
34
|
return null;
|
|
33
35
|
};
|
|
@@ -58,8 +60,7 @@ const generateAutomationConditionValueEvaluation = (
|
|
|
58
60
|
}
|
|
59
61
|
let textEvent = '';
|
|
60
62
|
if (config_name) {
|
|
61
|
-
|
|
62
|
-
textEvent = `${config_name} - ${t(stateConditionData?.stateValue[value])}`;
|
|
63
|
+
textEvent = config_name;
|
|
63
64
|
} else {
|
|
64
65
|
textEvent = `${end_device_name} - ${action}`;
|
|
65
66
|
}
|
|
@@ -75,8 +76,8 @@ export const generateAutomationConditionText = (
|
|
|
75
76
|
if (!automateData) {
|
|
76
77
|
return;
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
-
if ([AUTOMATE_TYPE.VALUE_CHANGE].includes(
|
|
79
|
+
const { type } = automate;
|
|
80
|
+
if ([AUTOMATE_TYPE.VALUE_CHANGE].includes(type)) {
|
|
80
81
|
const { condition, config_name, value } = automateData;
|
|
81
82
|
if (condition === 'value_evaluation') {
|
|
82
83
|
return generateAutomationConditionValueEvaluation(
|
|
@@ -95,7 +96,7 @@ export const generateAutomationConditionText = (
|
|
|
95
96
|
text = 'equal';
|
|
96
97
|
}
|
|
97
98
|
return `${config_name} ${t(text)} ${value}`;
|
|
98
|
-
} else if (
|
|
99
|
+
} else if (type === AUTOMATE_TYPE.SCHEDULE) {
|
|
99
100
|
const { repeat, time_repeat, date_repeat, weekday_repeat } = automateData;
|
|
100
101
|
const time =
|
|
101
102
|
time_repeat?.length >= 8
|
|
@@ -13,6 +13,7 @@ import api from '../../../utils/Apis/axios';
|
|
|
13
13
|
import { WrapHeaderScrollable } from '../../../commons';
|
|
14
14
|
|
|
15
15
|
import { getPusher } from '../../../utils/Pusher';
|
|
16
|
+
import { NOTIFICATION_TYPES } from '../../../configs/Constants';
|
|
16
17
|
|
|
17
18
|
const wrapComponent = () => (
|
|
18
19
|
<SCProvider initState={mockSCStore({})}>
|
|
@@ -164,4 +165,28 @@ describe('test Notification', () => {
|
|
|
164
165
|
});
|
|
165
166
|
expect(getPusher().unsubscribe).toBeCalledWith('private-user-1');
|
|
166
167
|
});
|
|
168
|
+
it('test render trigger script notification', async () => {
|
|
169
|
+
const response = {
|
|
170
|
+
results: [
|
|
171
|
+
{
|
|
172
|
+
content_code: NOTIFICATION_TYPES.TRIGGER_SCRIPT_NOTIFY,
|
|
173
|
+
created_at: '2021-10-07T08:57:09.370286Z',
|
|
174
|
+
id: 12905,
|
|
175
|
+
is_read: true,
|
|
176
|
+
params: "{'unit_id': 1, 'content': 'EoH Office'}",
|
|
177
|
+
type: 'NEWS',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
};
|
|
181
|
+
mock
|
|
182
|
+
.onGet(API.NOTIFICATION.LIST_EOH_NOTIFICATIONS(1, ''))
|
|
183
|
+
.reply(200, response);
|
|
184
|
+
await act(async () => {
|
|
185
|
+
tree = await create(wrapComponent());
|
|
186
|
+
});
|
|
187
|
+
const instance = tree.root;
|
|
188
|
+
const notificationItem = instance.findAllByType(NotificationItem);
|
|
189
|
+
|
|
190
|
+
expect(notificationItem).toHaveLength(1);
|
|
191
|
+
});
|
|
167
192
|
});
|
|
@@ -44,8 +44,15 @@ const NotificationItem = memo(({ item }) => {
|
|
|
44
44
|
const logo = SCConfig.appLogo;
|
|
45
45
|
|
|
46
46
|
const renderItem = useCallback(() => {
|
|
47
|
-
const
|
|
48
|
-
|
|
47
|
+
const {
|
|
48
|
+
unit_id,
|
|
49
|
+
sensor_id,
|
|
50
|
+
summary_id,
|
|
51
|
+
unit_owner_name,
|
|
52
|
+
sub_unit_id,
|
|
53
|
+
type,
|
|
54
|
+
content,
|
|
55
|
+
} = params;
|
|
49
56
|
switch (content_code) {
|
|
50
57
|
case NOTIFICATION_TYPES.NOTIFY_INVITE_MEMBER:
|
|
51
58
|
return {
|
|
@@ -56,7 +63,7 @@ const NotificationItem = memo(({ item }) => {
|
|
|
56
63
|
navigation.navigate(Routes.UnitStack, {
|
|
57
64
|
screen: Routes.UnitDetail,
|
|
58
65
|
params: {
|
|
59
|
-
unitId,
|
|
66
|
+
unitId: unit_id,
|
|
60
67
|
},
|
|
61
68
|
});
|
|
62
69
|
},
|
|
@@ -77,8 +84,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
77
84
|
navigation.navigate(Routes.UnitStack, {
|
|
78
85
|
screen: Routes.UnitSummary,
|
|
79
86
|
params: {
|
|
80
|
-
summaryId:
|
|
81
|
-
unitId,
|
|
87
|
+
summaryId: summary_id,
|
|
88
|
+
unitId: unit_id,
|
|
82
89
|
},
|
|
83
90
|
}),
|
|
84
91
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -92,8 +99,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
92
99
|
navigation.navigate(Routes.UnitStack, {
|
|
93
100
|
screen: Routes.UnitSummary,
|
|
94
101
|
params: {
|
|
95
|
-
summaryId:
|
|
96
|
-
unitId,
|
|
102
|
+
summaryId: summary_id,
|
|
103
|
+
unitId: unit_id,
|
|
97
104
|
},
|
|
98
105
|
}),
|
|
99
106
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -107,8 +114,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
107
114
|
navigation.navigate(Routes.UnitStack, {
|
|
108
115
|
screen: Routes.UnitSummary,
|
|
109
116
|
params: {
|
|
110
|
-
summaryId:
|
|
111
|
-
unitId,
|
|
117
|
+
summaryId: summary_id,
|
|
118
|
+
unitId: unit_id,
|
|
112
119
|
},
|
|
113
120
|
}),
|
|
114
121
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -120,8 +127,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
120
127
|
navigation.navigate(Routes.UnitStack, {
|
|
121
128
|
screen: Routes.UnitSummary,
|
|
122
129
|
params: {
|
|
123
|
-
summaryId:
|
|
124
|
-
unitId,
|
|
130
|
+
summaryId: summary_id,
|
|
131
|
+
unitId: unit_id,
|
|
125
132
|
},
|
|
126
133
|
}),
|
|
127
134
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -135,8 +142,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
135
142
|
navigation.navigate(Routes.UnitStack, {
|
|
136
143
|
screen: Routes.UnitSummary,
|
|
137
144
|
params: {
|
|
138
|
-
summaryId:
|
|
139
|
-
unitId,
|
|
145
|
+
summaryId: summary_id,
|
|
146
|
+
unitId: unit_id,
|
|
140
147
|
},
|
|
141
148
|
}),
|
|
142
149
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -148,8 +155,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
148
155
|
navigation.navigate(Routes.UnitStack, {
|
|
149
156
|
screen: Routes.DeviceDetail,
|
|
150
157
|
params: {
|
|
151
|
-
unitId,
|
|
152
|
-
sensorId,
|
|
158
|
+
unitId: unit_id,
|
|
159
|
+
sensorId: sensor_id,
|
|
153
160
|
},
|
|
154
161
|
}),
|
|
155
162
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -161,8 +168,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
161
168
|
navigation.navigate(Routes.UnitStack, {
|
|
162
169
|
screen: Routes.DeviceDetail,
|
|
163
170
|
params: {
|
|
164
|
-
unitId,
|
|
165
|
-
sensorId,
|
|
171
|
+
unitId: unit_id,
|
|
172
|
+
sensorId: sensor_id,
|
|
166
173
|
},
|
|
167
174
|
}),
|
|
168
175
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -174,8 +181,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
174
181
|
navigation.navigate(Routes.UnitStack, {
|
|
175
182
|
screen: Routes.DeviceDetail,
|
|
176
183
|
params: {
|
|
177
|
-
unitId,
|
|
178
|
-
sensorId,
|
|
184
|
+
unitId: unit_id,
|
|
185
|
+
sensorId: sensor_id,
|
|
179
186
|
},
|
|
180
187
|
}),
|
|
181
188
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -189,8 +196,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
189
196
|
navigation.navigate(Routes.UnitStack, {
|
|
190
197
|
screen: Routes.DeviceDetail,
|
|
191
198
|
params: {
|
|
192
|
-
unitId,
|
|
193
|
-
sensorId,
|
|
199
|
+
unitId: unit_id,
|
|
200
|
+
sensorId: sensor_id,
|
|
194
201
|
},
|
|
195
202
|
}),
|
|
196
203
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -202,8 +209,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
202
209
|
navigation.navigate(Routes.UnitStack, {
|
|
203
210
|
screen: Routes.DeviceDetail,
|
|
204
211
|
params: {
|
|
205
|
-
unitId,
|
|
206
|
-
sensorId,
|
|
212
|
+
unitId: unit_id,
|
|
213
|
+
sensorId: sensor_id,
|
|
207
214
|
},
|
|
208
215
|
}),
|
|
209
216
|
iconContent: (
|
|
@@ -213,7 +220,7 @@ const NotificationItem = memo(({ item }) => {
|
|
|
213
220
|
case NOTIFICATION_TYPES.NOTIFY_REMOVE_UNIT:
|
|
214
221
|
return {
|
|
215
222
|
content: customColorText(
|
|
216
|
-
|
|
223
|
+
unit_owner_name
|
|
217
224
|
? t('text_notification_content_remove_unit_to_member')
|
|
218
225
|
: t('text_notification_content_remove_unit_to_owner')
|
|
219
226
|
),
|
|
@@ -249,7 +256,7 @@ const NotificationItem = memo(({ item }) => {
|
|
|
249
256
|
navigation.navigate(Routes.UnitStack, {
|
|
250
257
|
screen: Routes.UnitDetail,
|
|
251
258
|
params: {
|
|
252
|
-
unitId,
|
|
259
|
+
unitId: unit_id,
|
|
253
260
|
},
|
|
254
261
|
});
|
|
255
262
|
},
|
|
@@ -266,8 +273,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
266
273
|
navigation.navigate(Routes.UnitStack, {
|
|
267
274
|
screen: Routes.DeviceDetail,
|
|
268
275
|
params: {
|
|
269
|
-
unitId,
|
|
270
|
-
sensorId,
|
|
276
|
+
unitId: unit_id,
|
|
277
|
+
sensorId: sensor_id,
|
|
271
278
|
},
|
|
272
279
|
});
|
|
273
280
|
},
|
|
@@ -281,7 +288,7 @@ const NotificationItem = memo(({ item }) => {
|
|
|
281
288
|
navigation.navigate(Routes.UnitStack, {
|
|
282
289
|
screen: Routes.UnitDetail,
|
|
283
290
|
params: {
|
|
284
|
-
unitId,
|
|
291
|
+
unitId: unit_id,
|
|
285
292
|
},
|
|
286
293
|
});
|
|
287
294
|
},
|
|
@@ -298,8 +305,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
298
305
|
navigation.navigate(Routes.UnitStack, {
|
|
299
306
|
screen: Routes.UnitDetail,
|
|
300
307
|
params: {
|
|
301
|
-
unitId,
|
|
302
|
-
stationId:
|
|
308
|
+
unitId: unit_id,
|
|
309
|
+
stationId: sub_unit_id,
|
|
303
310
|
},
|
|
304
311
|
});
|
|
305
312
|
},
|
|
@@ -336,7 +343,7 @@ const NotificationItem = memo(({ item }) => {
|
|
|
336
343
|
),
|
|
337
344
|
};
|
|
338
345
|
case NOTIFICATION_TYPES.NOTIFY_EMERGENCY:
|
|
339
|
-
switch (
|
|
346
|
+
switch (type) {
|
|
340
347
|
case EMERGENCY_TYPE.CREATED:
|
|
341
348
|
return {
|
|
342
349
|
content: customColorText(
|
|
@@ -346,8 +353,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
346
353
|
navigation.navigate(Routes.UnitStack, {
|
|
347
354
|
screen: Routes.DeviceDetail,
|
|
348
355
|
params: {
|
|
349
|
-
unitId,
|
|
350
|
-
sensorId,
|
|
356
|
+
unitId: unit_id,
|
|
357
|
+
sensorId: sensor_id,
|
|
351
358
|
},
|
|
352
359
|
}),
|
|
353
360
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -361,8 +368,8 @@ const NotificationItem = memo(({ item }) => {
|
|
|
361
368
|
navigation.navigate(Routes.UnitStack, {
|
|
362
369
|
screen: Routes.DeviceDetail,
|
|
363
370
|
params: {
|
|
364
|
-
unitId,
|
|
365
|
-
sensorId,
|
|
371
|
+
unitId: unit_id,
|
|
372
|
+
sensorId: sensor_id,
|
|
366
373
|
},
|
|
367
374
|
}),
|
|
368
375
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
@@ -387,7 +394,7 @@ const NotificationItem = memo(({ item }) => {
|
|
|
387
394
|
navigation.navigate(Routes.UnitStack, {
|
|
388
395
|
screen: Routes.UnitDetail,
|
|
389
396
|
params: {
|
|
390
|
-
unitId,
|
|
397
|
+
unitId: unit_id,
|
|
391
398
|
},
|
|
392
399
|
});
|
|
393
400
|
},
|
|
@@ -421,6 +428,21 @@ const NotificationItem = memo(({ item }) => {
|
|
|
421
428
|
redirect: () => null,
|
|
422
429
|
iconContent: <Image source={logo} style={styles.logo} />,
|
|
423
430
|
};
|
|
431
|
+
case NOTIFICATION_TYPES.TRIGGER_SCRIPT_NOTIFY:
|
|
432
|
+
return {
|
|
433
|
+
content: content,
|
|
434
|
+
redirect: () => {
|
|
435
|
+
navigation.navigate(Routes.UnitStack, {
|
|
436
|
+
screen: Routes.UnitDetail,
|
|
437
|
+
params: {
|
|
438
|
+
unitId: unit_id,
|
|
439
|
+
},
|
|
440
|
+
});
|
|
441
|
+
},
|
|
442
|
+
iconContent: (
|
|
443
|
+
<IconComponent icon={'home'} style={styles.backgroundSummer} />
|
|
444
|
+
),
|
|
445
|
+
};
|
|
424
446
|
default:
|
|
425
447
|
return null;
|
|
426
448
|
}
|