tawk / tawk-messenger-vue-3

Official Vue 3 plugin for Tawk messenger
https://tawk.to
Other
10 stars 5 forks source link

Consider renaming injection keys to avoid collisions #6

Open IsraelOrtuno opened 2 years ago

IsraelOrtuno commented 2 years ago

Hello! Thanks for the package, definitely useful for a quick installation in a Vue/Nuxt app. I found something that may be quite tricky to deal with and is the fact that the package uses Vue 3 provide to expose its api so it can be used anywhere. This is quite nice BUT the key names for these functions to be injected are too generic and are very likely to collision with other. I would suggest adding a prefix to those like tawk* (whatever other pattern may work too):

    const minimize = inject('tawkMinimize');
    const onLoad = inject('tawkOnLoad');
    const toggle = inject('tawkToggle');

Specially the ones mentioned in the example are way to generic and chances are that these names may already exist in an application. I am aware this may be a breaking change but will definitely help users to use the package and prevent unexpected behaviours so it could maybe be released in a v2 release.

IsraelOrtuno commented 2 years ago

Extracting the actions to an external module may be a good way to go to so the package could keep the current behaviour and add a more robust one without breaking changes:

import { onLoad, toggle, minimize } from 'tawk/actions'

Happy to help with a PR here if maintainers consider this approach.

IsraelOrtuno commented 1 year ago

No reply in months

chrisspiegl commented 1 year ago

This would be incredibly important IMO!

jaoaustero commented 1 year ago

@IsraelOrtuno Thank you for submitting this issue, we would like to apologize for having a delay to look at this. We will provide an update within this week.

@chrisspiegl Yes this would be fix right away

pixelpaulaus commented 1 year ago

yeah this is a big oversight using such generic names

chreniuc commented 8 months ago

@jaoaustero any news on this?