Skip to content

Commit 92946de

Browse files
committed
feat(dev): mouse-promo recorder and accessibillity
1 parent 6f44ebb commit 92946de

File tree

14 files changed

+834
-171
lines changed

14 files changed

+834
-171
lines changed

.env.example

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
# Gemini API Key (Required for release:gen)
2-
GEMINI_API_KEY=your-api-key
2+
GEMINI_API_KEY=your-api-key
3+
4+
# Recording/demo controls (disabled by default)
5+
VITE_RECORDING_MODE=false
6+
VITE_DEMO_AUTOPILOT=false

apps/desktop/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"private": true,
55
"type": "module",
66
"scripts": {
7-
"dev": "bun vite --port 1420 --strictPort",
8-
"build": "vite build",
7+
"dev": "echo 'RECORD TOOL!!!' && bun vite --port 1420 --strictPort",
8+
"build": "echo 'RECORD TOOL!!!' && vite build",
99
"build:dev": "vite build --mode development",
1010
"lint": "bun run --cwd ../.. lint",
1111
"preview": "vite preview",
1212
"tauri": "tauri",
13-
"tauri:dev": "node -e \"require('child_process').execSync(process.platform==='win32'?'bun run tauri:win':'bun x tauri dev',{stdio:'inherit'})\"",
13+
"tauri:dev": "echo 'RECORD TOOL!!!' && node -e \"require('child_process').execSync(process.platform==='win32'?'bun run tauri:win':'bun x tauri dev',{stdio:'inherit'})\"",
1414
"tauri:win": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts\\tauri-dev-win.ps1",
1515
"test": "vitest run -c ../../vitest.config.ts",
1616
"test:watch": "vitest -c ../../vitest.config.ts",

apps/desktop/src/App.tsx

Lines changed: 57 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,67 @@
1-
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
2-
import { SpeedInsights } from '@vercel/speed-insights/react'
3-
import { BrowserRouter, Routes, Route } from 'react-router-dom'
4-
import { DemoBanner } from '@/components/demo-banner'
5-
import { Toaster as Sonner } from '@/components/ui/sonner'
6-
import { Toaster } from '@/components/ui/toaster'
7-
import { DataProvider } from '@/core/data-provider'
8-
import { PendingEditsProvider } from '@/core/pending-edits'
9-
import { RecordingProvider, RecordingOverlay } from '@/core/recording'
10-
import { SettingsProvider, useSettings } from '@/core/settings'
11-
import { QueryHistoryProvider } from '@/features/sql-console/stores/query-history-store'
12-
import { ThemeSync } from '@/features/sidebar/components/theme-sync'
13-
import Index from './pages/Index'
14-
import NotFound from './pages/NotFound'
1+
import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
2+
import { BrowserRouter, Routes, Route } from "react-router-dom"
3+
import { DemoBanner } from "@/components/demo-banner"
4+
import { Toaster as Sonner } from "@/components/ui/sonner"
5+
import { Toaster } from "@/components/ui/toaster"
6+
import { DataProvider } from "@/core/data-provider"
7+
import { PendingEditsProvider } from "@/core/pending-edits"
8+
import { RecordingProvider, RecordingOverlay } from "@/core/recording"
9+
import { SettingsProvider, useSettings } from "@/core/settings"
10+
import { QueryHistoryProvider } from "@/features/sql-console/stores/query-history-store"
11+
import { ThemeSync } from "@/features/sidebar/components/theme-sync"
12+
import Index from "./pages/Index"
13+
import NotFound from "./pages/NotFound"
14+
import { Analytics } from "@vercel/analytics/react"
1515

1616
const queryClient = new QueryClient()
1717

1818
function GlobalToaster() {
19-
const { settings } = useSettings()
20-
if (settings.showToasts === false) return null
21-
return (
22-
<>
23-
<Toaster />
24-
<Sonner />
25-
</>
26-
)
19+
const { settings } = useSettings()
20+
if (settings.showToasts === false) return null
21+
return (
22+
<>
23+
<Toaster />
24+
<Sonner />
25+
</>
26+
)
2727
}
2828

2929
function App() {
30-
return (
31-
<RecordingProvider>
32-
<QueryClientProvider client={queryClient}>
33-
<SettingsProvider>
34-
<PendingEditsProvider>
35-
<DataProvider>
36-
<QueryHistoryProvider>
37-
<SpeedInsights />
38-
<RecordingOverlay />
39-
<div className='flex flex-col h-screen'>
40-
<DemoBanner />
41-
<div className='flex-1 overflow-hidden'>
42-
<GlobalToaster />
43-
<BrowserRouter>
44-
<ThemeSync />
45-
<Routes>
46-
<Route path='/' element={<Index />} />
47-
<Route path='*' element={<NotFound />} />
48-
</Routes>
49-
</BrowserRouter>
50-
</div>
51-
</div>
52-
</QueryHistoryProvider>
53-
</DataProvider>
54-
</PendingEditsProvider>
55-
</SettingsProvider>
56-
</QueryClientProvider>
57-
</RecordingProvider>
58-
)
30+
return (
31+
<RecordingProvider>
32+
<Analytics />
33+
<QueryClientProvider client={queryClient}>
34+
<SettingsProvider>
35+
<PendingEditsProvider>
36+
<DataProvider>
37+
<QueryHistoryProvider>
38+
<RecordingOverlay />
39+
<div className="flex flex-col h-screen">
40+
<DemoBanner />
41+
<div className="flex-1 overflow-hidden">
42+
<GlobalToaster />
43+
<BrowserRouter>
44+
<ThemeSync />
45+
<Routes>
46+
<Route
47+
path="/"
48+
element={<Index />}
49+
/>
50+
<Route
51+
path="*"
52+
element={<NotFound />}
53+
/>
54+
</Routes>
55+
</BrowserRouter>
56+
</div>
57+
</div>
58+
</QueryHistoryProvider>
59+
</DataProvider>
60+
</PendingEditsProvider>
61+
</SettingsProvider>
62+
</QueryClientProvider>
63+
</RecordingProvider>
64+
)
5965
}
6066

6167
export default App

0 commit comments

Comments
 (0)