import { Button, Notice, ToggleControl } from '@wordpress/components'; import { useRef, useState } from '@wordpress/element'; import { api } from '../api'; import { getApiErrorMessage } from '../api-error'; import type { PageViewCaptureFields, SettingsUpdateResponse } from '../types'; interface PageViewCaptureSettingProps { value: PageViewCaptureFields; canEnable: boolean; onSaved: (value: PageViewCaptureFields) => void; } export default function PageViewCaptureSetting({ value, canEnable, onSaved, }: PageViewCaptureSettingProps): JSX.Element { const [saving, setSaving] = useState(false); const [error, setError] = useState(null); const inFlight = useRef(false); const { page_view_capture: enabled, page_view_capture_decided: decided } = value; const save = async (next: boolean): Promise => { if (inFlight.current || (next && !canEnable)) { return; } inFlight.current = true; setSaving(true); setError(null); try { const result = await api.post('/settings', { page_view_capture: next }); onSaved({ page_view_capture: result.page_view_capture, page_view_capture_decided: result.page_view_capture_decided, }); } catch (err: unknown) { setError(getApiErrorMessage(err)); } finally { inFlight.current = false; setSaving(false); } }; return ( <>

See which AI shopping agents visit your product pages. When on, page views share basic browser details with Mintall.

{error && (
{error}
)} {decided ? ( ) : ( <>

Currently {enabled ? 'on' : 'off'} (default).

)} ); }