Skip to content

Commit 419677e

Browse files
Merge pull request #14 from bartosz-skejcik/master
v0.4.3
2 parents 6bbbd8f + 0dfba39 commit 419677e

8 files changed

Lines changed: 86 additions & 86 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,7 @@ jobs:
109109
with:
110110
tagName: content-planner-v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version.
111111
releaseName: "Content Planner v__VERSION__"
112-
releaseBody: "See the assets to download this version and install."
112+
releaseBody: ${{ needs.changelog.outputs.release_body }}
113113
releaseDraft: true
114114
prerelease: false
115115
args: ${{ matrix.args }}
116-
body: ${{ needs.changelog.outputs.release_body }}

latest.json

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
2-
"version": "0.4.1",
2+
"version": "0.4.2",
33
"notes": "See the assets to download this version and install.",
4-
"pub_date": "2024-11-21T00:51:45.846Z",
4+
"pub_date": "2024-11-21T01:27:04.574Z",
55
"platforms": {
66
"darwin-aarch64": {
7-
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUNYMXkzSmRTb293eXpJaTZVdnoyTTRWbWtpK0t4WnRvWWV4R3ZrczQ1czVzYzk2amNvSm1vNk5DRENzRWRNRTFTdENRVGJrK0l4c3hYSldLN2JGUkFjPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTQ5NzQ4CWZpbGU6Y29udGVudC1wbGFubmVyLmFwcC50YXIuZ3oKc2lHZzdveGN1bW1xazRrT0wrdmVLSFhnMDZSTVNoQk9sbUJyRTB3dmRZVFp6T3BIQWhJZkk2c0c4dEh1OElVbUtZaEJPZVRFaVZGU1c4TldmMzZoQ3c9PQo=",
8-
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-manager-v0.4.1/content-planner_aarch64.app.tar.gz"
7+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZVAvdHpZZ1ZPTFNrZGhidWhpclVmTVVYNXJ6VWFwaVpZcHQxLytud1VZdXpVWlA5ZTk1NnhYYWlKZlZrUVJMdjhLWTAwWjNROVRLbTZseUJ1WWNrMUF3PQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTUyMDE3CWZpbGU6Y29udGVudC1wbGFubmVyLmFwcC50YXIuZ3oKdTJERkJOazBSLzJDMjBRVzRSNGo1eFhCM0ZOVjdwUU1OYitFY2Y2QU1kUHpZWERvbytxZlBISTVseENRUFdyMU14a05RaHVXVUJMcnRQTDM1UXNuQkE9PQo=",
8+
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-planner-v0.4.2/content-planner_aarch64.app.tar.gz"
99
},
1010
"darwin-x86_64": {
11-
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUpBQWxvVUhCenFNTE1wT1U0YUF2b2VmbXViUFZBOXZBL1BER2NkaUx3MmNSRTJsMmxnbHczcGpqeVhFdjcweXMvOVhEWEQ2WERnL2lTZUdMMnNmTndBPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTQ5NzY1CWZpbGU6Y29udGVudC1wbGFubmVyLmFwcC50YXIuZ3oKRUhzR09uSTZiY1pueWQ2ZitzNll5T1NYUmRKN20reWdGeTFQN2tyTEtqOW9NVUdId2VJTVp3L2NabjlFZUI5MUZkb3NlRk9nZXkrVElpY3lSZWxCQ1E9PQo=",
12-
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-manager-v0.4.1/content-planner_x64.app.tar.gz"
11+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUE1ckpFWFZOQ3NSTTAwVWYwaWVlcXJ2YnpRREVYNmNtWDdNaUptclM0eHV6WFhzK2hhRUVJNXJiQkRHSGtVQ2VPMm1Cd0xtWDZwOThqUkxpdHVzQ3drPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTUyMTU0CWZpbGU6Y29udGVudC1wbGFubmVyLmFwcC50YXIuZ3oKQTdXZ1dVUXhWcTBNVGQ2RXkxTUNFOEU2ZEtCaG1zMTdYRGdqWVVQamlqMzd4VkJXNDVoNmc4V0V3amdRblVwaExHYmtMdEwzRmJLRUw0Qm40Q2E4Q2c9PQo=",
12+
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-planner-v0.4.2/content-planner_x64.app.tar.gz"
1313
},
1414
"linux-x86_64": {
15-
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUdhU0VzS1A0ZHpoMWwraCtnZ1hudzRicXBLUHY5UCs3dERHbSt2OGRKZmxiUGJwam5rTGJuMHFCQ0lXQVJXUVlKeitBM2dkWk9qWWpVb3IvZnlYeEFNPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTQ5OTkzCWZpbGU6Y29udGVudC1wbGFubmVyXzAuNC4xX2FtZDY0LkFwcEltYWdlClpyNGJDL3RiUkI4NXprNFhydEF5eDlocHk4ek4rVVFLMWFocTVicnVGZWJSRGRpMXVsSHVQaG84WVpRaGFhSWpudUMyVE5WaUhnd1JnODd2RTNBMEJBPT0K",
16-
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-manager-v0.4.1/content-planner_0.4.1_amd64.AppImage"
15+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUZReHFmRjN6RE5pL29JRGcva01aNVY0N3pyRVNnZ25kamN4dnVhN0JBQ3c3V1MvS0VrQWI0MkJ0QnpiYytQc2xsWUlSbUYwaG4zeFBaOUUrQ3N3M1FrPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTUyMTg4CWZpbGU6Y29udGVudC1wbGFubmVyXzAuNC4yX2FtZDY0LkFwcEltYWdlCnRTNGVneGtpbHRoMnFDbkcyN2pLRlo0VGt6cldtSk84YjNJK3czL1BSWm90cEJsY0kyL0UyeTBUVEw0NXNMQmdTNVZTUW4vZm5mQlZCWStOZWduSERBPT0K",
16+
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-planner-v0.4.2/content-planner_0.4.2_amd64.AppImage"
1717
},
1818
"windows-x86_64": {
19-
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUdkMzB1V1d2VloydkRpMTJZMzF6TXRDMjVkMktVRkt4SU8vOXZKQWFkam9pSWRWYkplNDBwekJQZlRQMGliT1ZXak5rTEM4R1RSb1dicGtGZW5qVVFvPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTUwMzAzCWZpbGU6Y29udGVudC1wbGFubmVyXzAuNC4xX3g2NF9lbi1VUy5tc2kKcW53dENkQm50OTNmYXk0Ti9lbTRxUm1WRkFvS09NWUppazhVYmdsMnlnMk9jOWQzcHRIZnB5RFlEQ0lRb1hoYW5Lck5JWVEybHhEYmdhNTdWYTB0QXc9PQo=",
20-
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-manager-v0.4.1/content-planner_0.4.1_x64_en-US.msi"
19+
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVScUdHdkh6NERCZUdYUWh2a1lpK210S2hJVWNGVThoR1lmQmJwcklmL1BOVTlYSWZ2Mmk1bWdHNG1OeWNFWXExWDkxS0hvcGhpNW9wdHFpbTYzRmhhQXhjeWNqVDN1MXdJPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzMyMTUyNDIxCWZpbGU6Y29udGVudC1wbGFubmVyXzAuNC4yX3g2NF9lbi1VUy5tc2kKT1NqdlE3b0NGRGloVi9DcGN1TkJRTnZxRjFqdVZiR05QU3p3RTZDUnZhcDRIQ0YzalN3YVVLaUxMRnNkb29yRUM3Z0lFMHFkMHltRlFiSkpMWjhwQXc9PQo=",
20+
"url": "https://github.com/bartosz-skejcik/content-planner/releases/download/content-planner-v0.4.2/content-planner_0.4.2_x64_en-US.msi"
2121
}
2222
}
2323
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "content-planner",
33
"private": true,
4-
"version": "0.4.2",
4+
"version": "0.4.3",
55
"type": "module",
66
"scripts": {
77
"dev:tauri": "tauri dev",

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 = "content-planner"
3-
version = "0.4.2"
3+
version = "0.4.3"
44
description = "A tool designer to make content planning and management easier."
55
authors = ["Bartłomiej Paczesny"]
66
edition = "2021"

src-tauri/tauri.conf.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "content-planner",
4-
"version": "0.4.2",
4+
"version": "0.4.3",
55
"identifier": "pl.paczesny.dev.content-planner",
66
"build": {
77
"beforeDevCommand": "bun run dev",
@@ -30,12 +30,13 @@
3030
"preload": ["sqlite:content-planner.db"]
3131
},
3232
"updater": {
33+
"dialog": false,
3334
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDc4QzE4MENGQzc2QjE4NkEKUldScUdHdkh6NERCZUQxcUNVUnlOLzJZMHJRUG9CWEpGenpnU3QxTFVteHo4aGw5V0crWUI2ajkK",
3435
"windows": {
35-
"installMode": "basicUi"
36+
"installMode": "passive"
3637
},
3738
"endpoints": [
38-
"https://raw.githubusercontent.com/bartosz-skejcik/content-planner/refs/heads/master/latest.json"
39+
"https://github.com/bartosz-skejcik/content-planner/releases/latest/download/latest.json"
3940
]
4041
}
4142
},

