Usar el cajón de compartir nativo si está disponible
This commit is contained in:
parent
5be70267cb
commit
ea01cb0602
2 changed files with 41 additions and 1 deletions
|
@ -1,4 +1,17 @@
|
|||
<input type="checkbox" id="share" class="toggler" autocomplete="off" />
|
||||
{%- assign title = include.title | escape -%}
|
||||
{%- assign text = include.description | strip_html | escape -%}
|
||||
{%- assign url = site.url | append: include.url | escape -%}
|
||||
|
||||
<input
|
||||
data-controller="share"
|
||||
data-action="share#share"
|
||||
data-share-title-value="{{ title }}"
|
||||
data-share-text-value="{{ text }}"
|
||||
data-share-url-value="{{ url }}"
|
||||
type="checkbox"
|
||||
id="share"
|
||||
class="toggler"
|
||||
autocomplete="off" />
|
||||
|
||||
<label class="share btn border btn-block" for="share">
|
||||
{{ site.i18n.share.text }}
|
||||
|
|
27
_packs/controllers/share_controller.js
Normal file
27
_packs/controllers/share_controller.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
import { Controller } from 'stimulus'
|
||||
|
||||
export default class extends Controller {
|
||||
static values = {
|
||||
title: String,
|
||||
text: String,
|
||||
url: String
|
||||
}
|
||||
|
||||
async share (event = undefined) {
|
||||
event?.preventDefault()
|
||||
event?.stopPropagation()
|
||||
|
||||
const title = this.titleValue
|
||||
const text = this.textValue
|
||||
const url = this.urlValue
|
||||
const data = { title, text, url }
|
||||
|
||||
if ('share' in navigator) {
|
||||
if (navigator.canShare(data)) {
|
||||
navigator.share(data)
|
||||
} else {
|
||||
console.error('No se puede compartir', data)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue