+ v-model="params[k]"
+ >
{{ v.label ?? k }}
{{ v.caption }}
@@ -53,12 +54,12 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
diff --git a/packages/frontend/src/components/MkPushNotificationAllowButton.vue b/packages/frontend/src/components/MkPushNotificationAllowButton.vue
index c651d3a3f5..9c37eb5e72 100644
--- a/packages/frontend/src/components/MkPushNotificationAllowButton.vue
+++ b/packages/frontend/src/components/MkPushNotificationAllowButton.vue
@@ -78,7 +78,7 @@ function subscribe() {
// SEE: https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe#Parameters
return promiseDialog(registration.value.pushManager.subscribe({
userVisibleOnly: true,
- applicationServerKey: urlBase64ToBase64(instance.swPublickey),
+ applicationServerKey: urlBase64ToUint8Array(instance.swPublickey),
})
.then(async subscription => {
pushSubscription.value = subscription;
@@ -131,16 +131,22 @@ function encode(buffer: ArrayBuffer | null) {
}
/**
- * Convert the URL safe base64 string to a base64 string
+ * Convert the URL safe base64 string to a Uint8Array
* @param base64String base64 string
*/
-function urlBase64ToBase64(base64String: string): string {
+function urlBase64ToUint8Array(base64String: string): Uint8Array {
const padding = '='.repeat((4 - base64String.length % 4) % 4);
const base64 = (base64String + padding)
.replace(/-/g, '+')
.replace(/_/g, '/');
- return base64;
+ const rawData = window.atob(base64);
+ const outputArray = new Uint8Array(rawData.length);
+
+ for (let i = 0; i < rawData.length; ++i) {
+ outputArray[i] = rawData.charCodeAt(i);
+ }
+ return outputArray;
}
if (navigator.serviceWorker == null) {
diff --git a/packages/frontend/src/components/MkServerSetupWizard.vue b/packages/frontend/src/components/MkServerSetupWizard.vue
index 1d2dfed297..8e3b41e754 100644
--- a/packages/frontend/src/components/MkServerSetupWizard.vue
+++ b/packages/frontend/src/components/MkServerSetupWizard.vue
@@ -134,7 +134,7 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts._serverSettings.entrancePageStyle }}:
-
{{ serverSettings.clientOptions.entrancePageStyle }}
+
{{ serverSettings.clientOptions?.entrancePageStyle }}
@@ -191,7 +191,6 @@ SPDX-License-Identifier: AGPL-3.0-only
+
+
diff --git a/packages/frontend/src/pages/admin-file.vue b/packages/frontend/src/pages/admin-file.vue
index 052829ffe2..608a77c06b 100644
--- a/packages/frontend/src/pages/admin-file.vue
+++ b/packages/frontend/src/pages/admin-file.vue
@@ -4,197 +4,37 @@ SPDX-License-Identifier: AGPL-3.0-only
-->
-
-
-
-
-
-
-
-
- MIME Type
- {{ file.type }}
-
-
- Size
- {{ bytes(file.size) }}
-
-
- ID
- {{ file.id }}
-
-
- MD5
- {{ file.md5 }}
-
-
- {{ i18n.ts.createdAt }}
-
-
-
-
-
-
-
-
- {{ i18n.ts.sensitive }}
-
-
-
- {{ i18n.ts.delete }}
-
-
-
-
-
-
-
-
- {{ i18n.ts.requireAdminForView }}
-
- IP
- {{ info.requestIp }}
-
-
- Headers
-
- {{ k }}
- {{ v }}
-
-
-
-
-
-
-
-
-
+ file = result.file">
+
+
-
-
diff --git a/packages/frontend/src/pages/admin/branding.vue b/packages/frontend/src/pages/admin/branding.vue
index f78a4f27bd..e5e0f087e1 100644
--- a/packages/frontend/src/pages/admin/branding.vue
+++ b/packages/frontend/src/pages/admin/branding.vue
@@ -152,6 +152,7 @@ SPDX-License-Identifier: AGPL-3.0-only
import { ref, computed } from 'vue';
import JSON5 from 'json5';
import { host } from '@@/js/config.js';
+import type { ClientOptions } from '@/instance.js';
import MkInput from '@/components/MkInput.vue';
import MkTextarea from '@/components/MkTextarea.vue';
import * as os from '@/os.js';
@@ -166,9 +167,13 @@ import MkSwitch from '@/components/MkSwitch.vue';
const meta = await misskeyApi('admin/meta');
-const entrancePageStyle = ref(meta.clientOptions.entrancePageStyle ?? 'classic');
-const showTimelineForVisitor = ref(meta.clientOptions.showTimelineForVisitor ?? true);
-const showActivitiesForVisitor = ref(meta.clientOptions.showActivitiesForVisitor ?? true);
+// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+const entrancePageStyle = ref
(meta.clientOptions.entrancePageStyle ?? 'classic');
+// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+const showTimelineForVisitor = ref(meta.clientOptions.showTimelineForVisitor ?? true);
+// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+const showActivitiesForVisitor = ref(meta.clientOptions.showActivitiesForVisitor ?? true);
+
const iconUrl = ref(meta.iconUrl);
const app192IconUrl = ref(meta.app192IconUrl);
const app512IconUrl = ref(meta.app512IconUrl);
@@ -186,11 +191,11 @@ const manifestJsonOverride = ref(meta.manifestJsonOverride === '' ? '{}' : JSON.
function save() {
os.apiWithDialog('admin/update-meta', {
- clientOptions: {
+ clientOptions: ({
entrancePageStyle: entrancePageStyle.value,
showTimelineForVisitor: showTimelineForVisitor.value,
showActivitiesForVisitor: showActivitiesForVisitor.value,
- },
+ } as ClientOptions) as any,
iconUrl: iconUrl.value,
app192IconUrl: app192IconUrl.value,
app512IconUrl: app512IconUrl.value,
diff --git a/packages/frontend/src/pages/admin/database.vue b/packages/frontend/src/pages/admin/database.vue
index d51f43c098..f41967d3bd 100644
--- a/packages/frontend/src/pages/admin/database.vue
+++ b/packages/frontend/src/pages/admin/database.vue
@@ -6,19 +6,18 @@ SPDX-License-Identifier: AGPL-3.0-only
-
+
{{ table[0] }}
{{ bytes(table[1].size) }} ({{ number(table[1].count) }} recs)
-
+
+
+
diff --git a/packages/frontend/src/pages/gallery/edit.vue b/packages/frontend/src/pages/gallery/edit.vue
index 3fd462e0b9..12d1a37390 100644
--- a/packages/frontend/src/pages/gallery/edit.vue
+++ b/packages/frontend/src/pages/gallery/edit.vue
@@ -4,162 +4,35 @@ SPDX-License-Identifier: AGPL-3.0-only
-->
-
-
-
-
- {{ i18n.ts.title }}
-
-
-
- {{ i18n.ts.description }}
-
-
-
-
-
{{ i18n.ts.attachFile }}
-
-
- {{ i18n.ts.markAsSensitive }}
-
-
- {{ i18n.ts.save }}
- {{ i18n.ts.publish }}
-
- {{ i18n.ts.delete }}
-
-
-
-
+
+
+
-
-
diff --git a/packages/frontend/src/pages/notifications.vue b/packages/frontend/src/pages/notifications.vue
index 71c957460c..5d308e6b29 100644
--- a/packages/frontend/src/pages/notifications.vue
+++ b/packages/frontend/src/pages/notifications.vue
@@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only