diff --git a/backend/endpoints/platform.py b/backend/endpoints/platform.py
index 284646981..480b6e86f 100644
--- a/backend/endpoints/platform.py
+++ b/backend/endpoints/platform.py
@@ -126,7 +126,7 @@ class DeletePlatformResponse(TypedDict):
msg: str
-@protected_route(router.delete, "/platforms/{fs_slug}", ["roms.write"])
+@protected_route(router.delete, "/platforms/{fs_slug}", ["platforms.write"])
def delete_platform(
request: Request, fs_slug: str, delete_from_fs: bool = False
) -> DeletePlatformResponse:
diff --git a/frontend/src/components/Dashboard/Recent.vue b/frontend/src/components/Dashboard/Recent.vue
index 84d7ef808..f65c43eb0 100644
--- a/frontend/src/components/Dashboard/Recent.vue
+++ b/frontend/src/components/Dashboard/Recent.vue
@@ -1,7 +1,7 @@
@@ -51,7 +51,12 @@ onMounted(async () => {
:lg="views[0]['size-lg']"
:xl="views[0]['size-xl']"
>
-
+
diff --git a/frontend/src/components/Dialog/Platform/DeletePlatform.vue b/frontend/src/components/Dialog/Platform/DeletePlatform.vue
index 25d7e6b2d..7b4c50a7c 100644
--- a/frontend/src/components/Dialog/Platform/DeletePlatform.vue
+++ b/frontend/src/components/Dialog/Platform/DeletePlatform.vue
@@ -4,11 +4,11 @@ import { useRouter } from "vue-router";
import type { Emitter } from "mitt";
import type { Events } from "@/types/emitter";
import api from "@/services/api";
-import storePlatforms from "@/stores/platforms";
+import storePlatforms, { type Platform } from "@/stores/platforms";
const router = useRouter();
const platformsStore = storePlatforms();
-const platform = ref();
+const platform = ref(null);
const show = ref(false);
const emitter = inject>("emitter");
emitter?.on("showDeletePlatformDialog", (platformToDelete) => {
@@ -18,6 +18,8 @@ emitter?.on("showDeletePlatformDialog", (platformToDelete) => {
const deleteFromFs = ref(false);
async function deletePlatform() {
+ if (!platform.value) return;
+
show.value = false;
await api
.deletePlatform({
diff --git a/frontend/src/components/Gallery/AppBar/AdminMenu.vue b/frontend/src/components/Gallery/AppBar/AdminMenu.vue
index 86765a242..df7847656 100644
--- a/frontend/src/components/Gallery/AppBar/AdminMenu.vue
+++ b/frontend/src/components/Gallery/AppBar/AdminMenu.vue
@@ -1,12 +1,7 @@
diff --git a/frontend/src/components/Gallery/AppBar/DeleteBtn.vue b/frontend/src/components/Gallery/AppBar/DeleteBtn.vue
index de0d84d97..ffebe07e0 100644
--- a/frontend/src/components/Gallery/AppBar/DeleteBtn.vue
+++ b/frontend/src/components/Gallery/AppBar/DeleteBtn.vue
@@ -16,12 +16,13 @@ const platform = platforms.value.find(
- Delete
- platform
+
+
+ Delete Platform
+
diff --git a/frontend/src/services/api.ts b/frontend/src/services/api.ts
index b3ada0d4c..8b5514299 100644
--- a/frontend/src/services/api.ts
+++ b/frontend/src/services/api.ts
@@ -47,7 +47,7 @@ async function deletePlatform({
});
}
-export async function fetchRecentRoms(): Promise<{ data: RomSchema[] }> {
+async function fetchRecentRoms(): Promise<{ data: RomSchema[] }> {
return api.get("/roms-recent");
}
@@ -271,6 +271,7 @@ async function deleteUser(user: User): Promise<{ data: MessageResponse }> {
export default {
fetchPlatforms,
deletePlatform,
+ fetchRecentRoms,
fetchRoms,
fetchRom,
downloadRom,
diff --git a/frontend/src/types/emitter.d.ts b/frontend/src/types/emitter.d.ts
index 1d29cae0a..1d8a3b7e0 100644
--- a/frontend/src/types/emitter.d.ts
+++ b/frontend/src/types/emitter.d.ts
@@ -15,7 +15,7 @@ export type SnackbarStatus = {
};
export type Events = {
- showDeletePlatformDialog: Platform | undefined;
+ showDeletePlatformDialog: Platform;
showSearchRomDialog: Rom;
showEditRomDialog: Rom;
showDeleteRomDialog: Rom[];
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index b10efa14d..da4e77976 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -6,6 +6,7 @@
"composite": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"baseUrl": ".",
+ "noImplicitAny": true,
"paths": {
"@/*": ["./src/*"]
}