Skip to content

Instantly share code, notes, and snippets.

View AnnaZVL's full-sized avatar

Anna AnnaZVL

View GitHub Profile
@AnnaZVL
AnnaZVL / UserAvatar
Last active July 17, 2025 10:39
Компонент аватара пользователя
<script setup>
import { computed, ref, watch } from 'vue';
import IconAvatar from '@/components/Ui/Svg/IconAvatar.vue';
import StandartLoader from '@/components/Ui/Loaders/StandartLoader.vue';
import avatarColors from '@/constants/avatarColors.js';
const props = defineProps({
user: {
@AnnaZVL
AnnaZVL / Login
Last active July 17, 2025 10:44
Валидация полей почты и пароля
const {
email,
setEmail,
isValid: isEmailValid,
errorMessage: emailError,
validate: validEmail,
} = useValidEmail();
const { password, isPasswordValid, passwordError, validate: validatePassword } = useValidPassword();
@AnnaZVL
AnnaZVL / Components
Last active July 17, 2025 11:00
Условные рендеринг компонентов
<script setup lang="ts">
import { computed, type Component } from 'vue';
import type { ComponentsBuilder } from '../../constants/fieldsList';
type InputType = 'text' | 'password' | 'email' | 'checkbox' | 'string' | 'number' | 'select' | 'multiCheckbox'
type ButtonType = 'button' | 'submit' | 'reset'
type TextType = 'title' | 'descr'
@AnnaZVL
AnnaZVL / Websocket_store
Last active July 17, 2025 11:18
Подключение websocket
import { defineStore } from "pinia";
import { useUserStore } from "./userStore";
import { ref } from "vue";
import router from "../router";
import { PATH_TASK } from "../constants/pathWebSocket";
export const useTaskStore = defineStore("taskStore", () => {
const currentTask = ref({})
const taskWebSocket = ref(null);
@AnnaZVL
AnnaZVL / Modals_composables
Last active July 17, 2025 11:23
Функция создания модальных окон
import { createApp, defineComponent, h } from 'vue';
import ModalBase from '@/components/Ui/Modals/ModalBase.vue';
import router from '../router';
export function useModal() {
return ( content, props = {}, modalBaseProps = {} ) => {
const container = document.createElement('div');
document.body.appendChild(container);
const modalApp = createApp(