···
import '../../widgets/loading_error_states.dart';
import '../../widgets/post_action_bar.dart';
import '../../widgets/post_card.dart';
21
+
import '../compose/reply_screen.dart';
···
await Share.share('$title\n\n$postUri', subject: title);
246
-
/// Build bottom action bar with comment input and buttons
247
+
/// Build bottom action bar with vote, save, and comment actions
Widget _buildActionBar() {
return Consumer<VoteProvider>(
builder: (context, voteProvider, child) {
···
284
-
// TODO: Open comment composer
285
-
ScaffoldMessenger.of(context).showSnackBar(
287
-
content: Text('Comment composer coming soon!'),
288
-
behavior: SnackBarBehavior.floating,
284
+
onCommentTap: _openCommentComposer,
final authProvider = context.read<AuthProvider>();
···
333
+
/// Open the reply screen for composing a comment
334
+
void _openCommentComposer() {
335
+
// Check authentication
336
+
final authProvider = context.read<AuthProvider>();
337
+
if (!authProvider.isAuthenticated) {
338
+
ScaffoldMessenger.of(context).showSnackBar(
340
+
content: Text('Sign in to comment'),
341
+
behavior: SnackBarBehavior.floating,
347
+
// Navigate to reply screen with full post context
348
+
Navigator.of(context).push(
349
+
MaterialPageRoute<void>(
352
+
ReplyScreen(post: widget.post, onSubmit: _handleCommentSubmit),
357
+
/// Handle comment submission
358
+
Future<void> _handleCommentSubmit(String content) async {
359
+
// TODO: Implement comment creation via atProto
360
+
ScaffoldMessenger.of(context).showSnackBar(
362
+
content: Text('Comment submitted: $content'),
363
+
behavior: SnackBarBehavior.floating,
364
+
duration: const Duration(seconds: 2),
/// Build main content area
// Use Consumer to rebuild when comments provider changes
···