Skip to content

Commit e6a93a3

Browse files
authored
Merge pull request #346 from DenserMeerkat/resolve-issue-multiple-rows-added
fix: prevent adding multiple empty rows
2 parents c38c184 + 796b38c commit e6a93a3

File tree

3 files changed

+23
-7
lines changed

3 files changed

+23
-7
lines changed

lib/screens/home_page/editor_pane/details_card/request_pane/request_form_data.dart

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class _FormDataBodyState extends ConsumerState<FormDataWidget> {
1818
late int seed;
1919
final random = Random.secure();
2020
late List<FormDataModel> formRows;
21+
bool isAddingRow = false;
2122

2223
@override
2324
void initState() {
@@ -45,6 +46,7 @@ class _FormDataBodyState extends ConsumerState<FormDataWidget> {
4546
]
4647
: rF;
4748
formRows = isFormDataEmpty ? rows : rows + [kFormDataEmptyModel];
49+
isAddingRow = false;
4850

4951
DaviModel<FormDataModel> daviModelRows = DaviModel<FormDataModel>(
5052
rows: formRows,
@@ -64,7 +66,10 @@ class _FormDataBodyState extends ConsumerState<FormDataWidget> {
6466
hintText: " Add Key",
6567
onChanged: (value) {
6668
formRows[idx] = formRows[idx].copyWith(name: value);
67-
if (isLast) formRows.add(kFormDataEmptyModel);
69+
if (isLast && !isAddingRow) {
70+
isAddingRow = true;
71+
formRows.add(kFormDataEmptyModel);
72+
}
6873
_onFieldChange(selectedId!);
6974
},
7075
colorScheme: Theme.of(context).colorScheme,
@@ -75,7 +80,7 @@ class _FormDataBodyState extends ConsumerState<FormDataWidget> {
7580
type: value ?? FormDataType.text,
7681
);
7782
formRows[idx] = formRows[idx].copyWith(value: "");
78-
if (idx == formRows.length - 1 && hasChanged) {
83+
if (isLast && hasChanged) {
7984
formRows.add(kFormDataEmptyModel);
8085
}
8186
setState(() {});
@@ -157,7 +162,10 @@ class _FormDataBodyState extends ConsumerState<FormDataWidget> {
157162
hintText: " Add Value",
158163
onChanged: (value) {
159164
formRows[idx] = formRows[idx].copyWith(value: value);
160-
if (isLast) formRows.add(kFormDataEmptyModel);
165+
if (isLast && !isAddingRow) {
166+
isAddingRow = true;
167+
formRows.add(kFormDataEmptyModel);
168+
}
161169
_onFieldChange(selectedId!);
162170
},
163171
colorScheme: Theme.of(context).colorScheme,

lib/screens/home_page/editor_pane/details_card/request_pane/request_headers.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
1919
final random = Random.secure();
2020
late List<NameValueModel> headerRows;
2121
late List<bool> isRowEnabledList;
22+
bool isAddingRow = false;
2223

2324
@override
2425
void initState() {
@@ -52,6 +53,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
5253
ref.read(selectedRequestModelProvider)?.isHeaderEnabledList ??
5354
List.filled(rH?.length ?? 0, true, growable: true);
5455
isRowEnabledList.add(false);
56+
isAddingRow = false;
5557

5658
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
5759
rows: headerRows,
@@ -90,7 +92,8 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
9092
hintText: "Add Header Name",
9193
onChanged: (value) {
9294
headerRows[idx] = headerRows[idx].copyWith(name: value);
93-
if (isLast) {
95+
if (isLast && !isAddingRow) {
96+
isAddingRow = true;
9497
isRowEnabledList[idx] = true;
9598
headerRows.add(kNameValueEmptyModel);
9699
isRowEnabledList.add(false);
@@ -123,7 +126,8 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
123126
hintText: " Add Header Value",
124127
onChanged: (value) {
125128
headerRows[idx] = headerRows[idx].copyWith(value: value);
126-
if (isLast) {
129+
if (isLast && !isAddingRow) {
130+
isAddingRow = true;
127131
isRowEnabledList[idx] = true;
128132
headerRows.add(kNameValueEmptyModel);
129133
isRowEnabledList.add(false);

lib/screens/home_page/editor_pane/details_card/request_pane/request_params.dart

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
2020
final random = Random.secure();
2121
late List<NameValueModel> paramRows;
2222
late List<bool> isRowEnabledList;
23+
bool isAddingRow = false;
2324

2425
@override
2526
void initState() {
@@ -52,6 +53,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
5253
ref.read(selectedRequestModelProvider)?.isParamEnabledList ??
5354
List.filled(rP?.length ?? 0, true, growable: true);
5455
isRowEnabledList.add(false);
56+
isAddingRow = false;
5557

5658
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
5759
rows: paramRows,
@@ -90,7 +92,8 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
9092
hintText: "Add URL Parameter",
9193
onChanged: (value) {
9294
paramRows[idx] = paramRows[idx].copyWith(name: value);
93-
if (isLast) {
95+
if (isLast && !isAddingRow) {
96+
isAddingRow = true;
9497
isRowEnabledList[idx] = true;
9598
paramRows.add(kNameValueEmptyModel);
9699
isRowEnabledList.add(false);
@@ -123,7 +126,8 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
123126
hintText: "Add Value",
124127
onChanged: (value) {
125128
paramRows[idx] = paramRows[idx].copyWith(value: value);
126-
if (isLast) {
129+
if (isLast && !isAddingRow) {
130+
isAddingRow = true;
127131
isRowEnabledList[idx] = true;
128132
paramRows.add(kNameValueEmptyModel);
129133
isRowEnabledList.add(false);

0 commit comments

Comments
 (0)