mirror of
https://github.com/wukko/cobalt.git
synced 2025-04-30 14:34:27 +02:00

also: - renamed processing tab in settings to "instances" - improved override description - prefer custom over override (and grey out the option) - dedicated lib for all api safety warnings - left aligned small popup with smaller icon - ability to grey out settings category & toggle
112 lines
3.3 KiB
TypeScript
112 lines
3.3 KiB
TypeScript
import { get } from "svelte/store";
|
|
|
|
import env from "$lib/env";
|
|
import { t } from "$lib/i18n/translations";
|
|
import settings, { updateSetting } from "$lib/state/settings";
|
|
|
|
import { createDialog } from "$lib/dialogs";
|
|
|
|
export const apiOverrideWarning = async () => {
|
|
if (env.DEFAULT_API && !get(settings).processing.seenOverrideWarning) {
|
|
let _actions: {
|
|
resolve: () => void;
|
|
reject: () => void;
|
|
};
|
|
|
|
const promise = new Promise<void>(
|
|
(resolve, reject) => (_actions = { resolve, reject })
|
|
).catch(() => {
|
|
return {}
|
|
});
|
|
|
|
createDialog({
|
|
id: "security-api-override",
|
|
type: "small",
|
|
icon: "warn-red",
|
|
title: get(t)("dialog.api.override.title"),
|
|
bodyText: get(t)("dialog.api.override.body", { value: env.DEFAULT_API }),
|
|
dismissable: false,
|
|
buttons: [
|
|
{
|
|
text: get(t)("button.cancel"),
|
|
main: false,
|
|
action: () => {
|
|
_actions.reject();
|
|
updateSetting({
|
|
processing: {
|
|
seenOverrideWarning: true,
|
|
},
|
|
})
|
|
},
|
|
},
|
|
{
|
|
text: get(t)("button.continue"),
|
|
color: "red",
|
|
main: true,
|
|
timeout: 5000,
|
|
action: () => {
|
|
_actions.resolve();
|
|
updateSetting({
|
|
processing: {
|
|
allowDefaultOverride: true,
|
|
seenOverrideWarning: true,
|
|
},
|
|
})
|
|
},
|
|
},
|
|
],
|
|
})
|
|
|
|
await promise;
|
|
}
|
|
}
|
|
|
|
export const customInstanceWarning = async () => {
|
|
if (env.DEFAULT_API && !get(settings).processing.seenCustomWarning) {
|
|
let _actions: {
|
|
resolve: () => void;
|
|
reject: () => void;
|
|
};
|
|
|
|
const promise = new Promise<void>(
|
|
(resolve, reject) => (_actions = { resolve, reject })
|
|
).catch(() => {
|
|
return {}
|
|
});
|
|
|
|
createDialog({
|
|
id: "security-api-custom",
|
|
type: "small",
|
|
icon: "warn-red",
|
|
title: get(t)("dialog.safety.title"),
|
|
bodyText: get(t)("dialog.safety.custom_instance.body"),
|
|
leftAligned: true,
|
|
buttons: [
|
|
{
|
|
text: get(t)("button.cancel"),
|
|
main: false,
|
|
action: () => {
|
|
_actions.reject();
|
|
},
|
|
},
|
|
{
|
|
text: get(t)("button.continue"),
|
|
color: "red",
|
|
main: true,
|
|
timeout: 15000,
|
|
action: () => {
|
|
_actions.resolve();
|
|
updateSetting({
|
|
processing: {
|
|
seenCustomWarning: true,
|
|
},
|
|
})
|
|
},
|
|
},
|
|
],
|
|
})
|
|
|
|
await promise;
|
|
}
|
|
}
|