diff --git a/Caddyfile b/Caddyfile index 6f590053..24233ac6 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,11 +1,16 @@ osucad.com { - reverse_proxy http://localhost:3000 + reverse_proxy http://localhost:3000 @frontend { not { path /api* - path /auth* + path /auth* + path /metrics* + path /editor* + path /socket.io* } } + + reverse_proxy @frontend http://localhost:5173 } \ No newline at end of file diff --git a/packages/client/android/app/capacitor.build.gradle b/packages/client/android/app/capacitor.build.gradle index fdb4970c..151fee42 100644 --- a/packages/client/android/app/capacitor.build.gradle +++ b/packages/client/android/app/capacitor.build.gradle @@ -9,7 +9,7 @@ android { apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { - + implementation project(':capacitor-app') } diff --git a/packages/client/android/app/src/main/AndroidManifest.xml b/packages/client/android/app/src/main/AndroidManifest.xml index 9b39f893..b4d28280 100644 --- a/packages/client/android/app/src/main/AndroidManifest.xml +++ b/packages/client/android/app/src/main/AndroidManifest.xml @@ -10,20 +10,30 @@ android:theme="@style/AppTheme"> + android:theme="@style/AppTheme.NoActionBar"> + + + + + + + + + + + - #FFFFFF + #1A1A20 \ No newline at end of file diff --git a/packages/client/android/app/src/main/res/values/styles.xml b/packages/client/android/app/src/main/res/values/styles.xml index be874e54..c362d417 100644 --- a/packages/client/android/app/src/main/res/values/styles.xml +++ b/packages/client/android/app/src/main/res/values/styles.xml @@ -12,10 +12,9 @@ - diff --git a/packages/client/android/capacitor.settings.gradle b/packages/client/android/capacitor.settings.gradle index a8bab357..6270310f 100644 --- a/packages/client/android/capacitor.settings.gradle +++ b/packages/client/android/capacitor.settings.gradle @@ -1,3 +1,6 @@ // DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN include ':capacitor-android' project(':capacitor-android').projectDir = new File('../../../node_modules/@capacitor/android/capacitor') + +include ':capacitor-app' +project(':capacitor-app').projectDir = new File('../../../node_modules/@capacitor/app/android') diff --git a/packages/client/capacitor.config.ts b/packages/client/capacitor.config.ts index bb04bede..cad721c4 100644 --- a/packages/client/capacitor.config.ts +++ b/packages/client/capacitor.config.ts @@ -1,13 +1,12 @@ -import { CapacitorConfig } from '@capacitor/cli'; +import {CapacitorConfig} from '@capacitor/cli'; const config: CapacitorConfig = { appId: 'com.osucad', appName: 'osucad', - webDir: 'dist', + webDir: 'mobile-dist', server: { androidScheme: 'https', - url: 'https://osucad.com', - allowNavigation: ['osucad.com', 'osu.ppy.sh'], + allowNavigation: ['dev.osucad.com', 'osu.ppy.sh'], } }; diff --git a/packages/client/components.d.ts b/packages/client/components.d.ts new file mode 100644 index 00000000..6e1961b8 --- /dev/null +++ b/packages/client/components.d.ts @@ -0,0 +1,38 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + AppNavbar: typeof import('./src/components/AppNavbar.vue')['default'] + AudioPreferencesForm: typeof import('./src/components/preferences/AudioPreferencesForm.vue')['default'] + BehaviorPreferencesForm: typeof import('./src/components/preferences/BehaviorPreferencesForm.vue')['default'] + Button: typeof import('./src/components/Button.vue')['default'] + ButtonGroup: typeof import('./src/components/ButtonGroup.vue')['default'] + Card: typeof import('./src/components/card/Card.vue')['default'] + Checkbox: typeof import('./src/components/Checkbox.vue')['default'] + Dropzone: typeof import('./src/components/Dropzone.vue')['default'] + FormField: typeof import('./src/components/FormField.vue')['default'] + GraphicsPreferencesForm: typeof import('./src/components/preferences/GraphicsPreferencesForm.vue')['default'] + HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] + ImportOszCard: typeof import('./src/components/beatmap/ImportOszCard.vue')['default'] + MapsetCard: typeof import('./src/components/beatmap/MapsetCard.vue')['default'] + OperatorBox: typeof import('./src/components/operator/OperatorBox.vue')['default'] + PreferencesForm: typeof import('./src/components/preferences/PreferencesForm.vue')['default'] + ProgressBar: typeof import('./src/components/ProgressBar.vue')['default'] + QColor: typeof import('quasar')['QColor'] + QLinearProgress: typeof import('quasar')['QLinearProgress'] + QSlider: typeof import('quasar')['QSlider'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Switch: typeof import('./src/components/Switch.vue')['default'] + TabList: typeof import('./src/components/tabList/TabList.vue')['default'] + UserAvatar: typeof import('./src/components/UserAvatar.vue')['default'] + Vec2ParameterControl: typeof import('./src/components/operator/Vec2ParameterControl.vue')['default'] + ViewportPreferencesForm: typeof import('./src/components/preferences/ViewportPreferencesForm.vue')['default'] + VNodes: typeof import('./src/components/VNodes.vue')['default'] + } +} diff --git a/packages/client/index.html b/packages/client/index.html index 19925cf8..1917beca 100644 --- a/packages/client/index.html +++ b/packages/client/index.html @@ -9,6 +9,5 @@
- diff --git a/packages/client/mobile-dist/index.html b/packages/client/mobile-dist/index.html new file mode 100644 index 00000000..89da7029 --- /dev/null +++ b/packages/client/mobile-dist/index.html @@ -0,0 +1,15 @@ + + + + + + Document + + + + + + \ No newline at end of file diff --git a/packages/client/package.json b/packages/client/package.json index 3165d317..300f52c2 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -10,30 +10,36 @@ }, "dependencies": { "@capacitor/android": "^5.6.0", - "@capacitor/core": "^5.6.0", + "@capacitor/app": "^5.0.7", + "@capacitor/core": "^5.7.0", "@fontsource/nunito-sans": "^5.0.8", "@fontsource/saira": "^5.0.20", + "@quasar/extras": "^1.16.9", "@vueuse/core": "^10.7.0", "@ygoe/msgpack": "^1.0.3", "any-touch": "^2.2.0", "axios": "^1.6.2", "gsap": "^3.12.4", "path": "^0.12.7", - "pixi.js": "8.0.0-rc.4", + "pixi.js": "8.0.0-rc.6", "primeflex": "^3.3.1", "primevue": "^3.46.0", + "quasar": "^2.14.3", "socket.io-client": "^4.7.2", "vue": "^3.3.4", "vue-router": "^4.2.5", "zingtouch": "^1.0.6" }, "devDependencies": { - "@capacitor/cli": "^5.6.0", + "@capacitor/assets": "^3.0.4", + "@capacitor/cli": "^5.7.0", + "@quasar/vite-plugin": "^1.6.0", "@types/node": "^20.10.5", "@vitejs/plugin-vue": "^4.2.3", - "sass": "^1.69.5", + "sass": "^1.33.0", "typescript": "^5.0.2", "unplugin-auto-import": "^0.17.2", + "unplugin-vue-components": "^0.26.0", "unplugin-vue-router": "^0.7.0", "vite": "^4.4.5", "vue-tsc": "^1.8.5" diff --git a/packages/client/public/.well-known/assetlinks.json b/packages/client/public/.well-known/assetlinks.json new file mode 100644 index 00000000..b39bb529 --- /dev/null +++ b/packages/client/public/.well-known/assetlinks.json @@ -0,0 +1,14 @@ +[ + { + "relation": [ + "delegate_permission/common.handle_all_urls" + ], + "target": { + "namespace": "android_app", + "package_name": "com.osucad", + "sha256_cert_fingerprints": [ + "15:AD:4D:63:F5:10:6D:39:16:88:F1:8A:14:87:B4:04:9C:97:06:6E:F4:55:A5:F1:86:A9:C0:33:1A:BC:3E:17" + ] + } + } +] \ No newline at end of file diff --git a/packages/client/public/assets/icons/redo.png b/packages/client/public/assets/icons/redo.png new file mode 100644 index 00000000..9cdbde2c Binary files /dev/null and b/packages/client/public/assets/icons/redo.png differ diff --git a/packages/client/public/assets/icons/reverse.png b/packages/client/public/assets/icons/reverse.png new file mode 100644 index 00000000..dd316f85 Binary files /dev/null and b/packages/client/public/assets/icons/reverse.png differ diff --git a/packages/client/public/assets/icons/size-ew.png b/packages/client/public/assets/icons/size-ew.png new file mode 100644 index 00000000..c35fd0af Binary files /dev/null and b/packages/client/public/assets/icons/size-ew.png differ diff --git a/packages/client/public/assets/icons/size-ns.png b/packages/client/public/assets/icons/size-ns.png new file mode 100644 index 00000000..7d15d02a Binary files /dev/null and b/packages/client/public/assets/icons/size-ns.png differ diff --git a/packages/client/public/assets/icons/undo.png b/packages/client/public/assets/icons/undo.png new file mode 100644 index 00000000..51742192 Binary files /dev/null and b/packages/client/public/assets/icons/undo.png differ diff --git a/packages/client/resources/splash.png b/packages/client/resources/splash.png new file mode 100644 index 00000000..9e61415f Binary files /dev/null and b/packages/client/resources/splash.png differ diff --git a/packages/client/src/App.vue b/packages/client/src/App.vue index f19c3283..f6c7510b 100644 --- a/packages/client/src/App.vue +++ b/packages/client/src/App.vue @@ -4,10 +4,34 @@ import TitleBar from "./components/AppNavbar.vue"; \ No newline at end of file + + + \ No newline at end of file diff --git a/packages/client/src/assets/icons/cogs.png b/packages/client/src/assets/icons/cogs.png new file mode 100644 index 00000000..5f37ef87 Binary files /dev/null and b/packages/client/src/assets/icons/cogs.png differ diff --git a/packages/client/src/assets/icons/select.svg b/packages/client/src/assets/icons/select.svg new file mode 100644 index 00000000..178c8450 --- /dev/null +++ b/packages/client/src/assets/icons/select.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/client/src/components/AppNavbar.vue b/packages/client/src/components/AppNavbar.vue index fbafa45a..9d835d84 100644 --- a/packages/client/src/components/AppNavbar.vue +++ b/packages/client/src/components/AppNavbar.vue @@ -1,17 +1,26 @@