Resolve some typescript errors

This commit is contained in:
nemunaire 2023-05-05 11:12:33 +02:00
parent d0dcb164fc
commit f2de26ea0e
13 changed files with 28 additions and 17 deletions

View File

@ -11,7 +11,7 @@ export async function listServiceSpecs(): Promise<Record<string, ServiceInfos>>
export async function getServiceSpec(ssid: string): Promise<ServiceSpec> { export async function getServiceSpec(ssid: string): Promise<ServiceSpec> {
if (ssid == "string") { if (ssid == "string") {
return Promise.resolve(new ServiceSpec({})); return Promise.resolve(<ServiceSpec>{});
} else { } else {
const res = await fetch(`/api/service_specs/` + ssid, { const res = await fetch(`/api/service_specs/` + ssid, {
method: 'GET', method: 'GET',

View File

@ -26,12 +26,14 @@
let className = ''; let className = '';
export let routeId: string | null; export let routeId: string | null;
export let sw_state: boolean; export let sw_state: {triedUpdate: boolean; hasUpdate: boolean;};
let helpLink = ""; let helpLink = "";
$: if (routeId.startsWith("/providers/new/[ptype]")) { $: if (routeId && routeId.startsWith("/providers/new/[ptype]")) {
helpLink = getHelpPathFromProvider($page.url.pathname.split("/")[3]); helpLink = getHelpPathFromProvider($page.url.pathname.split("/")[3]);
} else { } else if (routeId) {
helpLink = 'https://help.happydomain.org/' + encodeURIComponent($locale) + getHelpPathFromRoute(routeId); helpLink = 'https://help.happydomain.org/' + encodeURIComponent($locale) + getHelpPathFromRoute(routeId);
} else {
helpLink = 'https://help.happydomain.org/' + encodeURIComponent($locale);
} }
function getHelpPathFromProvider(ptype: string): string { function getHelpPathFromProvider(ptype: string): string {

View File

@ -14,7 +14,8 @@
import { t } from '$lib/translations'; import { t } from '$lib/translations';
import { toasts } from '$lib/stores/toasts'; import { toasts } from '$lib/stores/toasts';
export let data: {user: string; key: string}; export let user: string;
export let key: string;
let value = ""; let value = "";
let passwordConfirmation = ""; let passwordConfirmation = "";
let passwordState: boolean|undefined; let passwordState: boolean|undefined;
@ -34,7 +35,7 @@
if (valid && passwordState && passwordConfirmState) { if (valid && passwordState && passwordConfirmState) {
formSent = true; formSent = true;
recoverAccount(data.user, data.key, value) recoverAccount(user, key, value)
.then( .then(
() => { () => {
formSent = false; formSent = false;

View File

@ -1,4 +1,5 @@
<script lang="ts"> <script lang="ts">
// @ts-ignore
import { escape } from 'html-escaper'; import { escape } from 'html-escaper';
import { import {
ModalHeader, ModalHeader,

View File

@ -1,7 +1,8 @@
<script lang="ts"> <script lang="ts">
import { createEventDispatcher } from 'svelte'; import { createEventDispatcher } from 'svelte';
import { escape } from 'html-escaper'; // @ts-ignore // @ts-ignore
import { escape } from 'html-escaper';
import { import {
Input, Input,
InputGroup, InputGroup,

View File

@ -1,5 +1,6 @@
<script lang="ts"> <script lang="ts">
import { escape } from 'html-escaper'; // @ts-ignore // @ts-ignore
import { escape } from 'html-escaper';
import { import {
Badge, Badge,
Button, Button,

View File

@ -2,6 +2,7 @@ export interface ProviderInfos {
name: string; name: string;
description: string; description: string;
capabilities: Array<string>; capabilities: Array<string>;
helplink: string;
}; };
export function getAvailableResourceTypes(pi: ProviderInfos): Array<number> { export function getAvailableResourceTypes(pi: ProviderInfos): Array<number> {

View File

@ -18,7 +18,7 @@ export class Toast implements NewToast {
timeout: number | undefined = undefined; timeout: number | undefined = undefined;
timeoutInterval: ReturnType<typeof setTimeout> | undefined = undefined; timeoutInterval: ReturnType<typeof setTimeout> | undefined = undefined;
dismissFunc: (id: string) => void; dismissFunc: (id: string) => void;
onclick: () => void; onclick: undefined | (() => void) = undefined;
constructor(obj: NewToast, dismiss: (id: string) => void) { constructor(obj: NewToast, dismiss: (id: string) => void) {
if (obj.type !== undefined) this.type = obj.type; if (obj.type !== undefined) this.type = obj.type;

View File

@ -18,7 +18,7 @@
import { toasts } from '$lib/stores/toasts'; import { toasts } from '$lib/stores/toasts';
import { t } from '$lib/translations'; import { t } from '$lib/translations';
export let data: {route: {id: string | null;};}; export let data: {route: {id: string | null;}; sw_state: {triedUpdate: boolean; hasUpdate: boolean;};};
window.onunhandledrejection = (e) => { window.onunhandledrejection = (e) => {
if (e.reason.name == "NotAuthorizedError") { if (e.reason.name == "NotAuthorizedError") {

View File

@ -14,7 +14,7 @@ function onSWupdate(sw_state: {hasUpdate: boolean}) {
toasts.addToast({ toasts.addToast({
title: get_store_value(t)('upgrade.title'), title: get_store_value(t)('upgrade.title'),
message: get_store_value(t)('upgrade.content'), message: get_store_value(t)('upgrade.content'),
onclick: () => location.reload(true), onclick: () => location.reload(),
}); });
} }
sw_state.hasUpdate = true; sw_state.hasUpdate = true;
@ -35,6 +35,9 @@ export const load: Load = async({ fetch, route, url }) => {
registration.onupdatefound = () => { registration.onupdatefound = () => {
const installingWorker = registration.installing const installingWorker = registration.installing
if (installingWorker === null) return;
installingWorker.onstatechange = () => { installingWorker.onstatechange = () => {
if (installingWorker.state === 'installed' && navigator.serviceWorker.controller) { if (installingWorker.state === 'installed' && navigator.serviceWorker.controller) {
onSWupdate(sw_state); onSWupdate(sw_state);

View File

@ -1,7 +1,8 @@
<script lang="ts"> <script lang="ts">
import { goto } from '$app/navigation'; import { goto } from '$app/navigation';
import { escape } from 'html-escaper'; // @ts-ignore // @ts-ignore
import { escape } from 'html-escaper';
import { import {
Button, Button,
ButtonGroup, ButtonGroup,

View File

@ -13,7 +13,7 @@
import { toasts } from '$lib/stores/toasts'; import { toasts } from '$lib/stores/toasts';
let error = ""; let error = "";
export let data = { user: null, key: null }; export let data;
if (data.user || data.key) { if (data.user || data.key) {
if (!data.user || !data.key) { if (!data.user || !data.key) {

View File

@ -8,7 +8,7 @@
import RecoverAccountForm from '$lib/components/RecoverAccountForm.svelte'; import RecoverAccountForm from '$lib/components/RecoverAccountForm.svelte';
let error = ""; let error = "";
export let data = { user: "", key: "" }; export let data;
</script> </script>
<Container class="my-3"> <Container class="my-3">
@ -16,9 +16,9 @@
<Alert color="danger"> <Alert color="danger">
{error} {error}
</Alert> </Alert>
{:else if !data.user} {:else if data.user && data.key}
<ForgottenPasswordForm /> <RecoverAccountForm user={data.user} key={data.key} />
{:else} {:else}
<RecoverAccountForm {data} /> <ForgottenPasswordForm />
{/if} {/if}
</Container> </Container>