findReplace static method

Future<UFindReplaceRequest?> findReplace()

Find & replace prompt.

Implementation

static Future<UFindReplaceRequest?> findReplace() {
  final TextEditingController find = TextEditingController();
  final TextEditingController replace = TextEditingController();
  bool matchCase = false;
  return UNavigator.dialog<UFindReplaceRequest>(
    StatefulBuilder(
      builder: (BuildContext context, StateSetter setInner) => AlertDialog(
        title: Text(U.s.findAndReplace),
        content: SizedBox(
          width: 420,
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              TextField(
                controller: find,
                autofocus: true,
                decoration: InputDecoration(labelText: U.s.find, border: const OutlineInputBorder()),
              ),
              const SizedBox(height: 12),
              TextField(
                controller: replace,
                decoration: InputDecoration(labelText: U.s.replaceWith, border: const OutlineInputBorder()),
              ),
              CheckboxListTile(
                contentPadding: EdgeInsets.zero,
                value: matchCase,
                title: UTextBodyMedium(U.s.matchCase),
                onChanged: (bool? v) => setInner(() => matchCase = v ?? false),
              ),
            ],
          ),
        ),
        actions: <Widget>[
          TextButton(onPressed: UNavigator.back, child: Text(U.s.cancel)),
          TextButton(
            onPressed: () => UNavigator.back(UFindReplaceRequest(find: find.text, replace: replace.text, matchCase: matchCase)),
            child: Text(U.s.replaceAll),
          ),
        ],
      ),
    ),
  );
}