Ответы пользователя по тегу JavaScript
  • Как определить длину числа через регулярку?

    @Wyse Автор вопроса
    Определите, является ли строка 'числом, длиной от 1 до 12 цифр'.
    let num = 12345678910111213;
    let result = (/^[0-9]{1,12}$/.test(num));
    Ответ написан
    Комментировать
  • Почему не работает Console.log в Windows PowerShell?

    Скачай GIT, удобная штука. По умолчанию вместо мусорного виндовского терминала ставишь и кайфуешь.
    Ответ написан
    Комментировать
  • Как обновлять страницу при сохранении handlebars?

    @Wyse Автор вопроса
    Подключил функцию

    export default function HandlebarUpdate() {
      return {
        name: "HandlebarUpdate",
        enforce: "post",
        handleHotUpdate({ file, server }) {
          if (file.endsWith(".hbs")) {
            console.log("reloading handlebar file...");
            server.ws.send({
              type: "full-reload",
              path: "*",
            });
          }
        },
      };
    }


    Затем в vite.config.js

    import HandlebarUpdate from "./src/js/files/handlebarUpdate";
    HandlebarUpdate(),
    Ответ написан
    2 комментария
  • Как сделать чтобы js применялись только к определенному диву?

    Назначь класс диву "element" например,
    Потом в js пишешь вот так
    const div = document.querySelector('.element');

    И код будет применяться к этому диву
    Ответ написан
    4 комментария
  • Как отправить форму при нажатии на enter, если кнопок несколько?

    @Wyse Автор вопроса
    Всем спасибо, проблему решил
    formAuth.addEventListener('submit', (e) => {
        e.preventDefault();
        if (formAuth.classList.contains('registration')) {
        } 
        else if (formAuth.classList.contains('IsRegistred')){
        } else {
          modalVisible('Auth error');
        }
      })
    Ответ написан
    Комментировать
  • Как выбрать все токены в firebase?

    @Wyse Автор вопроса
    Получить список всех пользователей
    const dbRef = ref(getDatabase());
      get(child(dbRef, `users/`)).then((snapshot) => {
        snapshot.forEach((child) => {
          child.val().email;
         
        });
      });
    Ответ написан
    Комментировать
  • Как отрендерить событие клик?

    @Wyse Автор вопроса
    Ну пока тыкал, заметил что addEventListener вообще никакой код не обрабатывает при переходе на новую страницу, даже алерт не хочет показывать.
    Я вот что сделал.
    При переходе на страницу, сразу проверять где я нахожусь и тут же рендерить БД.
    Получается такая же логика какую я и хотел сделать, но может кто то еще какие то варианты предложит

    if (document.querySelector('.page-database')) {
      createEmails();
      setTimeout(() => {
        getEmails();
      }, 2000);
    }
    Ответ написан
    Комментировать
  • Как из firebase вытащить всех юзеров списком?

    @Wyse Автор вопроса
    Первое что хочу сделать, это переделать из модульного подключения в импорты
    Делаю все по доке
    Выдает ошибку applicationDefault is not defined
    import { initializeApp } from 'firebase/app';
    import { getDatabase, set, ref, update } from "firebase/database";
    import { getAuth, createUserWithEmailAndPassword, signInWithEmailAndPassword, onAuthStateChanged, signOut } from "firebase/auth";
    import { firebaseConfig} from './firebase/firebaseConfig.js';
    
    initializeApp({
       credential: applicationDefault(),
       databaseURL: 'https://auth-examplec-default-rtdb.firebaseio.com'
    });
    
    
    
     export const app = initializeApp(firebaseConfig);
     export const database = getDatabase(app);
     export const auth = getAuth();
    
     export const signUp = document.getElementById('signUp');
     export const login = document.getElementById('login');
     export const logout = document.getElementById('logout');
     export const goSignUp = document.querySelector('.goSignUp');
     export const goSignIn = document.querySelector('.goSignIn');
     export let loggedTitle = document.querySelector('.loggedTitle');
     goSignUp.style.display = 'none';
     logout.style.display = 'none';
     login.style.display = 'none';
     loggedTitle.style.display = 'none';
    
    //* юзер зарегистрировался
    function accountIsRegistred() {
    	signUp.style.display = 'none';
    	goSignIn.style.display = 'none';
    	login.style.display = 'block';
    	goSignUp.style.display = 'block';
    }
    
    //* юзер авторизировался
    function logged(){
    	let email = document.querySelector('.sign-form__email');
    	let password = document.querySelector('.sign-form__password');
    	login.style.display = 'none';
    	goSignUp.style.display = 'none';
    	logout.style.display = 'block';
    	email.style.display = 'none';
    	password.style.display = 'none';
    	loggedTitle.style.display = 'block';
    }
    
    //* переход к регистрации
    function registration(){
    	goSignUp.style.display = 'none';
    	logout.style.display = 'none';
    	login.style.display = 'none';
    	signUp.style.display = 'block';
    	goSignIn.style.display = 'block';
    }
    
    //* переход к авторизации
    function goLogin() {
    	accountIsRegistred();
    	logout.style.display = 'none';
    
    }
    
    
    goSignIn.addEventListener('click', (e) => {
    	accountIsRegistred(signUp)
    	goSignIn.style.display = "none";
    })
    
    goSignUp.addEventListener('click', (e) => {
    	registration();
    })
    
    signUp.addEventListener('click', (e) => {
    		let email = document.getElementById('email').value;
    		let password = document.getElementById('password').value;
    		// let username = document.getElementById('username').value;
    
    createUserWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        const user = userCredential.user;
    
    	 set(ref(database, 'users/' + user.uid),{
    		// username: username,
    		email: email,
    		password: password,
    	 })
    	 alert("user created " + email);
    	 accountIsRegistred();
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        
    	 alert(errorMessage);
      });
    	})
    
    login.addEventListener('click', (e) => {
    		let email = document.getElementById('email').value;
    		let password = document.getElementById('password').value;
    signInWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        const user = userCredential.user;
    
    	 const dt = new Date();
    
    	 update(ref(database, 'users/' + user.uid),{
    		last_login: dt
    	 })
    
    	 alert('User loged in! ' + email);
    	 logged();
    	 loggedTitle.innerHTML =" You are logged as " + email;
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
    
    	 alert(errorMessage);
    
      });
    
    });
    
    
    const user = auth.currentUser;
    onAuthStateChanged(auth, (user) => {
    
    if (user) {
      // User is signed in, see docs for a list of available properties
      // https://firebase.google.com/docs/reference/js/firebase.User
      const uid = user.uid;
    
      // ...
    } else {
      // No user is signed in.
    }
    });
    
    
    logout.addEventListener('click', (e) => {
    	
    	signOut(auth).then(() => {
      // Sign-out successful.
      alert('user loged out');
    	goLogin();
    }).catch((error) => {
    	const errorCode = error.code;
        const errorMessage = error.message;
    
    	 alert(errorMessage);
    });
    });
    Ответ написан
  • Как инициализировать переменную множество раз в js?

    @Wyse Автор вопроса
    При клике создаю новую дату.
    sendMessage.addEventListener("click", function (e) {
      let logMessage;
      let sendDate = new Date();
      let sendMinuts = (sendDate.getMinutes() < 10 ? "0" : "") + sendDate.getMinutes();
      let sendHours = sendDate.getHours();
      let sendMessageDate = sendHours + ":" + sendMinuts;
      logMessage = sendMessageDate;
      chatWrapper.insertAdjacentHTML(
        "beforeend",
        '<div class="chat-user chat-body"><div class="chat-user__image"><img src="img/person2.png" alt=""></div><div class="chat-user__message chat-message"><p class="chat-user__text">' +
          inputMessage.value +
          '</p><div class="chat-user__time chat-time">'+logMessage+'</div></div></div>'
      );
    Ответ написан
    Комментировать
  • Как реализовать лайк на js?

    Добавляешь класс +1 , и при следующем клике удаляешь класс. Попробуй через classList.toggle
    Ответ написан