1
0
mirror of https://github.com/element-hq/element-web.git synced 2025-12-01 09:58:03 +03:00

Conform more code to strictNullChecks (#10383

* Update matrix-widget-api

* Conform more code to `strictNullChecks`

* Iterate
This commit is contained in:
Michael Telatynski
2023-03-16 10:35:17 +00:00
committed by GitHub
parent aae9dfbb7d
commit 9c816bb720
18 changed files with 112 additions and 93 deletions

View File

@@ -18,7 +18,7 @@ import { EventType, RoomType } from "matrix-js-sdk/src/@types/event";
import { JoinRule, Preset } from "matrix-js-sdk/src/@types/partials";
import { logger } from "matrix-js-sdk/src/logger";
import { Room, RoomEvent } from "matrix-js-sdk/src/models/room";
import React, { RefObject, useCallback, useContext, useRef, useState } from "react";
import React, { MutableRefObject, useCallback, useContext, useRef, useState } from "react";
import MatrixClientContext from "../../contexts/MatrixClientContext";
import createRoom, { IOpts } from "../../createRoom";
@@ -77,11 +77,13 @@ import { ChevronFace, ContextMenuButton, useContextMenu } from "./ContextMenu";
import MainSplit from "./MainSplit";
import RightPanel from "./RightPanel";
import SpaceHierarchy, { showRoom } from "./SpaceHierarchy";
import { RoomPermalinkCreator } from "../../utils/permalinks/Permalinks";
interface IProps {
space: Room;
justCreatedOpts?: IOpts;
resizeNotifier: ResizeNotifier;
permalinkCreator: RoomPermalinkCreator;
onJoinButtonClicked(): void;
onRejectButtonClicked(): void;
}
@@ -112,7 +114,7 @@ const SpaceLandingAddButton: React.FC<{ space: Room }> = ({ space }) => {
let contextMenu: JSX.Element | null = null;
if (menuDisplayed) {
const rect = handle.current.getBoundingClientRect();
const rect = handle.current!.getBoundingClientRect();
contextMenu = (
<IconizedContextMenu
left={rect.left + window.scrollX + 0}
@@ -213,7 +215,7 @@ const SpaceLandingAddButton: React.FC<{ space: Room }> = ({ space }) => {
const SpaceLanding: React.FC<{ space: Room }> = ({ space }) => {
const cli = useContext(MatrixClientContext);
const myMembership = useMyRoomMembership(space);
const userId = cli.getUserId();
const userId = cli.getSafeUserId();
const storeIsShowingSpaceMembers = useCallback(
() =>
@@ -458,7 +460,7 @@ const SpaceSetupPublicShare: React.FC<ISpaceSetupPublicShareProps> = ({
const SpaceSetupPrivateScope: React.FC<{
space: Room;
justCreatedOpts: IOpts;
justCreatedOpts?: IOpts;
onFinished(createRooms: boolean): void;
}> = ({ space, justCreatedOpts, onFinished }) => {
return (
@@ -509,7 +511,7 @@ const SpaceSetupPrivateInvite: React.FC<{
const [busy, setBusy] = useState(false);
const [error, setError] = useState("");
const numFields = 3;
const fieldRefs: RefObject<Field>[] = [useRef(), useRef(), useRef()];
const fieldRefs: MutableRefObject<Field | undefined>[] = [useRef(), useRef(), useRef()];
const [emailAddresses, setEmailAddress] = useStateArray(numFields, "");
const fields = new Array(numFields).fill(0).map((x, i) => {
const name = "emailAddress" + i;
@@ -647,7 +649,7 @@ export default class SpaceRoomView extends React.PureComponent<IProps, IState> {
if (showSetup) {
phase =
this.props.justCreatedOpts.createOpts.preset === Preset.PublicChat
this.props.justCreatedOpts!.createOpts?.preset === Preset.PublicChat
? Phase.PublicCreateRooms
: Phase.PrivateScope;
}
@@ -817,8 +819,12 @@ export default class SpaceRoomView extends React.PureComponent<IProps, IState> {
public render(): React.ReactNode {
const rightPanel =
this.state.showRightPanel && this.state.phase === Phase.Landing ? (
<RightPanel room={this.props.space} resizeNotifier={this.props.resizeNotifier} />
) : null;
<RightPanel
room={this.props.space}
resizeNotifier={this.props.resizeNotifier}
permalinkCreator={this.props.permalinkCreator}
/>
) : undefined;
return (
<main className="mx_SpaceRoomView">