getChatControl method

Widget getChatControl(
  1. Area cg
)

Implementation

Widget getChatControl(Area cg) {
  return Row(
    children: [
      DropdownButton(
          value: msgScope,
          onChanged: (MessageScope? newScope) {
            setState(() {
              msgScope = newScope ?? MessageScope.area;
            });
          },
          items: [
            DropdownMenuItem(
              value: MessageScope.room,
              enabled: widget.usingRooms,
              child: widget.usingRooms
                  ? Text("${widget.roomName} Message: ")
                  : const SizedBox.shrink(),
            ),
            DropdownMenuItem(
                value: MessageScope.area,
                enabled: widget.usingAreas,
                child: widget.usingAreas
                    ? Text("${widget.areaName} Message: ")
                    : const SizedBox.shrink(),
            ),
            DropdownMenuItem(
                value: MessageScope.server,
                enabled: widget.usingServer,
                child: widget.usingServer
                    ? Text("${widget.serverName} Message: ")
                    : const SizedBox.shrink(),
            ),
          ]),
      const SizedBox(width: 4),
      Expanded(
        child: Container(
            color: widget.cmdBkgColor,
            child: TextField(
              controller: textInputController,
              focusNode: textInputFocus,
              autofocus: true,
              style: TextStyle(
                  color: widget.cmdTxtColor,
                  backgroundColor: widget.cmdBkgColor),
              onSubmitted: (txt) {
                widget.client.send(
                    switch (msgScope) {
                      MessageScope.room => ClientMsg.roomMsg,
                      MessageScope.area => ClientMsg.areaMsg,
                      MessageScope.server => ClientMsg.servMsg,
                    },
                    data: {fieldTitle: cg.title, fieldMsg: txt});
                setState(() {
                  textInputController.text = "";
                });
                textInputFocus.requestFocus();
              },
            )),
      ),
      msgScope == MessageScope.area ? IconButton(
          onPressed: () => widget.client.areaCmd(ClientMsg.updateArea),
          icon: const Icon(Icons.update) //,size: iconHeight-16)
      ) : const SizedBox.shrink(),
    ],
  );
}