getSelectedFolderOrFilePath<T extends FileSystemEntity> method

Future<({String name, String path})> getSelectedFolderOrFilePath<T extends FileSystemEntity>({
  1. required String path,
  2. required String message,
})

Implementation

Future<({String path, String name})>
    getSelectedFolderOrFilePath<T extends FileSystemEntity>({
  required String path,
  required String message,
}) async {
  final result =
      await _fileHandler.getFileOrDirectoryListFromPath<T>(path: path);

  if (result.length == 1) {
    return (path: result.first.path, name: basename(result.first.path));
  }

  final options = result.map((f) => basename(f.path)).toList();

  final selectedIndex =
      _interact.select(prompt: message, options: options).index;

  return (
    path: result[selectedIndex].path,
    name: basename(result[selectedIndex].path)
  );
}