Skip to content

Commit b7b6520

Browse files
committed
fix: move updater check to App.tsx so it runs on launch, not only in editor
1 parent 9717db3 commit b7b6520

4 files changed

Lines changed: 22 additions & 23 deletions

File tree

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lines"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
description = "Desktop tracing tool for SVG line overlays"
55
authors = ["josh"]
66
license = ""

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
33
"productName": "lines",
4-
"version": "0.2.0",
4+
"version": "0.2.1",
55
"identifier": "com.whaleen.lines",
66
"build": {
77
"frontendDist": "../dist",

src/App.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ import { ColorModePicker } from "./components/ColorModePicker";
33
import { EditorScreen } from "./screens/EditorScreen";
44
import { LaunchScreen } from "./screens/LaunchScreen";
55
import { ProjectScreen } from "./screens/ProjectScreen";
6+
import { useUpdater } from "./hooks/useUpdater";
67
import { applyTheme } from "./lib/theme";
78
import { useProjectStore } from "./store/project-store";
89

910
function App() {
1011
const screen = useProjectStore((state) => state.screen);
1112
const colorMode = useProjectStore((state) => state.colorMode);
13+
const { state: updateState, install, relaunchApp } = useUpdater();
1214

1315
const activeProject =
1416
screen.id === "project" || screen.id === "editor" ? screen.project : null;
@@ -19,6 +21,24 @@ function App() {
1921

2022
return (
2123
<>
24+
{updateState.status === "available" && (
25+
<div className="update-banner">
26+
<span>lines {updateState.version} is available</span>
27+
<button className="update-banner-btn" onClick={install} type="button">Install update</button>
28+
</div>
29+
)}
30+
{updateState.status === "downloading" && (
31+
<div className="update-banner">
32+
<span>Downloading… {updateState.progress}%</span>
33+
<div className="update-progress-bar"><div className="update-progress-fill" style={{ width: `${updateState.progress}%` }} /></div>
34+
</div>
35+
)}
36+
{updateState.status === "ready" && (
37+
<div className="update-banner update-banner--ready">
38+
<span>Update ready</span>
39+
<button className="update-banner-btn" onClick={relaunchApp} type="button">Relaunch</button>
40+
</div>
41+
)}
2242
{screen.id === "project" && (
2343
<ProjectScreen project={screen.project} components={screen.components} />
2444
)}

src/screens/EditorScreen.tsx

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import { Inspector } from "../components/Inspector";
55
import { LayersPanel } from "../components/LayersPanel";
66
import { Toolbar } from "../components/Toolbar";
77
import { TraceCanvas } from "../components/TraceCanvas";
8-
import { useUpdater } from "../hooks/useUpdater";
98
import { generateComponentSource } from "../lib/component-generator";
109
import { useEditorStore } from "../store/editor-store";
1110
import { useProjectStore } from "../store/project-store";
@@ -19,7 +18,6 @@ export function EditorScreen({ project, component }: EditorScreenProps) {
1918
const [editorTab, setEditorTab] = useState<"canvas" | "code">("canvas");
2019
const [rightTab, setRightTab] = useState<"properties" | "layers">("properties");
2120
const [showResizeDialog, setShowResizeDialog] = useState(false);
22-
const { state: updateState, install, relaunchApp } = useUpdater();
2321
const { goToProject } = useProjectStore();
2422

2523
const {
@@ -229,25 +227,6 @@ export function EditorScreen({ project, component }: EditorScreenProps) {
229227
)}
230228
</header>
231229

232-
{updateState.status === "available" && (
233-
<div className="update-banner">
234-
<span>lines {updateState.version} is available</span>
235-
<button className="update-banner-btn" onClick={install} type="button">Install update</button>
236-
</div>
237-
)}
238-
{updateState.status === "downloading" && (
239-
<div className="update-banner">
240-
<span>Downloading… {updateState.progress}%</span>
241-
<div className="update-progress-bar"><div className="update-progress-fill" style={{ width: `${updateState.progress}%` }} /></div>
242-
</div>
243-
)}
244-
{updateState.status === "ready" && (
245-
<div className="update-banner update-banner--ready">
246-
<span>Update ready</span>
247-
<button className="update-banner-btn" onClick={relaunchApp} type="button">Relaunch</button>
248-
</div>
249-
)}
250-
251230
<Toolbar activeTool={activeTool} onSelectTool={setActiveTool} />
252231

253232
<main className="canvas-area">

0 commit comments

Comments
 (0)