Skip to content

Commit 9b689d9

Browse files
committed
fix: use js-cookie outside component
1 parent d4a3f7d commit 9b689d9

File tree

2 files changed

+32
-16
lines changed

2 files changed

+32
-16
lines changed

src/runtime/components/CookieControl.vue

+16-11
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@
8787
getCookieIds(localCookiesEnabled)?.includes(
8888
getCookieId(cookie)
8989
) ||
90-
(Cookies.get(
91-
moduleOptions.cookieNameIsConsentGiven
92-
) !== 'true' &&
90+
(getCookie(moduleOptions.cookieNameIsConsentGiven) !==
91+
'true' &&
9392
typeof moduleOptions.isIframeBlocked === 'object' &&
9493
moduleOptions.isIframeBlocked.initialState)
9594
"
@@ -162,11 +161,17 @@
162161
</template>
163162

164163
<script setup lang="ts">
165-
import Cookies from 'js-cookie'
166164
import { ref, computed, onBeforeMount, watch } from 'vue'
167165
168166
import { Cookie, CookieType, Locale, Translatable } from '../types'
169-
import { getCookieId, getCookieIds, useResolveTranslatable } from '../methods'
167+
import {
168+
getCookie,
169+
getCookieId,
170+
getCookieIds,
171+
removeCookie,
172+
setCookie,
173+
useResolveTranslatable,
174+
} from '../methods'
170175
171176
import { useCookieControl } from '#imports'
172177
@@ -301,7 +306,7 @@ onBeforeMount(async () => {
301306
isColorsSet.value = true
302307
}
303308
304-
if (Cookies.get(moduleOptions.cookieNameIsConsentGiven) === 'true') {
309+
if (getCookie(moduleOptions.cookieNameIsConsentGiven) === 'true') {
305310
for (const cookieOptional of moduleOptions.cookies.optional) {
306311
if (
307312
typeof moduleOptions.isIframeBlocked === 'boolean'
@@ -319,7 +324,7 @@ watch(
319324
localCookiesEnabled.value = [...(current || [])]
320325
321326
if (isConsentGiven.value) {
322-
Cookies.set(
327+
setCookie(
323328
moduleOptions.cookieNameCookiesEnabledIds,
324329
getCookieIds(current || []).join(','),
325330
{
@@ -335,7 +340,7 @@ watch(
335340
document.getElementsByTagName('head')[0].appendChild(script)
336341
}
337342
} else {
338-
Cookies.remove(moduleOptions.cookieNameCookiesEnabledIds)
343+
removeCookie(moduleOptions.cookieNameCookiesEnabledIds)
339344
}
340345
341346
// delete formerly enabled cookies that are now disabled
@@ -347,7 +352,7 @@ watch(
347352
if (!cookieOptionalDisabled.targetCookieIds) continue
348353
349354
for (const cookieOptionalDisabledId of cookieOptionalDisabled.targetCookieIds) {
350-
Cookies.remove(cookieOptionalDisabledId)
355+
removeCookie(cookieOptionalDisabledId)
351356
}
352357
353358
if (cookieOptionalDisabled.src) {
@@ -365,9 +370,9 @@ watch(
365370
)
366371
watch(isConsentGiven, (current, _previous) => {
367372
if (current === undefined) {
368-
Cookies.remove(moduleOptions.cookieNameIsConsentGiven)
373+
removeCookie(moduleOptions.cookieNameIsConsentGiven)
369374
} else {
370-
Cookies.set(moduleOptions.cookieNameIsConsentGiven, current.toString(), {
375+
setCookie(moduleOptions.cookieNameIsConsentGiven, current.toString(), {
371376
expires,
372377
})
373378
}

src/runtime/methods.ts

+16-5
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1+
import Cookies from 'js-cookie'
12
import slugify from '@sindresorhus/slugify'
23

34
import { LOCALE_DEFAULT } from './constants'
45
import { Cookie, Translatable } from './types'
56

7+
export const getCookie = (name: string) => Cookies.get(name)
8+
69
export const getCookieId = (cookie: Cookie) =>
710
cookie.id || slugify(resolveTranslatable(cookie.name))
811

912
export const getCookieIds = (cookies: Cookie[]) =>
1013
cookies.map((cookie) => getCookieId(cookie))
1114

12-
export const useResolveTranslatable = (locale = LOCALE_DEFAULT) => {
13-
return (translatable: Translatable) =>
14-
resolveTranslatable(translatable, locale)
15-
}
15+
export const removeCookie = (name: string) => Cookies.remove(name)
1616

17-
const resolveTranslatable = (
17+
export const resolveTranslatable = (
1818
translatable: Translatable,
1919
locale = LOCALE_DEFAULT
2020
) => {
@@ -30,3 +30,14 @@ const resolveTranslatable = (
3030

3131
return result
3232
}
33+
34+
export const setCookie = (
35+
name: string,
36+
value: string,
37+
options: Cookies.CookieAttributes
38+
) => Cookies.set(name, value, options)
39+
40+
export const useResolveTranslatable = (locale = LOCALE_DEFAULT) => {
41+
return (translatable: Translatable) =>
42+
resolveTranslatable(translatable, locale)
43+
}

0 commit comments

Comments
 (0)