src/App.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { useSettingsStore } from "./stores/settingsStore";
2424
import SettingsView from "./views/settings";
2525
import { useUpdater } from "./hooks/use-updater";
2626
import ProgressBar from "./components/progress-bar";
27+
import { useToast } from "./hooks/use-toast";
2728

2829
export type ActiveTab =
2930
| "videos"
@@ -47,7 +48,15 @@ function App() {
4748

4849
const [selectedIdea, setSelectedIdea] = useState<Idea | null>(null);
4950

50-
const { progress, showProgressDialog, checkForUpdates } = useUpdater(); // Use the updater hook
51+
const { toast } = useToast(); // Use the toast hook
52+
53+
const { progress, showProgressDialog, checkForUpdates } = useUpdater(toast); // Use the updater hook
54+
55+
// @ts-ignore
56+
const RUNNING_IN_TAURI = window.__TAURI__ !== undefined;
57+
if (RUNNING_IN_TAURI) {
58+
checkForUpdates();
59+
}
5160

5261
useEffect(() => {
5362
// Load the videos from the store
@@ -56,8 +65,6 @@ function App() {
5665

5766
settingsStore.initializeSettings();
5867
settingsStore.loadSetings();
59-
60-
checkForUpdates(); // Check for updates on app load
6168
}, []);
6269

6370
const ActiveTabComponent = () => {

src/components/app-sidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export function AppSidebar({ onNavigate, currentTab, ...props }: Props) {
5353
</div>
5454
<div className="flex flex-col gap-0.5 leading-none">
5555
<span className="font-semibold">YT Video Planner</span>
56-
<span className="opacity-60">v0.4.2</span>
56+
<span className="opacity-60">v0.4.3</span>
5757
</div>
5858
</a>
5959
</SidebarMenuButton>

src/hooks/use-updater.tsx

Lines changed: 58 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,72 @@
1-
import { useCallback, useState } from "react";
1+
import { useState } from "react";
22
import { check } from "@tauri-apps/plugin-updater";
3-
import { ask, message } from "@tauri-apps/plugin-dialog";
43
import { invoke } from "@tauri-apps/api/core"; // Import Tauri invoke
4+
import { ToastAction } from "@/components/ui/toast";
55

66
// Custom hook for handling updates
7-
export const useUpdater = () => {
7+
export const useUpdater = (toast: any) => {
88
const [progress, setProgress] = useState(0);
99
const [showProgressDialog, setShowProgressDialog] = useState(false);
1010

11-
const checkForUpdates = useCallback(async (onUserClick = false) => {
12-
try {
13-
// Check for updates
14-
const update = await check();
15-
if (update === null) {
16-
await message("Failed to check for updates.\nPlease try again later.", {
17-
title: "Error",
18-
kind: "error",
19-
okLabel: "OK",
20-
});
21-
return;
22-
} else if (update?.available) {
23-
const userConfirmed = await ask(
24-
`Update to ${update.version} is available!\n\nRelease notes: ${update.body}`,
25-
{
26-
title: "Update Available",
27-
kind: "info",
28-
okLabel: "Update",
29-
cancelLabel: "Cancel",
30-
},
31-
);
32-
if (userConfirmed) {
33-
setShowProgressDialog(true);
11+
const checkForUpdates = async () => {
12+
// Check for updates
13+
const update = await check();
14+
if (update === null) {
15+
toast({
16+
title: "Failed to check for updates",
17+
description: "Please try again later.",
18+
variant: "destructive",
19+
});
20+
return;
21+
} else if (update?.available) {
22+
toast({
23+
title: "Update Available",
24+
description: `Version ${update.version} is available!`,
25+
action: (
26+
<ToastAction
27+
onClick={async () => {
28+
try {
29+
setShowProgressDialog(true);
3430

35-
let downloaded = 0;
36-
let contentLength = 0;
31+
let downloaded = 0;
32+
let contentLength = 0;
3733

38-
await update.downloadAndInstall((event) => {
39-
switch (event.event) {
40-
case "Started":
41-
contentLength = event.data.contentLength || 0;
42-
break;
43-
case "Progress":
44-
downloaded += event.data.chunkLength;
45-
const percentage = (downloaded / contentLength) * 100;
46-
setProgress(percentage);
47-
break;
48-
case "Finished":
49-
setProgress(100);
50-
break;
51-
}
52-
});
34+
await update.downloadAndInstall((event) => {
35+
switch (event.event) {
36+
case "Started":
37+
contentLength = event.data.contentLength || 0;
38+
break;
39+
case "Progress":
40+
downloaded += event.data.chunkLength;
41+
const percentage = (downloaded / contentLength) * 100;
42+
setProgress(percentage);
43+
break;
44+
case "Finished":
45+
setProgress(100);
46+
break;
47+
}
48+
});
5349

54-
setShowProgressDialog(false);
55-
// After the update is downloaded and installed, gracefully restart the app
56-
await invoke("graceful_restart");
57-
}
58-
} else if (onUserClick) {
59-
await message("You are on the latest version. Stay awesome!", {
60-
title: "No Update Available",
61-
kind: "info",
62-
okLabel: "OK",
63-
});
64-
}
65-
} catch (error) {
66-
console.error("Error during update check:", error);
67-
await message(
68-
"An error occurred while checking for updates. Please try again later.",
69-
{
70-
title: "Error",
71-
kind: "error",
72-
okLabel: "OK",
73-
},
74-
);
50+
setShowProgressDialog(false);
51+
// After the update is downloaded and installed, gracefully restart the app
52+
await invoke("graceful_restart");
53+
} catch (error) {
54+
console.error("Error during update check:", error);
55+
toast({
56+
title: "An error occurred while checking for updates",
57+
description: "Please try again later.",
58+
variant: "destructive",
59+
});
60+
}
61+
}}
62+
altText="Update"
63+
>
64+
Update
65+
</ToastAction>
66+
),
67+
});
7568
}
76-
}, []);
69+
};
7770

7871
return { checkForUpdates, progress, showProgressDialog };
7972
};

0 commit comments

Comments
 (0)