Files
stack/v1/packages/mosaic/framework/skills/vueuse-functions/references/useShare.md
T

1.5 KiB
Raw Blame History

category
category
Browser

useShare

Reactive Web Share API. The Browser provides features that can share content in text or file.

The share method has to be called following a user gesture like a button click. It cant simply be called on page load for example. Thats in place to help prevent abuse.

Usage

import { useShare } from '@vueuse/core';

const { share, isSupported } = useShare();

function startShare() {
  share({
    title: 'Hello',
    text: 'Hello my friend!',
    url: location.href,
  });
}

Passing a source ref

You can pass a ref to it, changes from the source ref will be reflected to your sharing options.

import { ref } from 'vue';

const shareOptions = ref<ShareOptions>({ text: 'foo' });
const { share, isSupported } = useShare(shareOptions);

shareOptions.value.text = 'bar';

share();

Type Declarations

export interface UseShareOptions {
  title?: string;
  files?: File[];
  text?: string;
  url?: string;
}
/**
 * Reactive Web Share API.
 *
 * @see https://vueuse.org/useShare
 * @param shareOptions
 * @param options
 *
 * @__NO_SIDE_EFFECTS__
 */
export declare function useShare(
  shareOptions?: MaybeRefOrGetter<UseShareOptions>,
  options?: ConfigurableNavigator,
): {
  isSupported: ComputedRef<boolean>;
  share: (overrideOptions?: MaybeRefOrGetter<UseShareOptions>) => Promise<void>;
};
export type UseShareReturn = ReturnType<typeof useShare>;