⬅️ Back to Table of Contents
📄 index.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
2 |
📦 Imports |
5 |
📊 Variables & Constants |
3 |
⚡ Async/Await Patterns |
1 |
📐 Interfaces |
2 |
📑 Type Aliases |
1 |
📚 Table of Contents
🛠️ File Location:
📂 packages/core/useShare/index.ts
📦 Imports
Name |
Source |
MaybeRefOrGetter |
vue |
ConfigurableNavigator |
../_configurable |
toValue |
vue |
defaultNavigator |
../_configurable |
useSupported |
../useSupported |
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
_navigator |
NavigatorWithShare |
const |
navigator as NavigatorWithShare |
✗ |
data |
any |
let/var |
`{ |
|
...toValue(shareOptions), |
|
|
|
|
...toValue(overrideOptions), |
|
|
|
|
}` |
✗ |
|
|
|
granted |
boolean |
let/var |
true |
✗ |
Async/Await Patterns
Type |
Function |
Await Expressions |
Promise Chains |
async-function |
share |
none |
none |
Functions
useShare(shareOptions: MaybeRefOrGetter<UseShareOptions>, options: ConfigurableNavigator): { isSupported: any; share: (overrideOptions?: MaybeRefOrGetter<UseShareOptions>) => Promise<void>; }
Code
export function useShare(shareOptions: MaybeRefOrGetter<UseShareOptions> = {}, options: ConfigurableNavigator = {}) {
const { navigator = defaultNavigator } = options
const _navigator = navigator as NavigatorWithShare
const isSupported = useSupported(() => _navigator && 'canShare' in _navigator)
const share = async (overrideOptions: MaybeRefOrGetter<UseShareOptions> = {}) => {
if (isSupported.value) {
const data = {
...toValue(shareOptions),
...toValue(overrideOptions),
}
let granted = true
if (data.files && _navigator.canShare)
granted = _navigator.canShare({ files: data.files })
if (granted)
return _navigator.share!(data)
}
}
return {
isSupported,
share,
}
}
-
JSDoc:
/**
* Reactive Web Share API.
*
* @see https://vueuse.org/useShare
* @param shareOptions
* @param options
*/
-
Parameters:
shareOptions: MaybeRefOrGetter<UseShareOptions>
options: ConfigurableNavigator
- Return Type:
{ isSupported: any; share: (overrideOptions?: MaybeRefOrGetter<UseShareOptions>) => Promise<void>; }
- Calls:
useSupported (from ../useSupported)
toValue (from vue)
_navigator.canShare
complex_call_1273
share(overrideOptions: MaybeRefOrGetter<UseShareOptions>): Promise<void>
Code
async (overrideOptions: MaybeRefOrGetter<UseShareOptions> = {}) => {
if (isSupported.value) {
const data = {
...toValue(shareOptions),
...toValue(overrideOptions),
}
let granted = true
if (data.files && _navigator.canShare)
granted = _navigator.canShare({ files: data.files })
if (granted)
return _navigator.share!(data)
}
}
- Parameters:
overrideOptions: MaybeRefOrGetter<UseShareOptions>
- Return Type:
Promise<void>
- Calls:
toValue (from vue)
_navigator.canShare
complex_call_1273
Interfaces
UseShareOptions
Interface Code
export interface UseShareOptions {
title?: string
files?: File[]
text?: string
url?: string
}
Properties
Name |
Type |
Optional |
Description |
title |
string |
✓ |
|
files |
File[] |
✓ |
|
text |
string |
✓ |
|
url |
string |
✓ |
|
NavigatorWithShare
Interface Code
interface NavigatorWithShare {
share?: (data: UseShareOptions) => Promise<void>
canShare?: (data: UseShareOptions) => boolean
}
Properties
Name |
Type |
Optional |
Description |
share |
(data: UseShareOptions) => Promise<void> |
✓ |
|
canShare |
(data: UseShareOptions) => boolean |
✓ |
|
Type Aliases
UseShareReturn
type UseShareReturn = ReturnType<typeof useShare>;