diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4b7c935..5c946dc 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -42,6 +42,7 @@ function App() { screenshotOneApiKey: null, isImageGenerationEnabled: true, editorTheme: EditorTheme.COBALT, + isTermOfServiceAccepted: false, }, "setting" ); @@ -124,10 +125,22 @@ function App() { toast.success("Copied to clipboard"); }, [generatedCode]); + const handleTermDialogOpenChange = (open: boolean) => { + setSettings((s) => ({ + ...s, + isTermOfServiceAccepted: !open, + })); + }; + return (
{IS_RUNNING_ON_CLOUD && } - {IS_RUNNING_ON_CLOUD && } + {IS_RUNNING_ON_CLOUD && ( + + )}
diff --git a/frontend/src/components/TermsOfServiceDialog.tsx b/frontend/src/components/TermsOfServiceDialog.tsx index 12b90ee..2bd3178 100644 --- a/frontend/src/components/TermsOfServiceDialog.tsx +++ b/frontend/src/components/TermsOfServiceDialog.tsx @@ -6,13 +6,14 @@ import { DialogHeader, DialogTitle, } from "@/components/ui/dialog"; -import { useState } from "react"; -function TermsOfServiceDialog() { - const [isOpen, setIsOpen] = useState(true); +const TermsOfServiceDialog: React.FC<{ + open: boolean; + onOpenChange: (open: boolean) => void; +}> = ({ open, onOpenChange }) => { return ( - + Terms of Service @@ -45,6 +46,6 @@ function TermsOfServiceDialog() { ); -} +}; export default TermsOfServiceDialog; diff --git a/frontend/src/types.ts b/frontend/src/types.ts index ef60858..d2ea696 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -8,6 +8,7 @@ export interface Settings { screenshotOneApiKey: string | null; isImageGenerationEnabled: boolean; editorTheme: EditorTheme; + isTermOfServiceAccepted: boolean; // Only relevant for hosted version } export enum AppState {