import { createSignal, onMount } from "solid-js"; import orLogo from "~/assets/orSpot.svg"; import arrowLeft from "~/assets/arrow-left.svg"; const defaultIngest = "https://app.openreplay.com"; function Settings({ goBack }: { goBack: () => void }) { const [includeDevTools, setIncludeDevTools] = createSignal(true); const [openInNewTab, setOpenInNewTab] = createSignal(true); const [showIngest, setShowIngest] = createSignal(false); const [ingest, setIngest] = createSignal(defaultIngest); const [editIngest, setEditIngest] = createSignal(false); const [tempIngest, setTempIngest] = createSignal(""); const [useDebugger, setUseDebugger] = createSignal(false); onMount(() => { chrome.storage.local.get("settings", (data: any) => { if (data.settings) { const ingest = data.settings.ingestPoint || defaultIngest; const devToolsEnabled = data.settings.consoleLogs && data.settings.networkLogs; setOpenInNewTab(data.settings.openInNewTab ?? false); setIncludeDevTools(devToolsEnabled); setIngest(ingest); setTempIngest(ingest); setShowIngest(ingest !== defaultIngest); setEditIngest(!data.settings.ingestPoint); setUseDebugger(data.settings.useDebugger); } }); }); const toggleIncludeDevTools = (e: Event) => { e.preventDefault(); e.stopPropagation(); const value = includeDevTools(); setIncludeDevTools(!value); chrome.runtime.sendMessage({ type: "ort:settings", settings: { consoleLogs: !value, networkLogs: !value }, }); }; const toggleShowIngest = (e: any) => { e.preventDefault(); e.stopPropagation(); const value = e.target.checked const newSettings = { showIngest: value } if (!value) { newSettings['ingestPoint'] = defaultIngest } chrome.runtime.sendMessage({ type: "ort:settings", settings: newSettings, }); setShowIngest(value); }; const applyIngest = () => { const val = tempIngest(); if (isValidUrl(val)) { chrome.runtime.sendMessage({ type: "ort:settings", settings: { ingestPoint: val }, }); setIngest(val); setEditIngest(false); } else { alert("Please enter a valid URL."); } }; const toggleEditIngest = (isEditing: boolean) => { setTempIngest(ingest()); setEditIngest(isEditing); }; const isValidUrl = (url: string) => { try { new URL(url); return true; } catch (e) { return false; } }; const toggleOpenInNewTab = (e: Event) => { e.stopPropagation(); const value = openInNewTab(); setOpenInNewTab(!value); chrome.runtime.sendMessage({ type: "ort:settings", settings: { openInNewTab: !value }, }); }; const toggleUseDebugger = (e: Event) => { e.stopPropagation(); const value = useDebugger(); setUseDebugger(!value); chrome.runtime.sendMessage({ type: "ort:settings", settings: { useDebugger: !value }, }); } return (
View Recording
Take me to newly created Spot tab after saving a recording.
Include DevTools
Include console logs, network calls and other useful debugging information for developers.
Use Debugger
Enable the chrome debugger to track network requests with more precision.
Ingest Point
Set this URL if you are self-hosting OpenReplay so it points to your instance.
{showIngest() && (