]> Untitled Git - lemmy-ui.git/commitdiff
Merge branch 'main' into route-data-refactor
authorSleeplessOne1917 <abias1122@gmail.com>
Sat, 17 Jun 2023 02:22:36 +0000 (02:22 +0000)
committerGitHub <noreply@github.com>
Sat, 17 Jun 2023 02:22:36 +0000 (02:22 +0000)
1  2 
src/shared/utils.ts

diff --combined src/shared/utils.ts
index 7007a214ffdeb67a48338ae3b6ed2b5dae29ee38,4b8dd0ad2e06f170e81592d09abfdf0b4d39fd37..c7fbca6b5654db597b098c452af5dc6ed522273b
@@@ -43,15 -43,8 +43,15 @@@ import tippy from "tippy.js"
  import Toastify from "toastify-js";
  import { getHttpBase } from "./env";
  import { i18n } from "./i18next";
 -import { CommentNodeI, DataType, IsoData, VoteType } from "./interfaces";
 +import {
 +  CommentNodeI,
 +  DataType,
 +  IsoData,
 +  RouteData,
 +  VoteType,
 +} from "./interfaces";
  import { HttpService, UserService } from "./services";
 +import { RequestState } from "./services/HttpService";
  
  let Tribute: any;
  if (isBrowser()) {
@@@ -334,7 -327,12 +334,12 @@@ export function isVideo(url: string) 
  }
  
  export function validURL(str: string) {
-   return !!new URL(str);
+   try {
+     new URL(str);
+     return true;
+   } catch {
+     return false;
+   }
  }
  
  export function validInstanceTLD(str: string) {
@@@ -1152,7 -1150,7 +1157,7 @@@ export function isBrowser() 
    return typeof window !== "undefined";
  }
  
 -export function setIsoData(context: any): IsoData {
 +export function setIsoData<T extends RouteData>(context: any): IsoData<T> {
    // If its the browser, you need to deserialize the data from the window
    if (isBrowser()) {
      return window.isoData;
@@@ -1482,10 -1480,6 +1487,10 @@@ export function newVote(voteType: VoteT
    }
  }
  
 +export type RouteDataResponse<T extends Record<string, any>> = {
 +  [K in keyof T]: RequestState<T[K]>;
 +};
 +
  function sleep(millis: number): Promise<void> {
    return new Promise(resolve => setTimeout(resolve, millis));
  }