mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-07-23 03:50:09 +08:00
replace SelectableText with SelectionArea
Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
49
lib/common/widgets/selection_text.dart
Normal file
49
lib/common/widgets/selection_text.dart
Normal file
@@ -0,0 +1,49 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class SelectionText extends StatelessWidget {
|
||||
const SelectionText(
|
||||
String this.data, {
|
||||
super.key,
|
||||
this.style,
|
||||
this.textAlign,
|
||||
this.contextMenuBuilder = _defaultContextMenuBuilder,
|
||||
}) : textSpan = null;
|
||||
|
||||
const SelectionText.rich(
|
||||
InlineSpan this.textSpan, {
|
||||
super.key,
|
||||
this.style,
|
||||
this.textAlign,
|
||||
this.contextMenuBuilder = _defaultContextMenuBuilder,
|
||||
}) : data = null;
|
||||
|
||||
final String? data;
|
||||
final InlineSpan? textSpan;
|
||||
final TextStyle? style;
|
||||
final TextAlign? textAlign;
|
||||
final SelectableRegionContextMenuBuilder? contextMenuBuilder;
|
||||
|
||||
static Widget _defaultContextMenuBuilder(
|
||||
BuildContext context,
|
||||
SelectableRegionState selectableRegionState,
|
||||
) {
|
||||
return AdaptiveTextSelectionToolbar.selectableRegion(
|
||||
selectableRegionState: selectableRegionState,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SelectionArea(
|
||||
contextMenuBuilder: contextMenuBuilder,
|
||||
child: Text.rich(
|
||||
style: style,
|
||||
textAlign: textAlign,
|
||||
TextSpan(
|
||||
text: data,
|
||||
children: textSpan != null ? <InlineSpan>[textSpan!] : null,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user