Skip to content

Commit 8124174

Browse files
committed
Merge branch 'dev'
2 parents eb946a4 + b75ba93 commit 8124174

File tree

15 files changed

+83
-22
lines changed

15 files changed

+83
-22
lines changed

.github/assets/editors.png

30.3 KB
Loading

.github/assets/file-view.png

28.1 KB
Loading

.github/assets/git-packages.png

46.7 KB
Loading

.github/assets/new-template.png

22.5 KB
Loading

.github/assets/packages.png

34.2 KB
Loading

.github/assets/preview.png

-35.2 KB
Binary file not shown.

.github/assets/projects.png

45.2 KB
Loading

.github/assets/templates.png

37.6 KB
Loading

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,33 @@ pnpm tauri build
3535
```
3636

3737
Then find the exe in `\src-tauri\target\release\`
38+
39+
## Screenshots
40+
41+
#### Projects
42+
43+
![Projects](.github/assets/projects.png)
44+
45+
#### Editors
46+
47+
![Editors](.github/assets/editors.png)
48+
49+
#### Templates
50+
51+
![Templates](.github/assets/templates.png)
52+
53+
#### Packages
54+
55+
![Packages](.github/assets/packages.png)
56+
57+
#### Git Packages
58+
59+
![Git Packages](.github/assets/git-packages.png)
60+
61+
#### File View
62+
63+
![Files](.github/assets/file-view.png)
64+
65+
#### Template Creation
66+
67+
![Template Creation](.github/assets/new-template.png)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "nomnom-unity-hub",
33
"private": true,
4-
"version": "1.0.3",
4+
"version": "1.0.4",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

src-tauri/src/project.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,14 @@ pub struct SearchOptions {
4242
}
4343

4444
// load a project at a given path
45-
pub fn load(path: impl AsRef<Path>) -> anyhow::Result<Project> {
45+
pub fn load(path: impl AsRef<Path>) -> Result<Project, errors::AnyError> {
4646
let path = path.as_ref();
47+
let assets_path = path.join("Assets");
48+
49+
if !assets_path.exists() {
50+
return Err(errors::io_not_found("Invalid project path"));
51+
}
52+
4753
let file_name = path
4854
.file_name()
4955
.ok_or(errors::io_not_found("Invalid project path"))?;
@@ -90,7 +96,7 @@ pub fn remove_missing_projects(app_state: &tauri::State<AppState>) -> anyhow::Re
9096
.map_err(|_| errors::str_error("Failed to lock projects"))?;
9197
let missing_projects = projects
9298
.iter()
93-
.filter(|x| !x.path.clone().exists())
99+
.filter(|x| !x.path.clone().exists() || !x.path.clone().join("Assets").exists())
94100
.map(|x| x.clone())
95101
.collect::<Vec<_>>();
96102

@@ -167,7 +173,7 @@ pub fn cmd_get_default_project_path(app_state: tauri::State<AppState>) -> Result
167173
}
168174

169175
#[tauri::command]
170-
pub fn cmd_remove_missing_projects(app_handle: tauri::AppHandle, app_state: tauri::State<AppState>) -> Result<Vec<Project>, errors::AnyError> {
176+
pub async fn cmd_remove_missing_projects(app_handle: tauri::AppHandle, app_state: tauri::State<'_, AppState>) -> Result<Vec<Project>, errors::AnyError> {
171177
let removed_projects = remove_missing_projects(&app_state)?;
172178
let projects = app::get_projects(&app_state)?;
173179
app::save_projects_to_disk(&projects, &app_handle)?;

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
},
88
"package": {
99
"productName": "Nomnoms Unity Hub",
10-
"version": "1.0.3"
10+
"version": "1.0.4"
1111
},
1212
"tauri": {
1313
"allowlist": {

src/views/new-project/package-view.tsx

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import FolderOpen from "../../components/svg/folder-open";
1111
import { open } from "@tauri-apps/api/dialog";
1212
import Delete from "../../components/svg/delete";
1313
import { Buttons } from "../../components/parts/buttons";
14+
import toast from "react-hot-toast";
1415

1516
const categories = ["All", "In Package", "Default", "Internal", "Git", "Local"];
1617

@@ -302,8 +303,10 @@ export default function PackageView() {
302303
onClick={() => onlyShowSelectedPackages.set((s) => !s)}
303304
>
304305
<div className="w-7 aspect-square border rounded-md border-stone-600 select-none">
305-
<div className="p-1">
306-
{onlyShowSelectedPackages.value && <Checkmark />}
306+
<div className="flex items-center justify-center w-full h-full">
307+
{onlyShowSelectedPackages.value && (
308+
<Checkmark width={16} height={16} />
309+
)}
307310
</div>
308311
</div>
309312
<p className="select-none">
@@ -368,8 +371,16 @@ function GitAdd(props: {
368371

369372
async function addPackage() {
370373
if (tab.value === "url") {
371-
if (gitPackageId.value === "") return;
372-
if (gitPackageUrl.value === "") return;
374+
if (gitPackageId.value === "") {
375+
toast.error(
376+
"Invalid package name. You can find this in the package.json"
377+
);
378+
return;
379+
}
380+
if (gitPackageUrl.value === "") {
381+
toast.error("Invalid URL");
382+
return;
383+
}
373384
if (
374385
newProjectContext.state.packageInfo.gitPackages.some(
375386
(x) =>
@@ -380,9 +391,11 @@ function GitAdd(props: {
380391
return;
381392
}
382393

394+
const id = gitPackageId.value.trim();
395+
const version = gitPackageUrl.value.trim();
383396
await TauriRouter.add_git_package_to_cache({
384-
name: gitPackageId.value,
385-
version: gitPackageUrl.value,
397+
name: id,
398+
version,
386399
isFile: false,
387400
isDiscoverable: true,
388401
type: TauriTypes.PackageType.Git,
@@ -391,8 +404,8 @@ function GitAdd(props: {
391404
newProjectContext.dispatch({
392405
type: "add_git_package",
393406
package: {
394-
id: gitPackageId.value,
395-
url: gitPackageUrl.value,
407+
id,
408+
url: version,
396409
},
397410
});
398411

@@ -414,11 +427,19 @@ function GitAdd(props: {
414427
gitPackageUrl.value
415428
);
416429
} else {
417-
if (gitPackageJson.value === "") return;
430+
if (gitPackageJson.value === "") {
431+
toast.error("Invalid JSON");
432+
return;
433+
}
418434

419435
try {
436+
// make json more acceptable
437+
let gitPackageJson_ = gitPackageJson.value.trim();
438+
if (gitPackageJson_.endsWith(",")) {
439+
gitPackageJson_ = gitPackageJson_.slice(0, -1);
440+
}
420441
const obj: { [key: string]: string } = JSON.parse(
421-
`{${gitPackageJson.value}}`
442+
`{${gitPackageJson_}}`
422443
);
423444
const [name, version] = Object.entries(obj)[0];
424445

src/views/projects/projects-header.tsx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { TauriRouter } from "../../utils/tauri-router";
66
import { open } from "@tauri-apps/api/dialog";
77
import { UseState } from "../../utils";
88
import { ProjectViewData } from "./projects-view";
9+
import { routeErrorToToast } from "../../utils/toast-utils";
910

1011
export default function ProjectsHeader({
1112
projectData,
@@ -21,14 +22,18 @@ export default function ProjectsHeader({
2122
});
2223
if (!folder) return;
2324

24-
const project = await TauriRouter.add_project(folder as string);
25-
// console.log("project:", project);
25+
try {
26+
const project = await TauriRouter.add_project(folder as string);
27+
// console.log("project:", project);
2628

27-
const results = await TauriRouter.get_projects();
28-
// console.log("projects:", results);
29+
const results = await TauriRouter.get_projects();
30+
// console.log("projects:", results);
2931

30-
projectData.set((s) => ({ ...s, projects: results }));
31-
// dispatch({ type: "set_projects", projects: results });
32+
projectData.set((s) => ({ ...s, projects: results }));
33+
// dispatch({ type: "set_projects", projects: results });
34+
} catch (error) {
35+
routeErrorToToast(error);
36+
}
3237
}
3338

3439
async function startNewProject() {

src/views/projects/projects-list.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import LoadingSpinner from "../../components/svg/loading-spinner";
2323
import useBetterState from "../../hooks/useBetterState";
2424
import Box from "../../components/svg/box";
2525
import Pin from "../../components/svg/pin";
26-
import { Buttons } from "../../components/parts/buttons";
2726
import Sort from "../../components/svg/sort";
2827
import toast from "react-hot-toast";
2928
import { routeErrorToToast } from "../../utils/toast-utils";

0 commit comments

Comments
 (0)