fix: text update bug on number/url fields (#5315)

This commit is contained in:
Richard Shiue 2024-05-13 16:30:17 +08:00 committed by GitHub
parent 8273d66c50
commit 027ab2c1ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 16 deletions

View File

@ -163,19 +163,18 @@ class _TextCellState extends State<TextCardCell> {
return BlocBuilder<TextCellBloc, TextCellState>(
builder: (context, state) {
final content = state.content;
final text = content.isEmpty
? LocaleKeys.grid_row_textPlaceholder.tr()
: content;
final color = content.isEmpty ? Theme.of(context).hintColor : null;
return Padding(
padding: widget.style.padding,
child: Text(
text,
style: widget.style.textStyle.copyWith(color: color),
maxLines: widget.style.maxLines,
),
);
return content.isEmpty
? const SizedBox.shrink()
: Container(
padding: widget.style.padding,
alignment: AlignmentDirectional.centerStart,
child: Text(
content,
style: widget.style.textStyle,
maxLines: widget.style.maxLines,
),
);
},
);
}

View File

@ -79,8 +79,11 @@ class _NumberCellState extends GridEditableTextCell<EditableNumberCell> {
return BlocProvider.value(
value: cellBloc,
child: BlocListener<NumberCellBloc, NumberCellState>(
listener: (context, state) =>
_textEditingController.text = state.content,
listener: (context, state) {
if (!focusNode.hasFocus) {
_textEditingController.text = state.content;
}
},
child: Builder(
builder: (context) {
return widget.skin.build(

View File

@ -112,8 +112,10 @@ class _GridURLCellState extends GridEditableTextCell<EditableURLCell> {
child: BlocListener<URLCellBloc, URLCellState>(
listenWhen: (previous, current) => previous.content != current.content,
listener: (context, state) {
_textEditingController.value =
_textEditingController.value.copyWith(text: state.content);
if (!focusNode.hasFocus) {
_textEditingController.value =
_textEditingController.value.copyWith(text: state.content);
}
widget._cellDataNotifier.value = state.content;
},
child: widget.skin.build(