File size: 1,310 Bytes
cd8bd0a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"use client";

import { useTranslations } from "next-intl";
import { useShallow } from "zustand/react/shallow";
import { Toggle } from "@/shared/components";
import useEmailPrivacyStore from "@/store/emailPrivacyStore";

export default function AccountEmailVisibilitySetting() {
  const t = useTranslations("settings");
  const { emailsVisible, setEmailsVisible } = useEmailPrivacyStore(
    useShallow((state) => ({
      emailsVisible: state.emailsVisible,
      setEmailsVisible: state.setEmailsVisible,
    }))
  );

  const label = (key: string, fallback: string) =>
    typeof t.has === "function" && t.has(key) ? t(key) : fallback;

  return (
    <div className="pt-4 border-t border-border">
      <div className="flex items-center justify-between gap-4">
        <div>
          <p className="font-medium">
            {label("accountEmailVisibility", "Account email visibility")}
          </p>
          <p className="text-sm text-text-muted">
            {label(
              "accountEmailVisibilityDesc",
              "Show full account emails across providers, combos, logs, quota, and playground screens. Turn this off to mask them by default."
            )}
          </p>
        </div>
        <Toggle checked={emailsVisible} onChange={setEmailsVisible} />
      </div>
    </div>
  );
}