vueless
Version:
Vue Styleless UI Component Library, powered by Tailwind CSS.
67 lines (51 loc) • 2.12 kB
text/mdx
import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source, Markdown } from "@storybook/addon-docs/blocks";
import { getSource } from "../../utils/storybook";
import * as stories from "./stories";
import defaultConfig from "../config?raw"
<Meta of={stories} />
<Title of={stories} />
<Subtitle of={stories} />
<Description of={stories} />
<Primary of={stories} />
<Controls of={stories.Default} />
<Stories of={stories} />
To control the loader state in Vue components use `useLoaderProgress` composable.
The loader uses queue of resources and will be shown until at least one item is present in a queue.
The queue approach is useful if you want to implement global loading handling (for example in axios interceptors)
<Source code={`
import { useLoaderProgress } from "vueless";
const {
isLoading,
loaderProgressOn,
loaderProgressOff,
progressRequestQueue,
} = useLoaderProgress();
/* get loader state */
console.log(isLoading.value);
/* show loader */
loaderProgressOn(); // simple
loaderProgressOn("/transactions"); // single resource
loaderProgressOff(["/transactions", "/products"]); // multiple resources
/* hide loader */
loaderProgressOff(); // simple
loaderProgressOff("/transactions"); // single resource
loaderProgressOff(["/transactions", "/products"]); // multiple resources
/* access loader progress resource queue */
console.log(progressRequestQueue.value);
`} language="jsx" dark />
To control the loader state outside Vue components, use the following methods.
<Source code={`
import { loaderProgressOn, loaderProgressOff } from "vueless";
/* show loader */
loaderProgressOn(); // simple
loaderProgressOn("/transactions"); // single resource
loaderProgressOff(["/transactions", "/products"]); // multiple resources
/* hide loader */
loaderProgressOff(); // simple
loaderProgressOff("/transactions"); // single resource
loaderProgressOff(["/transactions", "/products"]); // multiple resources
`} language="jsx" dark />
<Source code={getSource(defaultConfig)} language="jsx" dark />