39 lines
1.1 KiB
Dart
39 lines
1.1 KiB
Dart
import "package:provider/provider.dart";
|
|
import "package:shadcn_flutter/shadcn_flutter.dart";
|
|
import "../../../../providers/chat_provider.dart";
|
|
import "../permission_decision.dart";
|
|
import "../../../../utils/path_utils.dart";
|
|
import "../../diff_view.dart";
|
|
import "tool_bubble_base.dart";
|
|
|
|
class WriteBubble extends StatelessWidget {
|
|
const WriteBubble({
|
|
super.key,
|
|
required this.input,
|
|
this.result,
|
|
this.pendingPermission,
|
|
});
|
|
|
|
final Map<String, dynamic> input;
|
|
final String? result;
|
|
final PendingPermission? pendingPermission;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final projectRoot = context.read<ChatProvider>().workingDirectory;
|
|
final filePath = input["file_path"] as String? ?? "";
|
|
final content = input["content"] as String? ?? "";
|
|
|
|
return ToolBubbleBase(
|
|
toolName: "Write",
|
|
icon: LucideIcons.filePlus,
|
|
result: result,
|
|
pendingPermission: pendingPermission,
|
|
detail: shortenPath(filePath, projectRoot),
|
|
body: DiffView(
|
|
oldString: "",
|
|
newString: content,
|
|
),
|
|
);
|
|
}
|
|
}
|