Skip to main content
Glama
SiValidation.vue1.47 kB
<template> <div> <div v-for="error in errors" :key="error.id" :class="errorClasses(error.id)" v-bind="$attrs" > {{ error.message }} </div> </div> </template> <script setup lang="ts"> import { ref, watch, toRefs } from "vue"; import * as _ from "lodash-es"; import { ValidatorArray, ErrorsArray } from "@/utils/input_validations"; const props = defineProps<{ validations?: ValidatorArray; value: string; }>(); const emit = defineEmits<{ (e: "errors", errors: ErrorsArray): void }>(); const errors = ref<ErrorsArray>([]); const { value, validations } = toRefs(props); const evaluateErrors = (newValue: string, validations?: ValidatorArray) => { const currentErrors: ErrorsArray = []; for (const v of validations ?? []) { if (v.check(newValue) === false) { currentErrors.push({ id: v.id, message: v.message }); } } errors.value = currentErrors; emit("errors", errors.value); }; watch( [() => value.value, () => validations?.value], ([newValue, newValidations]) => { evaluateErrors(newValue, newValidations); }, { immediate: true }, ); const errorClasses = (id: string) => { const classes: Record<string, boolean> = {}; classes["text-xs"] = true; classes["lg:text-sm"] = true; classes["text-destructive-500"] = true; classes["dark:text-destructive-600"] = true; return classes; }; </script> <script lang="ts"> export default { inheritAttrs: false, }; </script>

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server