mirror of
https://github.com/foss42/apidash.git
synced 2025-08-06 13:51:20 +08:00
fix: checkbox empty selection
This commit is contained in:
@ -40,14 +40,16 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
ref.watch(selectedRequestModelProvider
|
||||
.select((value) => value?.requestHeaders?.length));
|
||||
var rH = ref.read(selectedRequestModelProvider)?.requestHeaders;
|
||||
rows = (rH == null || rH.isEmpty)
|
||||
bool isHeadersEmpty = rH == null || rH.isEmpty;
|
||||
rows = (isHeadersEmpty)
|
||||
? [
|
||||
kNameValueEmptyModel,
|
||||
]
|
||||
: rH;
|
||||
isRowEnabledList =
|
||||
ref.read(selectedRequestModelProvider)?.isHeaderEnabledList ??
|
||||
List.filled(rows.length, true, growable: true);
|
||||
isRowEnabledList = ref
|
||||
.read(selectedRequestModelProvider)
|
||||
?.isHeaderEnabledList ??
|
||||
List.filled(rows.length, isHeadersEmpty ? false : true, growable: true);
|
||||
|
||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||
rows: rows,
|
||||
@ -60,12 +62,17 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
return CheckBox(
|
||||
keyId: "$selectedId-$idx-headers-c-$seed",
|
||||
value: isRowEnabledList[idx],
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
isRowEnabledList[idx] = value!;
|
||||
});
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
onChanged: rows.length == 1 &&
|
||||
idx == 0 &&
|
||||
rows[idx].name.isEmpty &&
|
||||
rows[idx].value.isEmpty
|
||||
? null
|
||||
: (value) {
|
||||
setState(() {
|
||||
isRowEnabledList[idx] = value!;
|
||||
});
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
colorScheme: Theme.of(context).colorScheme,
|
||||
);
|
||||
},
|
||||
@ -85,7 +92,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
rows[idx] = rows[idx].copyWith(name: value);
|
||||
if (idx == rows.length - 1) {
|
||||
rows.add(kNameValueEmptyModel);
|
||||
isRowEnabledList.add(true);
|
||||
isRowEnabledList.add(false);
|
||||
}
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
@ -116,7 +123,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
rows[idx] = rows[idx].copyWith(value: value);
|
||||
if (idx == rows.length - 1) {
|
||||
rows.add(kNameValueEmptyModel);
|
||||
isRowEnabledList.add(true);
|
||||
isRowEnabledList.add(false);
|
||||
}
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
@ -140,7 +147,7 @@ class EditRequestHeadersState extends ConsumerState<EditRequestHeaders> {
|
||||
rows = [
|
||||
kNameValueEmptyModel,
|
||||
];
|
||||
isRowEnabledList = [true];
|
||||
isRowEnabledList = [false];
|
||||
});
|
||||
} else {
|
||||
rows.removeAt(row.index);
|
||||
|
@ -41,14 +41,16 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
ref.watch(selectedRequestModelProvider
|
||||
.select((value) => value?.requestParams?.length));
|
||||
var rP = ref.read(selectedRequestModelProvider)?.requestParams;
|
||||
rows = (rP == null || rP.isEmpty)
|
||||
bool isParamsEmpty = rP == null || rP.isEmpty;
|
||||
rows = (isParamsEmpty)
|
||||
? [
|
||||
kNameValueEmptyModel,
|
||||
]
|
||||
: rP;
|
||||
isRowEnabledList =
|
||||
ref.read(selectedRequestModelProvider)?.isParamEnabledList ??
|
||||
List.filled(rows.length, true, growable: true);
|
||||
isRowEnabledList = ref
|
||||
.read(selectedRequestModelProvider)
|
||||
?.isParamEnabledList ??
|
||||
List.filled(rows.length, isParamsEmpty ? false : true, growable: true);
|
||||
|
||||
DaviModel<NameValueModel> model = DaviModel<NameValueModel>(
|
||||
rows: rows,
|
||||
@ -61,12 +63,16 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
return CheckBox(
|
||||
keyId: "$selectedId-$idx-params-c-$seed",
|
||||
value: isRowEnabledList[idx],
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
isRowEnabledList[idx] = value!;
|
||||
});
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
onChanged: idx + 1 == rows.length &&
|
||||
rows[idx].name.isEmpty &&
|
||||
rows[idx].value.isEmpty
|
||||
? null
|
||||
: (value) {
|
||||
setState(() {
|
||||
isRowEnabledList[idx] = value!;
|
||||
});
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
colorScheme: Theme.of(context).colorScheme,
|
||||
);
|
||||
},
|
||||
@ -84,8 +90,9 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
onChanged: (value) {
|
||||
rows[idx] = rows[idx].copyWith(name: value);
|
||||
if (idx == rows.length - 1) {
|
||||
isRowEnabledList[idx] = true;
|
||||
rows.add(kNameValueEmptyModel);
|
||||
isRowEnabledList.add(true);
|
||||
isRowEnabledList.add(false);
|
||||
}
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
@ -115,8 +122,9 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
onChanged: (value) {
|
||||
rows[idx] = rows[idx].copyWith(value: value);
|
||||
if (idx == rows.length - 1) {
|
||||
isRowEnabledList[idx] = true;
|
||||
rows.add(kNameValueEmptyModel);
|
||||
isRowEnabledList.add(true);
|
||||
isRowEnabledList.add(false);
|
||||
}
|
||||
_onFieldChange(selectedId!);
|
||||
},
|
||||
@ -140,7 +148,7 @@ class EditRequestURLParamsState extends ConsumerState<EditRequestURLParams> {
|
||||
rows = [
|
||||
kNameValueEmptyModel,
|
||||
];
|
||||
isRowEnabledList = [true];
|
||||
isRowEnabledList = [false];
|
||||
});
|
||||
} else {
|
||||
rows.removeAt(row.index);
|
||||
|
@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
|
||||
class CheckBox extends StatelessWidget {
|
||||
final String keyId;
|
||||
final bool value;
|
||||
final ValueChanged<bool?> onChanged;
|
||||
final ValueChanged<bool?>? onChanged;
|
||||
final ColorScheme? colorScheme;
|
||||
const CheckBox({
|
||||
super.key,
|
||||
|
Reference in New Issue
Block a user