UNPKG

@artmate/chat

Version:

借鉴字节开源react库AntX,通过vue实现的版本

34 lines (33 loc) 874 B
import { ref as r, watch as m, watchEffect as c, computed as s } from "vue"; function a(e) { return typeof e == "string"; } const y = (e, t, f, n) => { const v = r(""), u = r(1), l = r(t && a(e.value)); m( () => e.value, () => { !l.value && a(e.value) ? u.value = e.value.length : a(e.value) && a(v.value) && e.value.indexOf(v.value) !== 0 && (u.value = 1), v.value = e.value; } ), c(() => { if (u.value, e.value, l.value && u.value < e.value.length) { const i = setTimeout(() => { const d = (o) => o + f; u.value = d(u.value); }, n); return () => { clearTimeout(i); }; } }); const g = s(() => { const i = l.value ? e.value.slice(0, u.value) : e.value; return () => i; }), p = s( () => l.value && u.value < e.value.length ); return [g, p]; }; export { y as default };