import { PushNotifications } from '@capacitor/push-notifications'
export async function getPushToken() {
let permStatus = (await PushNotifications.checkPermissions()).receive
if (permStatus === 'prompt') {
permStatus = (await PushNotifications.requestPermissions()).receive;
}
if (permStatus !== 'granted') {
throw new Error('User denied permissions!');
}
const res = new Promise((resolve, reject) => {
PushNotifications.addListener('registration', token => {
resolve(token.value)
});
PushNotifications.addListener('registrationError', err => {
reject(err.error);
});
})
PushNotifications.register();
return res
}
<template>
<q-btn
ref="btnRef"
:text-color
v-bind="parentProps"
@click="onBtnClick"
/>
</template>
<script setup lang="ts">
import type {QBtnProps} from 'quasar'
type PropsType = QBtnProps & {
textColor?: string,
}
const {textColor = 'black', ...parentProps} = defineProps<PropsType>()
const emit = defineEmits(['click'])
function onBtnClick() {
console.log('Button clicked')
emit('click')
}
</script>
import {QBtn} from 'quasar'
import type { ComponentProps } from 'vue-component-type-helpers';
type PropsType = ComponentProps<typeof QBtn> & {
textColor?: string,
}
const {textColor = 'black', ...parentProps} = defineProps<PropsType>()
<script setup lang="ts">
import ToggleSwitch from 'primevue/toggleswitch';
import {useAppSidebar} from "../model/useAppSidebar.ts";
const {isOpen} = useAppSidebar();
</script>
<template>
<ToggleSwitch v-model="isOpen" />
</template>
<Test :dark="true" :dark="false"/>
. Немного нелогично, похоже на неопределенное или незадокументированное поведение для случая с совпадением имен.defineProps({
dark:Boolean
})
тогда конкретно dark проваливаться перестанет.<Test v-bind="$attrs" :dark="true"/>
заработает: defineOptions({
inheritAttrs:false
})
<Test :dark="true" v-bind="$attrs"/>
- поведение останется текущим<script src="https://unpkg.com/@vueuse/shared"></script>
<script src="https://unpkg.com/@vueuse/core"></script>
const {useTitle} = window.VueUse
<template id="component-id">
в качестве источника шаблона компонента, а уже компоненты поместить в корень приложения (<div id="app">
или что-то подобное) https://codepen.io/FragsterAt/pen/gONyzdJ