mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Improve send message form
This commit is contained in:
		@@ -33,34 +33,6 @@ import 'package:mime/mime.dart';
 | 
			
		||||
enum ErrorLevel { NONE, MINOR, MAJOR }
 | 
			
		||||
enum _OlderMessagesLevel { NONE, LOADING, NO_MORE_AVAILABLE }
 | 
			
		||||
 | 
			
		||||
Color get _senderColor =>
 | 
			
		||||
    darkTheme() ? Color(0xff2b343b) : Colors.green.shade900;
 | 
			
		||||
 | 
			
		||||
Color get _receiverColor =>
 | 
			
		||||
    darkTheme() ? Color(0xff1e2225) : Colors.grey.shade600;
 | 
			
		||||
 | 
			
		||||
const _greyColor = Color(0xff8f8f8f);
 | 
			
		||||
 | 
			
		||||
Color get _gradientColorStart => darkTheme() ? Color(0xff00b6f3) : Colors.green;
 | 
			
		||||
 | 
			
		||||
Color get _gradientColorEnd =>
 | 
			
		||||
    darkTheme() ? Color(0xff0184dc) : Colors.greenAccent;
 | 
			
		||||
 | 
			
		||||
Color get _separatorColor =>
 | 
			
		||||
    darkTheme() ? Color(0xff272c35) : Color(0xffBEBEBE);
 | 
			
		||||
 | 
			
		||||
LinearGradient get _fabGradient => LinearGradient(
 | 
			
		||||
      colors: [_gradientColorStart, _gradientColorEnd],
 | 
			
		||||
      begin: Alignment.topLeft,
 | 
			
		||||
      end: Alignment.bottomRight,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
LinearGradient get _disabledGradient => LinearGradient(
 | 
			
		||||
      colors: [_greyColor, _receiverColor],
 | 
			
		||||
      begin: Alignment.topLeft,
 | 
			
		||||
      end: Alignment.bottomRight,
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
class ConversationScreen extends StatefulWidget {
 | 
			
		||||
  final int conversationID;
 | 
			
		||||
 | 
			
		||||
@@ -109,6 +81,33 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
 | 
			
		||||
 | 
			
		||||
  showEmojiContainer() => setState(() => _showEmojiPicker = true);
 | 
			
		||||
 | 
			
		||||
  // Colors definition
 | 
			
		||||
  Color get _receiverColor =>
 | 
			
		||||
      darkTheme() ? Color(0xff3a3d40) : Colors.grey.shade600;
 | 
			
		||||
 | 
			
		||||
  Color get _greyColor => Color(0xff8f8f8f);
 | 
			
		||||
 | 
			
		||||
  Color get _gradientColorStart =>
 | 
			
		||||
      darkTheme() ? Color(0xff00b6f3) : Colors.green;
 | 
			
		||||
 | 
			
		||||
  Color get _gradientColorEnd =>
 | 
			
		||||
      darkTheme() ? Color(0xff0184dc) : Colors.greenAccent;
 | 
			
		||||
 | 
			
		||||
  Color get _separatorColor =>
 | 
			
		||||
      darkTheme() ? Color(0xff272c35) : Color(0xffBEBEBE);
 | 
			
		||||
 | 
			
		||||
  LinearGradient get _fabGradient => LinearGradient(
 | 
			
		||||
        colors: [_gradientColorStart, _gradientColorEnd],
 | 
			
		||||
        begin: Alignment.topLeft,
 | 
			
		||||
        end: Alignment.bottomRight,
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
  LinearGradient get _disabledGradient => LinearGradient(
 | 
			
		||||
        colors: [_greyColor, _receiverColor],
 | 
			
		||||
        begin: Alignment.topLeft,
 | 
			
		||||
        end: Alignment.bottomRight,
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
@@ -402,13 +401,13 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
 | 
			
		||||
 | 
			
		||||
  /// Send new message form
 | 
			
		||||
  Widget _buildSendMessageForm() => Container(
 | 
			
		||||
        padding: EdgeInsets.all(10),
 | 
			
		||||
        padding: EdgeInsets.fromLTRB(10, 5, 10, 5),
 | 
			
		||||
        child: Row(
 | 
			
		||||
          children: <Widget>[
 | 
			
		||||
            GestureDetector(
 | 
			
		||||
              onTap: !_isSendingMessage ? _sendFileMessage : null,
 | 
			
		||||
              child: Container(
 | 
			
		||||
                padding: EdgeInsets.all(10),
 | 
			
		||||
                padding: EdgeInsets.all(6),
 | 
			
		||||
                decoration: BoxDecoration(
 | 
			
		||||
                  gradient:
 | 
			
		||||
                      _isSendingMessage ? _disabledGradient : _fabGradient,
 | 
			
		||||
@@ -448,7 +447,7 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
 | 
			
		||||
                            const Radius.circular(50.0),
 | 
			
		||||
                          ),
 | 
			
		||||
                          borderSide: BorderSide.none),
 | 
			
		||||
                      contentPadding: EdgeInsets.fromLTRB(20, 10, 32, 10),
 | 
			
		||||
                      contentPadding: EdgeInsets.fromLTRB(20, 8, 32, 8),
 | 
			
		||||
                      filled: true,
 | 
			
		||||
                      fillColor: _separatorColor,
 | 
			
		||||
                    ),
 | 
			
		||||
@@ -476,20 +475,21 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
 | 
			
		||||
                ],
 | 
			
		||||
              ),
 | 
			
		||||
            ),
 | 
			
		||||
            Container(
 | 
			
		||||
                margin: EdgeInsets.only(left: 10),
 | 
			
		||||
            SizedBox(width: 5),
 | 
			
		||||
            GestureDetector(
 | 
			
		||||
              onTap: _isMessageValid ? _submitTextMessage : null,
 | 
			
		||||
              child: Container(
 | 
			
		||||
                padding: EdgeInsets.all(8),
 | 
			
		||||
                decoration: BoxDecoration(
 | 
			
		||||
                  gradient: _isWriting ? _fabGradient : _disabledGradient,
 | 
			
		||||
                  gradient: !_isMessageValid ? _disabledGradient : _fabGradient,
 | 
			
		||||
                  shape: BoxShape.circle,
 | 
			
		||||
                ),
 | 
			
		||||
                child: IconButton(
 | 
			
		||||
                  icon: Icon(
 | 
			
		||||
                    Icons.send,
 | 
			
		||||
                    size: 15,
 | 
			
		||||
                    color: darkTheme() ? Colors.black : Colors.white,
 | 
			
		||||
                  ),
 | 
			
		||||
                  onPressed: _isWriting ? _submitTextMessage : null,
 | 
			
		||||
                ))
 | 
			
		||||
                child: Icon(
 | 
			
		||||
                  Icons.send,
 | 
			
		||||
                  color: darkTheme() ? Colors.black : Colors.white,
 | 
			
		||||
                ),
 | 
			
		||||
              ),
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
@@ -523,7 +523,6 @@ class _ConversationScreenState extends SafeState<ConversationScreen> {
 | 
			
		||||
              : null,
 | 
			
		||||
        ),
 | 
			
		||||
        _messages.length == 0 ? _buildNoMessagesNotice() : _buildMessagesList(),
 | 
			
		||||
        Divider(),
 | 
			
		||||
        _buildSendMessageForm(),
 | 
			
		||||
        _showEmojiPicker ? _buildEmojiContainer() : Container(),
 | 
			
		||||
      ],
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user