Skip to content

Commit 5774b02

Browse files
committed
fix: refresh interval select not showing in flow settings
1 parent a67cecc commit 5774b02

File tree

3 files changed

+56
-46
lines changed

3 files changed

+56
-46
lines changed

src/components/flow-settings-modal/index.js

+42-43
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,34 @@
11
import React, { useContext, useEffect, useMemo, useState } from 'react';
22
import PropTypes from 'prop-types';
33

4-
import {
5-
BlockText,
6-
Button,
7-
HeadingText,
8-
Select,
9-
SelectItem,
10-
TextField,
11-
} from 'nr1';
4+
import { BlockText, Button, HeadingText, TextField } from 'nr1';
125

136
import Modal from '../modal';
14-
import { AppContext, FlowContext } from '../../contexts';
15-
import { REFRESH_INTERVALS } from '../../constants';
7+
import { AppContext } from '../../contexts';
168
import { validRefreshInterval } from '../../utils';
9+
import { REFRESH_INTERVALS } from '../../constants';
10+
11+
const DEFAULT_REFRESH_INTERVAL_VALUE = REFRESH_INTERVALS[0].value;
1712

1813
const EditFlowSettingsModal = ({
19-
onUpdate = () => null,
20-
onDeleteFlow = () => null,
14+
flow,
15+
onUpdate,
16+
onDeleteFlow,
2117
editFlowSettings = false,
22-
setEditFlowSettings = () => null,
18+
setEditFlowSettings,
2319
}) => {
24-
const flow = useContext(FlowContext);
2520
const { account, accounts = [] } = useContext(AppContext);
21+
const [updatedName, setupdatedName] = useState('');
2622
const [updatedRefreshInterval, setupdatedRefreshInterval] = useState(
27-
REFRESH_INTERVALS[0].value
23+
DEFAULT_REFRESH_INTERVAL_VALUE
2824
);
29-
const [updatedName, setupdatedName] = useState(flow.name || '');
3025

31-
useEffect(
32-
() =>
33-
setupdatedRefreshInterval(validRefreshInterval(flow?.refreshInterval)),
34-
[flow]
35-
);
26+
useEffect(() => {
27+
if (!flow) return;
28+
const { name: flowName = '', refreshInterval: flowRefreshInterval } = flow;
29+
setupdatedName(flowName);
30+
setupdatedRefreshInterval(validRefreshInterval(flowRefreshInterval));
31+
}, [flow]);
3632

3733
const accountName = useMemo(
3834
() => (accounts || []).find(({ id }) => id === account?.id)?.name || '',
@@ -44,7 +40,7 @@ const EditFlowSettingsModal = ({
4440
case 'update':
4541
if (
4642
(updatedName !== flow?.name ||
47-
flow?.refreshInterval !== updatedRefreshInterval) &&
43+
updatedRefreshInterval !== flow?.refreshInterval) &&
4844
onUpdate
4945
) {
5046
onUpdate({
@@ -55,17 +51,12 @@ const EditFlowSettingsModal = ({
5551
break;
5652

5753
case 'delete':
58-
onDeleteFlow();
54+
onDeleteFlow?.();
5955
}
6056

61-
setEditFlowSettings(false);
57+
setEditFlowSettings?.(false);
6258
};
6359

64-
const handleChange = (event, value) =>
65-
value
66-
? setupdatedRefreshInterval(value)
67-
: setupdatedName(event?.target?.value);
68-
6960
return (
7061
<Modal hidden={!editFlowSettings} onClose={closeHandler}>
7162
<div>
@@ -75,8 +66,8 @@ const EditFlowSettingsModal = ({
7566
<TextField
7667
className="flow-name"
7768
label="Flow name"
78-
defaultValue={flow.name}
79-
onChange={(event) => handleChange(event)}
69+
value={updatedName}
70+
onChange={(e) => setupdatedName(e?.target?.value)}
8071
/>
8172
</div>
8273
<div>
@@ -90,18 +81,25 @@ const EditFlowSettingsModal = ({
9081
<BlockText className="attribute">{accountName}</BlockText>
9182
</div>
9283
<div>
93-
<Select
94-
className="refresh-interval"
95-
label="Refresh data every"
96-
onChange={handleChange}
97-
value={updatedRefreshInterval}
98-
>
99-
{REFRESH_INTERVALS.map((item, index) => (
100-
<SelectItem key={index} value={item.value}>
101-
{item.label}
102-
</SelectItem>
103-
))}
104-
</Select>
84+
<label htmlFor="refresh-interval-select">Refresh data every</label>
85+
<div>
86+
<select
87+
className="refresh-interval"
88+
id="refresh-interval-select"
89+
value={updatedRefreshInterval}
90+
onChange={(e) =>
91+
setupdatedRefreshInterval(
92+
e?.target?.value || DEFAULT_REFRESH_INTERVAL_VALUE
93+
)
94+
}
95+
>
96+
{REFRESH_INTERVALS.map(({ value, label }) => (
97+
<option key={value} value={value}>
98+
{label}
99+
</option>
100+
))}
101+
</select>
102+
</div>
105103
</div>
106104
</div>
107105
<div className="buttons-bar">
@@ -127,6 +125,7 @@ const EditFlowSettingsModal = ({
127125
};
128126

129127
EditFlowSettingsModal.propTypes = {
128+
flow: PropTypes.object,
130129
onUpdate: PropTypes.func,
131130
onDeleteFlow: PropTypes.func,
132131
editFlowSettings: PropTypes.bool,

src/components/flow-settings-modal/styles.scss

+7-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
font-weight: 600;
1010
line-height: 16px;
1111
padding: 4px 0;
12+
color: #293338;
1213
}
1314

1415
.flow-name {
@@ -18,7 +19,11 @@
1819

1920
.refresh-interval {
2021
padding: 4p 8px;
21-
width: 120px
22+
width: 120px;
23+
min-height: 24px;
24+
min-width: 24px;
25+
padding: 4px 8px;
26+
left: 0;
2227
}
2328
}
2429

@@ -31,4 +36,4 @@
3136
flex-direction: row;
3237
gap: 10px;
3338
}
34-
}
39+
}

src/components/flow/index.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ const Flow = forwardRef(
137137
setActivateTransition(true);
138138
};
139139

140+
const updateAndPersistFlowHandler = (updates = {}) => {
141+
flowUpdateHandler(updates);
142+
persistFlowHandler(true);
143+
};
144+
140145
useEffect(() => {
141146
if (activateTransition) {
142147
onTransition?.(prevNonEditMode || MODES.INLINE);
@@ -221,7 +226,8 @@ const Flow = forwardRef(
221226
/>
222227
{editFlowSettings && (
223228
<EditFlowSettingsModal
224-
onUpdate={flowUpdateHandler}
229+
flow={flow}
230+
onUpdate={updateAndPersistFlowHandler}
225231
onDeleteFlow={() => setDeleteModalHidden(false)}
226232
editFlowSettings={editFlowSettings}
227233
setEditFlowSettings={setEditFlowSettings}

0 commit comments

Comments
 (0)