Commit Graph

70 Commits

Author SHA1 Message Date
ca93235cde Generated by Spark: I can auto default to flask backend with docker environment variable. If its not set used IndexedDB. 2026-01-17 18:38:03 +00:00
40aeedeeba Edited Spark 2026-01-17 18:31:23 +00:00
3c3be9c8ed Generated by Spark: Ok I figured it out. Make a backend folder, put a flask backend in it with a Dockerfile. Main UI uses IndexedDB then with a UI setting, it can be moved to the flask backend. 2026-01-17 18:30:19 +00:00
88a9225524 Generated by Spark: Perhaps it could use sqlite on disk if possible, else use indexeddb 2026-01-17 18:20:30 +00:00
6fbe7b4ed0 Generated by Spark: Reduce reliance on spark database. Just use sqlite. 2026-01-17 17:59:46 +00:00
80a09ca740 Generated by Spark: Weird issue, I made a snippet from template but it didn't add it to the homepage when I submitted. Can we use sqlite? 2026-01-17 17:54:19 +00:00
cbd6334b9f Generated by Spark: Can we make Monaco find our libraries? I get red squigglies on imports. 2026-01-17 17:50:52 +00:00
cbdf366c7f Generated by Spark: I tried a example, seems app is not wired up correctly. Live preview loaded duration 5665.10ms
VM29890:28 Uncaught ReferenceError: Card is not defined
    at TodoList (eval at <anonymous> (ReactPreview.tsx:68:32), <anonymous>:28:43)
    at Object.react_stack_bottom_frame (react-dom_client.js?v=19d5d69b:18509:20)
    at renderWithHooks (react-dom_client.js?v=19d5d69b:5654:24)
    at updateFunctionComponent (react-dom_client.js?v=19d5d69b:7475:21)
    at beginWork (react-dom_client.js?v=19d5d69b:8525:20)
    at runWithFiberInDEV (react-dom_client.js?v=19d5d69b:997:72)
    at performUnitOfWork (react-dom_client.js?v=19d5d69b:12561:98)
    at workLoopSync (react-dom_client.js?v=19d5d69b:12424:43)
    at renderRootSync (react-dom_client.js?v=19d5d69b:12408:13)
    at performWorkOnRoot (react-dom_client.js?v=19d5d69b:11827:37)
    at performSyncWorkOnRoot (react-dom_client.js?v=19d5d69b:13517:9)
    at flushSyncWorkAcrossRoots_impl (react-dom_client.js?v=19d5d69b:13414:122)
    at flushSyncWork$1 (react-dom_client.js?v=19d5d69b:12076:86)
    at Object.f (react-dom_client.js?v=19d5d69b:19794:77)
    at exports.flushSync (chunk-ZLLQK76H.js?v=19d5d69b:92:106)
    at dispatchDiscreteCustomEvent (chunk-XZFLHFSN.js?v=19d5d69b:238:24)
    at handleSelect (@radix-ui_react-dropdown-menu.js?v=19d5d69b:518:9)
    at handleEvent (chunk-XZFLHFSN.js?v=19d5d69b:23:31)
    at executeDispatch (react-dom_client.js?v=19d5d69b:13622:11)
    at runWithFiberInDEV (react-dom_client.js?v=19d5d69b:997:72)
    at processDispatchQueue (react-dom_client.js?v=19d5d69b:13658:37)
    at react-dom_client.js?v=19d5d69b:14071:11
    at batchedUpdates$1 (react-dom_client.js?v=19d5d69b:2626:42)
    at dispatchEventForPluginEventSystem (react-dom_client.js?v=19d5d69b:13763:9)
    at dispatchEvent (react-dom_client.js?v=19d5d69b:16784:13)
    at dispatchDiscreteEvent (react-dom_client.js?v=19d5d69b:16765:62)
TodoList @ VM29890:28
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11827
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765
<TodoList>
exports.jsxDEV @ react_jsx-dev-runtime.js?v=19d5d69b:247
ReactPreview @ ReactPreview.tsx:203
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11827
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765
<ReactPreview>
exports.jsxDEV @ react_jsx-dev-runtime.js?v=19d5d69b:247
SplitScreenEditor @ SplitScreenEditor.tsx:164
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11766
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765
<SplitScreenEditor>
exports.jsxDEV @ react_jsx-dev-runtime.js?v=19d5d69b:247
SnippetDialog @ SnippetDialog.tsx:530
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11766
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765Understand this error
ReactPreview.tsx:203 An error occurred in the <TodoList> component.

