UNPKG

@ark-ui/vue

Version:

A collection of unstyled, accessible UI components for Vue, utilizing state machines for seamless interaction.

28 lines (27 loc) 968 B
const require_use_environment_context = require("../../providers/environment/use-environment-context.cjs"); let vue = require("vue"); let _zag_js_file_utils = require("@zag-js/file-utils"); //#region src/components/download-trigger/use-download.ts var useDownload = (props) => { const env = require_use_environment_context.useEnvironmentContext(require_use_environment_context.DEFAULT_ENVIRONMENT); const download = () => { const { fileName, mimeType, data } = (0, vue.toValue)(props); const win = env?.value.getWindow() || window; const saveToDisk = (value) => { (0, _zag_js_file_utils.downloadFile)({ file: value, name: fileName, type: mimeType, win }); }; if (typeof data === "function") { const maybePromise = data(); if (maybePromise instanceof Promise) maybePromise.then(saveToDisk); else saveToDisk(maybePromise); } else saveToDisk(data); }; return { download }; }; //#endregion exports.useDownload = useDownload;