Aakansha Doshi 4 år sedan
förälder
incheckning
b5151bda5a
4 ändrade filer med 14 tillägg och 9 borttagningar
  1. 9 4
      src/components/App.tsx
  2. 1 1
      src/components/Stats.tsx
  3. 3 3
      src/networkStats.ts
  4. 1 1
      src/types.ts

+ 9 - 4
src/components/App.tsx

@@ -1,4 +1,3 @@
-// @ts-nocheck
 import { Point, simplify } from "points-on-curve";
 import React from "react";
 import { RoughCanvas } from "roughjs/bin/canvas";
@@ -854,9 +853,15 @@ class App extends React.Component<ExcalidrawProps, AppState> {
     ) {
       if (this.state.showStats && this.props.isCollaborating) {
         this.calculateNetStats();
-        navigator.connection.addEventListener("change", this.calculateNetStats);
+
+        // @ts-ignore
+        navigator?.connection?.addEventListener(
+          "change",
+          this.calculateNetStats,
+        );
       } else {
-        navigator.connection.removeEventListener(
+        // @ts-ignore
+        navigator?.connection?.removeEventListener(
           "change",
           this.calculateNetStats,
         );
@@ -990,7 +995,7 @@ class App extends React.Component<ExcalidrawProps, AppState> {
 
   private calculateNetStats = async () => {
     const speed = await getNetworkSpeed();
-    const networkSpeed = speed === -1 ? "Error!" : speed;
+    const networkSpeed = speed === "-1" ? "Error!" : speed;
     this.setState({ networkSpeed });
   };
   // Copy/paste

+ 1 - 1
src/components/Stats.tsx

@@ -30,7 +30,7 @@ export const Stats = (props: {
   setAppState: React.Component<any, AppState>["setState"];
   elements: readonly NonDeletedExcalidrawElement[];
   onClose: () => void;
-  isCollaborating: boolean;
+  isCollaborating?: boolean;
 }) => {
   const isMobile = useIsMobile();
   const [storageSizes, setStorageSizes] = useState<StorageSizes>({

+ 3 - 3
src/networkStats.ts

@@ -14,7 +14,7 @@ const calculateSpeed = (startTime: number, endTime: number) => {
   return `${speed.toFixed(2)} ${suffix[index]}`;
 };
 
-const processImage = () => {
+const processImage = (): Promise<string> => {
   return new Promise((resolve, reject) => {
     const image = new Image();
     let endTime: number;
@@ -25,13 +25,13 @@ const processImage = () => {
     };
 
     image.onerror = () => {
-      resolve(-1);
+      resolve("-1");
     };
 
     const startTime = new Date().getTime();
     image.src = `${IMAGE_URL}?t=${startTime}`; // start time acts as a cache buster so everytime new url is requested
   });
 };
-export const getNetworkSpeed = async () => {
+export const getNetworkSpeed = async (): Promise<string> => {
   return await processImage();
 };

+ 1 - 1
src/types.ts

@@ -88,7 +88,7 @@ export type AppState = {
   appearance: "light" | "dark";
   gridSize: number | null;
   viewModeEnabled: boolean;
-  networkSpeed?: string;
+  networkSpeed: string;
 
   /** top-most selected groups (i.e. does not include nested groups) */
   selectedGroupIds: { [groupId: string]: boolean };