helpdesk_package 0.0.5 copy "helpdesk_package: ^0.0.5" to clipboard
helpdesk_package: ^0.0.5 copied to clipboard

A new Flutter packagefor helpdesk

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:helpdesk_package/chat_service.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await ChatService.instance.init(); // Connect to MQTT broker
  runApp(const AdminApp());
}

class AdminApp extends StatelessWidget {
  const AdminApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: AdminScreen(appId: "my_app_123"),
    );
  }
}

class AdminScreen extends StatefulWidget {
  final String appId;
  const AdminScreen({super.key, required this.appId});

  @override
  State<AdminScreen> createState() => _AdminScreenState();
}

class _AdminScreenState extends State<AdminScreen> {
  final _messages = <String>[];
  String? _selectedUser;

  @override
  void initState() {
    super.initState();
    ChatService.instance.subscribeAdmin(
      appId: widget.appId,
      onMessage: (msg, userId) {
        setState(() => _messages.add("User($userId): $msg"));
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    final controller = TextEditingController();
    return Scaffold(
      appBar: AppBar(title: const Text("Admin Panel")),
      body: Column(
        children: [
          Expanded(
            child: ListView(
              children: _messages.map((m) => ListTile(title: Text(m))).toList(),
            ),
          ),
          TextField(
            controller: controller,
            onSubmitted: (msg) {
              if (_selectedUser != null) {
                ChatService.instance.sendMessage(
                  appId: widget.appId,
                  userId: _selectedUser!,
                  message: msg,
                  fromAdmin: true,
                );
                setState(() => _messages.add("Admin → $_selectedUser: $msg"));
                controller.clear();
              }
            },
            decoration: const InputDecoration(
              hintText: "Reply (select user first)",
            ),
          )
        ],
      ),
    );
  }
}
0
likes
0
points
39
downloads

Publisher

unverified uploader

Weekly Downloads

A new Flutter packagefor helpdesk

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, mqtt_client

More

Packages that depend on helpdesk_package