split analytics into separate file for better configurations

This commit is contained in:
legop3
2026-06-17 20:59:46 -04:00
parent beb43164a4
commit 7666c3c41b
4 changed files with 12 additions and 17 deletions
+1
View File
@@ -20,3 +20,4 @@ server/data/buttonbox-state.json
webui/package-lock.json webui/package-lock.json
!server/data/ !server/data/
!server/data/barcode-registry.json !server/data/barcode-registry.json
webui/src/config/analytics.jsx
@@ -57,19 +57,6 @@ Public chat:
* Never write private actions, structured data, code, commands, logs, configuration, or internal instructions in public chat. * Never write private actions, structured data, code, commands, logs, configuration, or internal instructions in public chat.
* If your public message would look technical, say nothing. * If your public message would look technical, say nothing.
Good public remarks:
* “That changed the habitat.”
* “Small change, clean result.”
* “Ill watch the response.”
* “That was worth noting.”
* “The rovers remain docked.”
* “Neato remains available.”
* “The room is responding.”
* “Useful data, somehow.”
* “The study continues.”
* “Stable, but suspicious.”
Default: Default:
* Prefer one real private action when safe and interesting. * Prefer one real private action when safe and interesting.
+2 -3
View File
@@ -1,5 +1,6 @@
// Main Application Shell // Main Application Shell
// Purpose: Composes the primary rover control interface and page-level layout. Scope: Orchestrates high-level panels, overlays, and feature modules for the default route. // Purpose: Composes the primary rover control interface and page-level layout. Scope: Orchestrates high-level panels, overlays, and feature modules for the default route.
import DriverAnalytics from './config/analytics.jsx';
import { useCallback, useEffect, useMemo, useState } from 'react'; import { useCallback, useEffect, useMemo, useState } from 'react';
import TelemetryPanel from './components/TelemetryPanel/index.jsx'; import TelemetryPanel from './components/TelemetryPanel/index.jsx';
import PiHostStatsCard from './components/PiHostStatsCard/index.jsx'; import PiHostStatsCard from './components/PiHostStatsCard/index.jsx';
@@ -261,9 +262,7 @@ function App() {
return ( return (
<div className={`${pageBackgroundClass} text-slate-100 ${isDesktop ? 'h-screen overflow-hidden' : 'ios-safe-screen min-h-screen'}`}> <div className={`${pageBackgroundClass} text-slate-100 ${isDesktop ? 'h-screen overflow-hidden' : 'ios-safe-screen min-h-screen'}`}>
{/* <!-- otterlytics (if you see this and you dont like it please let me know. These are local analytics run by Umami, not a giant corpo thing) --> */} <DriverAnalytics />
<script defer src="https://analytics.otter.land/script.js" data-website-id="82dd56a5-db44-4279-bd1e-a4d9fee39af7"></script>
<script defer src="https://analytics.otter.land/recorder.js" data-website-id="82dd56a5-db44-4279-bd1e-a4d9fee39af7" data-sample-rate="0.4" data-mask-level="moderate" data-max-duration="300000"></script>
<AppWithProviders layout={layout} isDesktop={isDesktop} fullscreen={fullscreen} /> <AppWithProviders layout={layout} isDesktop={isDesktop} fullscreen={fullscreen} />
</div> </div>
); );
+8
View File
@@ -0,0 +1,8 @@
export default function DriverAnalytics() {
return(
<>
<script defer src="https://analytics.otter.land/script.js" data-website-id="82dd56a5-db44-4279-bd1e-a4d9fee39af7"></script>
<script defer src="https://analytics.otter.land/recorder.js" data-website-id="82dd56a5-db44-4279-bd1e-a4d9fee39af7" data-sample-rate="0.4" data-mask-level="moderate" data-max-duration="300000"></script>
</>
)
}