This commit is contained in:
Aakansha Doshi 2021-02-06 20:08:30 +05:30
parent 8157c84d11
commit b5151bda5a
4 changed files with 14 additions and 9 deletions

View File

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

View File

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

View File

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

View File

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