klaro-org / klaro-js

Klaro Privacy Manager. An open-source, privacy-friendly & compliant consent manager for your website.
https://klaro.org
Other
1.19k stars 253 forks source link

How to wait until user accept/decline #481

Open janstieler opened 1 year ago

janstieler commented 1 year ago

Hi, how can I wait wit a JS function until the user have accepted or deccline the consent window? I'm not shure if the watcher is the right tool for that. And if yes how have I to use it? The manual is a little bit written on the diet way.

Best

fjahn commented 1 year ago

The easiest way is to write it directly into the config at a service's callback property:

const config = {
    services: [
        {
            name: 'googleAnalytics',
            callback(consented, service) {
                console.log(`Consent status for ${service.name}: ${consented}`)
            }
        }
    ]
}

If you need to do this in a specific place in code, you can use the ConsentManager to register a watcher:

const manager = klaro.getManager(config) // Use the same config object you used for initialization
manager.watch({
    update(config, eventName, consents) {
        if (eventName !== 'consents') return
        console.log(`Consent status for google analytics: ${consents.googleAnalytics}`)
    }
})

Code is untested and might need minor fixing, just writing this from memory.

janstieler commented 1 year ago

@fjahn thank you very much! This helps me really!