handled image insertion in action taken
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// ignore_for_file: use_build_context_synchronously
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
@@ -1612,25 +1613,62 @@ class _TaskDetailScreenState extends ConsumerState<TaskDetailScreen>
|
||||
if (bytes == null) {
|
||||
return;
|
||||
}
|
||||
final b64 =
|
||||
base64Encode(bytes);
|
||||
final ext =
|
||||
file.extension ??
|
||||
'png';
|
||||
final dataUri =
|
||||
'data:image/$ext;base64,$b64';
|
||||
final messenger =
|
||||
ScaffoldMessenger.of(
|
||||
context,
|
||||
);
|
||||
String? url;
|
||||
try {
|
||||
url = await ref
|
||||
.read(
|
||||
tasksControllerProvider,
|
||||
)
|
||||
.uploadActionImage(
|
||||
taskId: task.id,
|
||||
bytes: bytes,
|
||||
extension: ext,
|
||||
);
|
||||
} catch (e) {
|
||||
messenger.showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
'Upload error: $e',
|
||||
),
|
||||
),
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (url == null) {
|
||||
messenger.showSnackBar(
|
||||
const SnackBar(
|
||||
content: Text(
|
||||
'Image upload failed (no URL returned)',
|
||||
),
|
||||
),
|
||||
);
|
||||
return;
|
||||
}
|
||||
final trimmedUrl = url
|
||||
.trim();
|
||||
final idx =
|
||||
_actionController
|
||||
?.selection
|
||||
.baseOffset ??
|
||||
0;
|
||||
// ignore: avoid_print
|
||||
print(
|
||||
'inserting image embed idx=$idx url=$trimmedUrl',
|
||||
);
|
||||
_actionController
|
||||
?.document
|
||||
.insert(
|
||||
idx,
|
||||
quill
|
||||
.BlockEmbed.image(
|
||||
dataUri,
|
||||
trimmedUrl,
|
||||
),
|
||||
);
|
||||
} catch (_) {}
|
||||
|
||||
Reference in New Issue
Block a user