← Files DataARCHIVED FILE

templates/data-app/base/src/verification-reminder.js

1.56 KB · Sep 30, 2026 · 23:19 UTC

↓ Download file

import { refreshCoachmarkDomain as workspaceCookieDomain } from "./refresh-coachmark.js";

// A browser convenience, not identity or verification authority. Workspace Sites
// share a cookie; other origins retain their own local preference.
export const VERIFICATION_REMINDER_COOKIE = "data_app_verification_reminder_v1";
const maxAge = 400 * 24 * 60 * 60;

export function readVerificationReminderDismissed({ document = globalThis.document, location = globalThis.location, storage } = {}) {
  try {
    if (!workspaceCookieDomain(location)) return (storage ?? globalThis.localStorage)?.getItem(VERIFICATION_REMINDER_COOKIE) === "1";
    if (!document) return false;
    const values = document.cookie.split(";").map(value => value.trim())
      .filter(value => value.startsWith(`${VERIFICATION_REMINDER_COOKIE}=`));
    return values.length === 1 && values[0] === `${VERIFICATION_REMINDER_COOKIE}=1`;
  } catch { return false; }
}

export function rememberVerificationReminderDismissed({ document = globalThis.document, location = globalThis.location, storage } = {}) {
  try {
    const domain = workspaceCookieDomain(location);
    if (!domain) {
      const local = storage ?? globalThis.localStorage;
      local?.setItem(VERIFICATION_REMINDER_COOKIE, "1");
      return local?.getItem(VERIFICATION_REMINDER_COOKIE) === "1";
    }
    if (!document) return false;
    document.cookie = `${VERIFICATION_REMINDER_COOKIE}=1; Domain=${domain}; Path=/; Max-Age=${maxAge}; Secure; SameSite=Lax`;
    return readVerificationReminderDismissed({ document, location });
  } catch { return false; }
}

SHA-256: 9c135c75d15ef1a43aa98efd5db51aed44afbacb86206d073608cdb764957bc0