summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/privacy/PrivacyNotice.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/privacy/PrivacyNotice.tsx')
-rw-r--r--packages/cli/src/ui/privacy/PrivacyNotice.tsx42
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/cli/src/ui/privacy/PrivacyNotice.tsx b/packages/cli/src/ui/privacy/PrivacyNotice.tsx
new file mode 100644
index 00000000..b12b3648
--- /dev/null
+++ b/packages/cli/src/ui/privacy/PrivacyNotice.tsx
@@ -0,0 +1,42 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { Box } from 'ink';
+import { type Config, AuthType } from '@google/gemini-cli-core';
+import { GeminiPrivacyNotice } from './GeminiPrivacyNotice.js';
+import { CloudPaidPrivacyNotice } from './CloudPaidPrivacyNotice.js';
+import { CloudFreePrivacyNotice } from './CloudFreePrivacyNotice.js';
+
+interface PrivacyNoticeProps {
+ onExit: () => void;
+ config: Config;
+}
+
+const PrivacyNoticeText = ({
+ config,
+ onExit,
+}: {
+ config: Config;
+ onExit: () => void;
+}) => {
+ const authType = config.getContentGeneratorConfig()?.authType;
+
+ switch (authType) {
+ case AuthType.USE_GEMINI:
+ return <GeminiPrivacyNotice onExit={onExit} />;
+ case AuthType.USE_VERTEX_AI:
+ return <CloudPaidPrivacyNotice onExit={onExit} />;
+ case AuthType.LOGIN_WITH_GOOGLE_PERSONAL:
+ default:
+ return <CloudFreePrivacyNotice config={config} onExit={onExit} />;
+ }
+};
+
+export const PrivacyNotice = ({ onExit, config }: PrivacyNoticeProps) => (
+ <Box borderStyle="round" padding={1} flexDirection="column">
+ <PrivacyNoticeText config={config} onExit={onExit} />
+ </Box>
+);