diff --git a/app/srv/api/npm.ts b/app/srv/api/npm.ts index 4db678d0..798da748 100644 --- a/app/srv/api/npm.ts +++ b/app/srv/api/npm.ts @@ -8,8 +8,17 @@ import { g } from "utils/global"; export const _ = { url: "/npm/:mode/:id/*", - async api(mode: "site" | "page", id: string) { + async api(mode: "site" | "page" | "apk-qr", id: string) { const { req, res, mode: _mode } = apiContext(this); + + if (mode === "apk-qr") { + const file_apk = Bun.file(dir.path(`${g.datadir}/prasi-wrap.apk`)); + if (!await file_apk.exists()) { + return new Response('not found'); + } + return new Response(file_apk); + } + let path = dir.path(`${g.datadir}/npm/${mode}/${id}/${req.params._}`); const contentType = mime.lookup(path); diff --git a/app/web/package.json b/app/web/package.json index 4833a709..842c9582 100644 --- a/app/web/package.json +++ b/app/web/package.json @@ -10,6 +10,7 @@ "@floating-ui/react": "^0.26.4", "@leeoniya/ufuzzy": "^1.0.14", "@minoru/react-dnd-treeview": "^3.4.4", + "@wojtekmaj/react-qr-svg": "^1.0.0", "constrained-editor-plugin": "^1.3.0", "@monaco-editor/react": "^4.6.0", "@paralleldrive/cuid2": "2.2.2", diff --git a/app/web/public/index.html b/app/web/public/index.html index 2f376f2f..50125740 100644 --- a/app/web/public/index.html +++ b/app/web/public/index.html @@ -6,12 +6,12 @@