klaro-js icon indicating copy to clipboard operation
klaro-js copied to clipboard

How to wait until user accept/decline

Open janstieler opened this issue 2 years ago • 2 comments

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

janstieler avatar Aug 30 '23 12:08 janstieler

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.

fjahn avatar Aug 30 '23 12:08 fjahn

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

janstieler avatar Aug 30 '23 13:08 janstieler