Ошибка логина при добавлении веб-сервера

Необходимо сделать чат с использованием веб сервера. Тз в том, что после логина окно исчезает и появляется сам чат. Происходит это посредством скрипта, по которому после клика на элемент вешается активный класс, а с самого чата он убирается. Функционал отвалился на этапе его добавления, на лайвсервере всё пашет. Я сейчас только учусь и ментор просто игнорирует меня.

html, body, #app, #main {
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
}

#app {
    display: flex;
    justify-content: center;
}

#main {
    display: flex;
}

.left-side {
    flex-grow: 1;
    max-width: 320px;
    background: linear-gradient(to bottom, #f19b6d, #EB8665);
    color: #FEFEFD;
    padding: 10px;
    box-sizing: border-box;
}

.user-info {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
}

.user-name {
    font-size: 18px;
    font-weight: bold;
}

.user-photo, .message-item-photo {
    margin-right: 15px;
    background: url(no-photo.png);
    background-size: cover;
    border-radius: 50%;
    width: 50px;
    height: 50px;
}

.user-list-header {
    text-transform: uppercase;
    font-weight: bold;
}

.user-list {
    padding: 5px 0 0 10px
}

.right-side {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    padding: 10px;
}

.messages-container {
    flex-grow: 1;
    overflow: scroll;
}

.input-container {
    margin-top: 10px;
    display: flex;
    align-items: center;
}

.message-input {
    height: 30px;
    flex-grow: 1;
    margin: 0 10px 0 0;
}

.send-button {
    height: 25px;
}

#login {
    position: absolute;
    top: 20vh;
    width: 500px;
    height: 300px;
    background: linear-gradient(to bottom, #f19b6d, #EB8665);
    border-radius: 10px;
    box-shadow: 0 0 10px #7f7f7f;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.hidden {
    display: none !important;
}

.login-field {
    margin: 15px;
    width: 300px;
    display: flex;
    justify-content: center;
}

.login-field input {
    font-size: 16px;
    height: 30px;
    width: 100%;
}

.login-submit {
    height: 30px;
    width: 100px;
}

.message-item {
    display: flex;
}

.message-item-system {
    font-size: 14px;
    color: gray;
}

.message-item ~ .message-item {
    margin-top: 15px;
}

.message-item-right {
    flex-grow: 1;
}

.message-item-header {
    display: flex;
    align-items: center;
}

.message-item-header-name {
    font-weight: bold;
    margin-right: 15px;
}

.message-item-header-time {
    color: gray;
    font-size: 12px;
}
<!DOCTYPE html>
<html lang="RU">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="main.css">
    <title>Gigachad | Chat</title>
</head>

<body>
    <div id="app">
        <div id="login" class="hidden">
            <div class="login-field">
                <input type="text" class="login-name-input" data-role="login-name-input" placeholder="Введите ваш ник">
            </div>
            <div class="login-field">
                <button class="login-submit" data-role="login-submit">Войти</button>
            </div>
            <div class="login-error" data-role="login-error"></div>
        </div>

        <div id="main" class="hidden">
            <div class="left-side">
                <div class="user-info">
                    <div class="user-photo" data-role="user-photo"></div>
                    <div class="user-name" data-role="user-name"></div>
                </div>

                <div class="user-list-container">
                    <div class="user-list-header">
                        Все пользователи:
                    </div>

                    <div class="user-list" data-role="user-list">
                    </div>
                </div>
            </div>
            <div class="right-side">
                <div class="messages-container" data-role="messages-list"></div>
                <div class="input-container" data-role="message-sender">
                    <input class="message-input" data-role="message-input" type="text" placeholder="сообщение" />
                    <button class="send-button" data-role="message-send-button">Отправить</button>
                </div>
            </div>
        </div>
    </div>

    <script type="module" src="index.js"></script>
</body>

</html>

Вот ссылка на проект со всеми скриптами, т.к. я абсолютно не понимаю в чём тут проблема, дебажил 2 дня


Ответы (0 шт):