gbclient/src/lib/client-cookies.ts

25 lines
No EOL
685 B
TypeScript

'use client';
export function getClientCookie(key: string): string | null {
if (typeof document === 'undefined') return null;
const value = document.cookie
.split('; ')
.find(row => row.startsWith(`${key}=`))
?.split('=')[1];
return value ? decodeURIComponent(value) : null;
}
export function setClientCookie(
key: string,
value: string,
options: { expires?: Date; path?: string } = {}
): void {
if (typeof document === 'undefined') return;
let cookie = `${key}=${encodeURIComponent(value)}`;
if (options.expires) cookie += `; expires=${options.expires.toUTCString()}`;
cookie += `; path=${options.path || '/'}`;
document.cookie = cookie;
}