// Qt
import QtQuick 2.15

//  Qml imports
import "qrc:/globals"
import "qrc:/components"
import "qrc:/dialogs"

ConfirmDialog   { id: _root
    property bool   isPassword              : false
    property string ssid                    : ""
    property string separator               : "\n"
    readonly property string spaceSeparator : " "
    readonly property int passwordLength    : _passwordItem.passwordCurrent.length
    readonly property string password       : _passwordItem.passwordCurrent

    height                      : Variables.completeDialogHeight - 130 // need to make room for keyboard
    width                       : Variables.completeDialogWidth
    y                           : 0
    titleText                   : isPassword ? qsTr("Join ") + ssid :
                                   qsTr("Disconnect ") + ssid
    messageText                 : isPassword ? qsTr("Password") : qsTr("Do you want to disconnect from `%1`?").arg(ssid)
    messageTextPixel            : Fonts.fontPixelTextRectExtra
    footerBottomMargin          : Variables.defaultMargin * 2

    Item { id: _passwordItem
        readonly    property string passwordCurrent : _passwordEntry.textInput.text
        visible         : _root.isPassword
        anchors.centerIn: parent

        TextEntry { id: _passwordEntry
            clip                        : true
            textInput   .width          : 450
            textInput.inputMethodHints  : Qt.ImhNone
            textInput.echoMode          : TextInput.Password
            anchors.horizontalCenter    : parent.horizontalCenter
            label.text                  : ""
            label.width                 :  0
            lengthMax                   : 30

            onTextChanged: {
                // Replace non-ASCII characters as they are typed in
                var filtered = text.replace(/[^\x00-\x7F]/g, "")
                if (text !== filtered) { text = filtered }  // revert invalid characters
            }
        }

        onVisibleChanged: if ( visible ) _passwordEntry.textInput.forceActiveFocus()
    }
}
