UNPKG

@notifyon/vue

Version:
1 lines 3.1 kB
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { defineComponent, onMounted, onUnmounted, ref, watch, h } from 'vue';\nimport { connect } from '@notifyon/web';\nimport type { NotifyOnWeb } from '@notifyon/web';\n\nexport const NotifyOn = defineComponent({\n name: 'NotifyOn',\n props: {\n publicKey: {\n type: String,\n required: true,\n },\n userId: {\n type: String,\n required: true,\n },\n },\n setup(props) {\n const instance = ref<NotifyOnWeb | null>(null);\n const isMounted = ref(false);\n\n const initializeNotifyOn = () => {\n // Only run on client side and avoid double initialization\n if (typeof window === 'undefined' || instance.value) {\n return;\n }\n\n // Connect to NotifyOn\n try {\n instance.value = connect({\n publicKey: props.publicKey,\n userId: props.userId,\n });\n } catch (error) {\n console.error('Failed to initialize NotifyOn:', error);\n }\n };\n\n // Initialize on mount\n onMounted(() => {\n if (!isMounted.value) {\n isMounted.value = true;\n initializeNotifyOn();\n }\n });\n\n // Re-initialize when props change\n watch(\n () => [props.publicKey, props.userId],\n (newValues, oldValues) => {\n // Only reinitialize if props actually changed and component is mounted\n if (isMounted.value && JSON.stringify(newValues) !== JSON.stringify(oldValues)) {\n // Destroy existing instance\n if (instance.value) {\n instance.value.destroy();\n instance.value = null;\n }\n // Create new instance\n initializeNotifyOn();\n }\n }\n );\n\n // Cleanup on unmount\n onUnmounted(() => {\n if (instance.value) {\n instance.value.destroy();\n instance.value = null;\n }\n isMounted.value = false;\n });\n\n // This component doesn't render anything\n return () => null;\n },\n});"],"mappings":";AAAA,SAAS,iBAAiB,WAAW,aAAa,KAAK,aAAgB;AACvE,SAAS,eAAe;AAGjB,IAAM,WAAW,gBAAgB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,MAAM,OAAO;AACX,UAAM,WAAW,IAAwB,IAAI;AAC7C,UAAM,YAAY,IAAI,KAAK;AAE3B,UAAM,qBAAqB,MAAM;AAE/B,UAAI,OAAO,WAAW,eAAe,SAAS,OAAO;AACnD;AAAA,MACF;AAGA,UAAI;AACF,iBAAS,QAAQ,QAAQ;AAAA,UACvB,WAAW,MAAM;AAAA,UACjB,QAAQ,MAAM;AAAA,QAChB,CAAC;AAAA,MACH,SAAS,OAAO;AACd,gBAAQ,MAAM,kCAAkC,KAAK;AAAA,MACvD;AAAA,IACF;AAGA,cAAU,MAAM;AACd,UAAI,CAAC,UAAU,OAAO;AACpB,kBAAU,QAAQ;AAClB,2BAAmB;AAAA,MACrB;AAAA,IACF,CAAC;AAGD;AAAA,MACE,MAAM,CAAC,MAAM,WAAW,MAAM,MAAM;AAAA,MACpC,CAAC,WAAW,cAAc;AAExB,YAAI,UAAU,SAAS,KAAK,UAAU,SAAS,MAAM,KAAK,UAAU,SAAS,GAAG;AAE9E,cAAI,SAAS,OAAO;AAClB,qBAAS,MAAM,QAAQ;AACvB,qBAAS,QAAQ;AAAA,UACnB;AAEA,6BAAmB;AAAA,QACrB;AAAA,MACF;AAAA,IACF;AAGA,gBAAY,MAAM;AAChB,UAAI,SAAS,OAAO;AAClB,iBAAS,MAAM,QAAQ;AACvB,iBAAS,QAAQ;AAAA,MACnB;AACA,gBAAU,QAAQ;AAAA,IACpB,CAAC;AAGD,WAAO,MAAM;AAAA,EACf;AACF,CAAC;","names":[]}