Consider adding an error boundary to your tree to customize error handling behavior.
Visit https://react.dev/link/error-boundaries to learn more about error boundaries.

defaultOnUncaughtError @ react-dom_client.js?v=19d5d69b:6966
<TodoList>
exports.jsxDEV @ react_jsx-dev-runtime.js?v=19d5d69b:247
ReactPreview @ ReactPreview.tsx:203
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11827
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765
<ReactPreview>
exports.jsxDEV @ react_jsx-dev-runtime.js?v=19d5d69b:247
SplitScreenEditor @ SplitScreenEditor.tsx:164
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11766
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765
<SplitScreenEditor>
exports.jsxDEV @ react_jsx-dev-runtime.js?v=19d5d69b:247
SnippetDialog @ SnippetDialog.tsx:530
react_stack_bottom_frame @ react-dom_client.js?v=19d5d69b:18509
renderWithHooks @ react-dom_client.js?v=19d5d69b:5654
updateFunctionComponent @ react-dom_client.js?v=19d5d69b:7475
beginWork @ react-dom_client.js?v=19d5d69b:8525
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
performUnitOfWork @ react-dom_client.js?v=19d5d69b:12561
workLoopSync @ react-dom_client.js?v=19d5d69b:12424
renderRootSync @ react-dom_client.js?v=19d5d69b:12408
performWorkOnRoot @ react-dom_client.js?v=19d5d69b:11766
performSyncWorkOnRoot @ react-dom_client.js?v=19d5d69b:13517
flushSyncWorkAcrossRoots_impl @ react-dom_client.js?v=19d5d69b:13414
flushSyncWork$1 @ react-dom_client.js?v=19d5d69b:12076
f @ react-dom_client.js?v=19d5d69b:19794
exports.flushSync @ chunk-ZLLQK76H.js?v=19d5d69b:92
dispatchDiscreteCustomEvent @ chunk-XZFLHFSN.js?v=19d5d69b:238
handleSelect @ @radix-ui_react-dropdown-menu.js?v=19d5d69b:518
handleEvent @ chunk-XZFLHFSN.js?v=19d5d69b:23
executeDispatch @ react-dom_client.js?v=19d5d69b:13622
runWithFiberInDEV @ react-dom_client.js?v=19d5d69b:997
processDispatchQueue @ react-dom_client.js?v=19d5d69b:13658
(anonymous) @ react-dom_client.js?v=19d5d69b:14071
batchedUpdates$1 @ react-dom_client.js?v=19d5d69b:2626
dispatchEventForPluginEventSystem @ react-dom_client.js?v=19d5d69b:13763
dispatchEvent @ react-dom_client.js?v=19d5d69b:16784
dispatchDiscreteEvent @ react-dom_client.js?v=19d5d69b:16765Understand this warning
heartbeat.ts:124 Uncaught (in promise) TypeError: Failed to construct 'URL': Invalid URL
    at heartbeat.ts:124:17
2026-01-17 17:45:23 +00:00
54dd68e224 Generated by Spark: new snippet has dropdown --> new from template. Make some really good templates. Could store templates as json. 2026-01-17 17:33:03 +00:00
b920414fe2 Generated by Spark: React useState Hook
TSX
Basic state management in React functional components

Last updated: 17/01/2026, 17:24:26

Hide Preview
Copy
Edit

123456789101112
Unexpected token '<'

Ask AI for Helpimport { useState } from 'react'

function Counter() {
  const [count, setCount] = useState(0)

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  )
}Preview Configuration
Add Parameter
Counter
The name of the function or component to render. Leave empty to use the default export.
2026-01-17 17:28:09 +00:00
ff27954618 Generated by Spark: Edit Snippet
Update your code snippet details below.
import { useState } from 'react'

function Counter() {
  const [count, setCount] = useState(0)

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  )
}
React useState Hook

TSX

Preview Configuration
Add Parameter
Counter
The name of the function or component to render. Leave empty to use the default export.

Basic state management in React functional components

Code

Split

Preview
123456789101112
Unexpected token '<'

