Skip to content

Commit d518009

Browse files
committed
Merge branch 'dev'
2 parents 8124174 + 4d3a075 commit d518009

File tree

7 files changed

+33
-35
lines changed

7 files changed

+33
-35
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ pnpm tauri build
3636

3737
Then find the exe in `\src-tauri\target\release\`
3838

39+
## FAQ
40+
41+
### Why does my local package.json file keeps failing to be read?
42+
43+
Makes sure the file is set to UTF8 encoding.
44+
3945
## Screenshots
4046

4147
#### Projects

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.4",
4+
"version": "1.0.5",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

src-tauri/src/cache.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ pub fn cmd_add_local_package_to_cache(app_handle: tauri::AppHandle, app_state: t
8282
pub fn cmd_remove_git_package_from_cache(app_handle: tauri::AppHandle, app_state: tauri::State<AppState>, package: package::MinimalPackage) -> Result<(), errors::AnyError> {
8383
let mut user_cache = app_state.user_cache.lock()
8484
.map_err(|_| errors::str_error("Failed to get user_cache. Is it locked?"))?;
85-
user_cache.git_packages.retain(|p| p.name != package.name && p.version != package.version);
85+
user_cache.git_packages.retain(|p| !(p.name == package.name && (p.version == package.version || (p.version.is_empty() && package.version.is_empty()))));
8686
app::save_user_cache_to_disk(&user_cache, &app_handle)?;
8787
Ok(())
8888
}
@@ -91,7 +91,7 @@ pub fn cmd_remove_git_package_from_cache(app_handle: tauri::AppHandle, app_state
9191
pub fn cmd_remove_local_package_from_cache(app_handle: tauri::AppHandle, app_state: tauri::State<AppState>, package: package::MinimalPackage) -> Result<(), errors::AnyError> {
9292
let mut user_cache = app_state.user_cache.lock()
9393
.map_err(|_| errors::str_error("Failed to get user_cache. Is it locked?"))?;
94-
user_cache.local_packages.retain(|p| p.name != package.name);
94+
user_cache.local_packages.retain(|p| !(p.name == package.name && (p.version == package.version || (p.version.is_empty() && package.version.is_empty()))));
9595
app::save_user_cache_to_disk(&user_cache, &app_handle)?;
9696
Ok(())
9797
}

src-tauri/src/generate.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,6 @@ pub fn generate_project(app: &tauri::AppHandle, app_state: &tauri::State<'_, App
5757
.to_str()
5858
.ok_or(errors::str_error("Failed to convert path to string"))?
5959
.to_string();
60-
// let tmp_path = package_cache_dir
61-
// .join("project")
62-
// .join("ProjectData~")
63-
// .to_str()
64-
// .ok_or(errors::str_error("Failed to convert path to string"))?
65-
// .to_string();
6660
let args = vec!["-createProject".to_string(), package_cache_dir_out_str, "-quit".to_string()];
6761
editor::open(editor_version.clone(), args, &app_state, true)?;
6862

@@ -465,17 +459,17 @@ fn modify_package_json(json_root: &PathBuf, packages: &Vec<MinimalPackage>, outp
465459
None => package_json_path.clone()
466460
};
467461

462+
#[derive(serde::Deserialize)]
463+
#[serde(rename_all = "camelCase")]
464+
struct JsonData {
465+
name: String,
466+
}
467+
468468
let json = std::fs::read_to_string(&package_json_path)?;
469-
let json: serde_json::Value = serde_json::from_str(&json)?;
470-
let name = json.as_object()
471-
.ok_or(errors::str_error(&format!("Failed to get json object from {}", package_json_path.display())))?
472-
.get("name")
473-
.ok_or(errors::str_error(&format!("Failed to get name from {}", package_json_path.display())))?
474-
.as_str()
475-
.ok_or(errors::str_error(&format!("Failed to get name from {}", package_json_path.display())))?
476-
.to_string();
469+
let json: JsonData = serde_json::from_str(&json)
470+
.map_err(|err| errors::str_error(&format!("Failed to parse json from {}, error: {:?}", package_json_path.display(), err)))?;
477471

478-
let name = name.clone();
472+
let name = json.name.clone();
479473
let version = format!("file:{}", relative_path
480474
.to_str()
481475
.ok_or(errors::str_error("Failed to get str"))?

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.4"
10+
"version": "1.0.5"
1111
},
1212
"tauri": {
1313
"allowlist": {

src/context/new-project-context.tsx

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -376,9 +376,7 @@ export namespace NewProjectContext {
376376
packageInfo: {
377377
...state.packageInfo,
378378
gitPackages: state.packageInfo.gitPackages.filter(
379-
(x) =>
380-
x.name !== action.package.name &&
381-
x.version !== action.package.version
379+
(x) => x !== action.package
382380
),
383381
},
384382
};
@@ -388,9 +386,7 @@ export namespace NewProjectContext {
388386
packageInfo: {
389387
...state.packageInfo,
390388
localPackages: state.packageInfo.localPackages.filter(
391-
(x) =>
392-
x.name !== action.package.name &&
393-
x.version !== action.package.version
389+
(x) => x !== action.package
394390
),
395391
},
396392
};
@@ -400,14 +396,10 @@ export namespace NewProjectContext {
400396
packageInfo: {
401397
...state.packageInfo,
402398
templatePackages: state.packageInfo.templatePackages.filter(
403-
(x) =>
404-
x.name !== action.package.name &&
405-
x.version !== action.package.version
399+
(x) => x !== action.package
406400
),
407401
selectedPackages: state.packageInfo.selectedPackages.filter(
408-
(x) =>
409-
x.name !== action.package.name &&
410-
x.version !== action.package.version
402+
(x) => x !== action.package
411403
),
412404
},
413405
};

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -161,12 +161,16 @@ export default function PackageView() {
161161
});
162162
}
163163

164-
function removePackage(package_: CategoryPackage, version: string) {
164+
function removePackage(package_: CategoryPackage, version?: string) {
165165
const packages = packageInfo.selectedPackages;
166166
newProjectContext.dispatch({
167167
type: "set_selected_packages",
168168
packages: packages.filter(
169-
(x) => !(x.name === package_.package_.name && x.version === version)
169+
(x) =>
170+
!(
171+
x.name === package_.package_.name &&
172+
(x.version === version || (x.version ?? "") === version)
173+
)
170174
),
171175
});
172176
}
@@ -199,7 +203,7 @@ export default function PackageView() {
199203
});
200204
}
201205

202-
function togglePackage(package_: CategoryPackage, version: string) {
206+
function togglePackage(package_: CategoryPackage, version?: string) {
203207
if (isSelected(package_, version)) {
204208
removePackage(package_, version);
205209
} else {
@@ -344,7 +348,9 @@ export default function PackageView() {
344348
onClick={() =>
345349
togglePackage(
346350
x,
347-
existingPackage?.version ?? x.package_.version
351+
existingPackage?.version ??
352+
x.package_.version ??
353+
undefined
348354
)
349355
}
350356
destroyPackage={destroyPackage}

0 commit comments

Comments
 (0)