Make more of the codebase conform to strict types (#10857)

This commit is contained in:
Michael Telatynski 2023-05-16 14:25:43 +01:00 committed by GitHub
parent 7f017a84c2
commit 6a3f59cc76
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
45 changed files with 127 additions and 121 deletions

View file

@ -28,7 +28,7 @@ interface IProps extends Omit<BaseProps, "matrixClient" | "children" | "onFinish
specificLabel: string;
noneLabel?: string;
warningMessage?: string;
onFinished(success: boolean, reason?: string, rooms?: Room[]): void;
onFinished(success?: boolean, reason?: string, rooms?: Room[]): void;
spaceChildFilter?(child: Room): boolean;
}
@ -61,7 +61,7 @@ const ConfirmSpaceUserActionDialog: React.FC<IProps> = ({
return (
<ConfirmUserActionDialog
{...props}
onFinished={(success: boolean, reason?: string) => {
onFinished={(success?: boolean, reason?: string) => {
onFinished(success, reason, roomsToLeave);
}}
className="mx_ConfirmSpaceUserActionDialog"

View file

@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import React, { ReactNode, KeyboardEvent } from "react";
import React, { ReactNode } from "react";
import classNames from "classnames";
import { _t } from "../../../languageHandler";
@ -30,7 +30,7 @@ interface IProps {
button?: boolean | string;
hasCloseButton?: boolean;
fixedWidth?: boolean;
onKeyDown?(event: KeyboardEvent): void;
onKeyDown?(event: KeyboardEvent | React.KeyboardEvent): void;
onFinished(): void;
}

View file

@ -76,7 +76,7 @@ export default class MessageEditHistoryDialog extends React.PureComponent<IProps
result = await client.relations(roomId, eventId, RelationType.Replace, EventType.RoomMessage, opts);
} catch (error) {
// log if the server returned an error
if (error.errcode) {
if (error instanceof MatrixError && error.errcode) {
logger.error("fetching /relations failed with error", error);
}
this.setState({ error: error as MatrixError }, () => reject(error));

View file

@ -20,7 +20,7 @@ import { logger } from "matrix-js-sdk/src/logger";
import AutoDiscoveryUtils from "../../../utils/AutoDiscoveryUtils";
import BaseDialog from "./BaseDialog";
import { _t } from "../../../languageHandler";
import { _t, UserFriendlyError } from "../../../languageHandler";
import AccessibleButton from "../elements/AccessibleButton";
import SdkConfig from "../../../SdkConfig";
import Field from "../elements/Field";
@ -113,7 +113,7 @@ export default class ServerPickerDialog extends React.PureComponent<IProps, ISta
const stateForError = AutoDiscoveryUtils.authComponentStateForError(e);
if (stateForError.serverErrorIsFatal) {
let error = _t("Unable to validate homeserver");
if (e.translatedMessage) {
if (e instanceof UserFriendlyError && e.translatedMessage) {
error = e.translatedMessage;
}
return { error };

View file

@ -54,12 +54,13 @@ export const stateKeyField = (defaultValue?: string): IFieldDef => ({
});
const validateEventContent = withValidation<any, Error | undefined>({
deriveData({ value }) {
async deriveData({ value }) {
try {
JSON.parse(value!);
} catch (e) {
return e;
return e as Error;
}
return undefined;
},
rules: [
{

View file

@ -21,7 +21,7 @@ import BaseDialog from "../BaseDialog";
import { _t } from "../../../../languageHandler";
import { SetupEncryptionStore, Phase } from "../../../../stores/SetupEncryptionStore";
function iconFromPhase(phase: Phase): string {
function iconFromPhase(phase?: Phase): string {
if (phase === Phase.Done) {
return require("../../../../../res/img/e2e/verified-deprecated.svg").default;
} else {

View file

@ -21,17 +21,7 @@ import { IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces";
import { IPublicRoomsChunkRoom, MatrixClient, RoomMember, RoomType } from "matrix-js-sdk/src/matrix";
import { Room } from "matrix-js-sdk/src/models/room";
import { normalize } from "matrix-js-sdk/src/utils";
import React, {
ChangeEvent,
KeyboardEvent,
RefObject,
useCallback,
useContext,
useEffect,
useMemo,
useRef,
useState,
} from "react";
import React, { ChangeEvent, RefObject, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
import sanitizeHtml from "sanitize-html";
import { KeyBindingAction } from "../../../../accessibility/KeyboardShortcuts";
@ -1067,7 +1057,7 @@ const SpotlightDialog: React.FC<IProps> = ({ initialText = "", initialFilter = n
);
}
const onDialogKeyDown = (ev: KeyboardEvent): void => {
const onDialogKeyDown = (ev: KeyboardEvent | React.KeyboardEvent): void => {
const navigationAction = getKeyBindingsManager().getNavigationAction(ev);
switch (navigationAction) {
case KeyBindingAction.FilterRooms:
@ -1139,7 +1129,7 @@ const SpotlightDialog: React.FC<IProps> = ({ initialText = "", initialFilter = n
}
};
const onKeyDown = (ev: KeyboardEvent): void => {
const onKeyDown = (ev: React.KeyboardEvent): void => {
const action = getKeyBindingsManager().getAccessibilityAction(ev);
switch (action) {