Ask AI for Help
2026-01-17 17:25:57 +00:00
5b395dcfc0 Generated by Spark: Create new snippet and Edit snippet should allow you to configure the input parameters, incl what function gets run (function name) and function arguments. 2026-01-17 17:23:16 +00:00
8c72d6b713 Generated by Spark: Ah i see the problem - all examples need to take in props. So we need to update them all to take in sensible configurable defaults. 2026-01-17 17:15:31 +00:00
3417c912ff Generated by Spark: Make a split screen code example 2026-01-17 17:07:15 +00:00
3ddfea6a81 Generated by Spark: Add split screen code example with live preview 2026-01-17 16:55:51 +00:00
a4ab731735 Generated by Spark: Fix all reported errors. 2026-01-17 16:52:06 +00:00
3e45739b34 Edited Spark 2026-01-17 16:51:22 +00:00
3c5a5c77e5 Generated by Spark: Fix all reported errors. 2026-01-17 16:51:12 +00:00
d200978498 Edited Spark 2026-01-17 16:50:38 +00:00
afc286eeca Generated by Spark: Hamburger menu is a bit dodgy, should push content to the right when opened. 2026-01-17 16:48:49 +00:00
758d31717b Generated by Spark: Fix all reported errors. 2026-01-17 16:46:22 +00:00
0fe147b302 Edited Spark 2026-01-17 16:45:51 +00:00
f41792776b Generated by Spark: Add routes and hamburger menu on left, lists of pages and break it up 2026-01-17 16:44:20 +00:00
9a6c55d4d9 Edited Spark 2026-01-17 16:40:51 +00:00
07d0d603ff Generated by Spark: I want the app to be a snippet pastebin - the component library showcase should just be a seconary thing on a hamburger menu 2026-01-17 16:40:09 +00:00
c732cee311 Edited Spark 2026-01-17 16:37:09 +00:00
f692b1c3b4 Generated by Spark: I want the app to be a snippet pastebin - the component library showcase should just be a seconary thing on a hamburger menu 2026-01-17 16:36:05 +00:00
812aa471b6 Edited Spark 2026-01-17 16:33:10 +00:00
ec81ce8e17 Generated by Spark: Wire atomic components into snippet tool. 2026-01-17 16:22:11 +00:00
59801b9c95 Edited Spark 2026-01-17 16:16:28 +00:00
40d4c446ad Generated by Spark: Make atomic component library until done. If done, just wire them into other components. 2026-01-17 16:15:57 +00:00
9d235bbb16 Edited Spark 2026-01-17 16:14:08 +00:00
a759e1abbb Generated by Spark: The app is gone, put back snippet tool. Make atomic component library until done. If done, just wire them into other components. 2026-01-17 16:10:33 +00:00
d24a2d4143 Edited Spark 2026-01-17 16:07:12 +00:00
15d8e221de Generated by Spark: Make atomic component library until done. 2026-01-17 16:03:41 +00:00
9d8eef0d3c Edited Spark 2026-01-17 15:58:11 +00:00
ee431e4354 Generated by Spark: Extract strings and things out into json to avoid hardcoding into tsx files. 2026-01-17 15:57:11 +00:00
b0ec8c31b1 Edited Spark 2026-01-17 15:51:21 +00:00
b70b91dece Generated by Spark: Fix all reported errors. 2026-01-17 15:50:43 +00:00
57cc3b4251 Edited Spark 2026-01-17 15:50:10 +00:00
eeb0e67e58 Generated by Spark: Better feedback when it doesnt render right, stacktrace? 2026-01-17 15:38:26 +00:00
e9beb0548a Generated by Spark: Fix all reported errors. 2026-01-17 15:29:39 +00:00
0488b46184 Edited Spark 2026-01-17 15:28:58 +00:00
165fc4ad10 Generated by Spark: Fix all reported errors. 2026-01-17 15:22:58 +00:00
986a8b7713 Edited Spark 2026-01-17 15:22:12 +00:00
88d083b4cb Generated by Spark: Fix all reported errors. 2026-01-17 15:19:44 +00:00
28bfefeff4 Edited Spark 2026-01-17 15:18:57 +00:00
e6ff35822a Generated by Spark: Fix all reported errors. 2026-01-17 15:17:15 +00:00
c466e2b160 Edited Spark 2026-01-17 15:16:20 +00:00
679f520873 Generated by Spark: A snippet card can render stuff - see if we can make it more robust 2026-01-17 15:15:54 +00:00