Comply with new member-delimiter-style rule

Just `eslint --fix` with rule from
https://github.com/matrix-org/eslint-plugin-matrix-org/pull/9 in place
This commit is contained in:
David Baker 2021-07-01 23:23:03 +01:00
parent bd470f8897
commit 80f5232217
41 changed files with 139 additions and 139 deletions

View file

@ -124,9 +124,9 @@ interface ThirdpartyLookupResponseFields {
} }
interface ThirdpartyLookupResponse { interface ThirdpartyLookupResponse {
userid: string, userid: string;
protocol: string, protocol: string;
fields: ThirdpartyLookupResponseFields, fields: ThirdpartyLookupResponseFields;
} }
// Unlike 'CallType' in js-sdk, this one includes screen sharing // Unlike 'CallType' in js-sdk, this one includes screen sharing

View file

@ -256,7 +256,7 @@ interface ICreateRoomEvent extends IEvent {
num_users: number; num_users: number;
is_encrypted: boolean; is_encrypted: boolean;
is_public: boolean; is_public: boolean;
} };
} }
interface IJoinRoomEvent extends IEvent { interface IJoinRoomEvent extends IEvent {

View file

@ -42,8 +42,8 @@ let secretStorageBeingAccessed = false;
let nonInteractive = false; let nonInteractive = false;
let dehydrationCache: { let dehydrationCache: {
key?: Uint8Array, key?: Uint8Array;
keyInfo?: ISecretStorageKeyInfo, keyInfo?: ISecretStorageKeyInfo;
} = {}; } = {};
function isCachingAllowed(): boolean { function isCachingAllowed(): boolean {

View file

@ -48,13 +48,13 @@ export interface Policy {
} }
export type Policies = { export type Policies = {
[policy: string]: Policy, [policy: string]: Policy;
}; };
export type TermsInteractionCallback = ( export type TermsInteractionCallback = (
policiesAndServicePairs: { policiesAndServicePairs: {
service: Service, service: Service;
policies: Policies, policies: Policies;
}[], }[],
agreedUrls: string[], agreedUrls: string[],
extraClassNames?: string, extraClassNames?: string,
@ -180,8 +180,8 @@ export async function startTermsFlow(
export function dialogTermsInteractionCallback( export function dialogTermsInteractionCallback(
policiesAndServicePairs: { policiesAndServicePairs: {
service: Service, service: Service;
policies: { [policy: string]: Policy }, policies: { [policy: string]: Policy };
}[], }[],
agreedUrls: string[], agreedUrls: string[],
extraClassNames?: string, extraClassNames?: string,

View file

@ -21,8 +21,8 @@ interface IProps extends Omit<HTMLAttributes<HTMLDivElement>, "onScroll"> {
className?: string; className?: string;
onScroll?: (event: Event) => void; onScroll?: (event: Event) => void;
onWheel?: (event: WheelEvent) => void; onWheel?: (event: WheelEvent) => void;
style?: React.CSSProperties style?: React.CSSProperties;
tabIndex?: number, tabIndex?: number;
wrappedRef?: (ref: HTMLDivElement) => void; wrappedRef?: (ref: HTMLDivElement) => void;
} }

View file

@ -37,7 +37,7 @@ import ResizeNotifier from '../../utils/ResizeNotifier';
interface IProps { interface IProps {
roomId: string; roomId: string;
onClose: () => void; onClose: () => void;
resizeNotifier: ResizeNotifier resizeNotifier: ResizeNotifier;
} }
interface IState { interface IState {

View file

@ -87,8 +87,8 @@ interface IProps {
config: { config: {
piwik: { piwik: {
policyUrl: string; policyUrl: string;
}, };
[key: string]: any, [key: string]: any;
}; };
currentUserId?: string; currentUserId?: string;
currentGroupId?: string; currentGroupId?: string;

View file

@ -203,7 +203,7 @@ interface IState {
resizeNotifier: ResizeNotifier; resizeNotifier: ResizeNotifier;
serverConfig?: ValidatedServerConfig; serverConfig?: ValidatedServerConfig;
ready: boolean; ready: boolean;
threepidInvite?: IThreepidInvite, threepidInvite?: IThreepidInvite;
roomOobData?: object; roomOobData?: object;
pendingInitialSync?: boolean; pendingInitialSync?: boolean;
justRegistered?: boolean; justRegistered?: boolean;

View file

@ -24,7 +24,7 @@ interface IProps {
} }
interface IState { interface IState {
toasts: ComponentClass[], toasts: ComponentClass[];
} }
@replaceableComponent("structures.NonUrgentToastContainer") @replaceableComponent("structures.NonUrgentToastContainer")

View file

@ -94,7 +94,7 @@ if (DEBUG) {
} }
interface IProps { interface IProps {
threepidInvite: IThreepidInvite, threepidInvite: IThreepidInvite;
oobData?: IOOBData; oobData?: IOOBData;
resizeNotifier: ResizeNotifier; resizeNotifier: ResizeNotifier;

View file

@ -58,7 +58,7 @@ export interface ISpaceSummaryRoom {
avatar_url?: string; avatar_url?: string;
guest_can_join: boolean; guest_can_join: boolean;
name?: string; name?: string;
num_joined_members: number num_joined_members: number;
room_id: string; room_id: string;
topic?: string; topic?: string;
world_readable: boolean; world_readable: boolean;

View file

@ -125,7 +125,7 @@ interface IProps {
onReadMarkerUpdated?(): void; onReadMarkerUpdated?(): void;
// callback which is called when we wish to paginate the timeline window. // callback which is called when we wish to paginate the timeline window.
onPaginationRequest?(timelineWindow: TimelineWindow, direction: string, size: number): Promise<boolean>, onPaginationRequest?(timelineWindow: TimelineWindow, direction: string, size: number): Promise<boolean>;
} }
interface IState { interface IState {

View file

@ -49,7 +49,7 @@ interface IProps {
// for operations like uploading cross-signing keys). // for operations like uploading cross-signing keys).
onLoggedIn(params: { onLoggedIn(params: {
userId: string; userId: string;
deviceId: string deviceId: string;
homeserverUrl: string; homeserverUrl: string;
identityServerUrl?: string; identityServerUrl?: string;
accessToken: string; accessToken: string;

View file

@ -49,7 +49,7 @@ interface IProps {
fragmentAfterLogin?: string; fragmentAfterLogin?: string;
// Called when the SSO login completes // Called when the SSO login completes
onTokenLoginCompleted: () => void, onTokenLoginCompleted: () => void;
} }
interface IState { interface IState {

View file

@ -52,8 +52,8 @@ interface IProps {
interface IState { interface IState {
fieldValid: Partial<Record<LoginField, boolean>>; fieldValid: Partial<Record<LoginField, boolean>>;
loginType: LoginField.Email | LoginField.MatrixId | LoginField.Phone, loginType: LoginField.Email | LoginField.MatrixId | LoginField.Phone;
password: "", password: "";
} }
enum LoginField { enum LoginField {

View file

@ -29,7 +29,7 @@ interface IProps {
// group member object. Supply either this or 'member' // group member object. Supply either this or 'member'
groupMember: GroupMemberType; groupMember: GroupMemberType;
// needed if a group member is specified // needed if a group member is specified
matrixClient?: MatrixClient, matrixClient?: MatrixClient;
action: string; // eg. 'Ban' action: string; // eg. 'Ban'
title: string; // eg. 'Ban this user?' title: string; // eg. 'Ban this user?'

View file

@ -70,9 +70,9 @@ import GenericTextContextMenu from "../context_menus/GenericTextContextMenu";
/* eslint-disable camelcase */ /* eslint-disable camelcase */
interface IRecentUser { interface IRecentUser {
userId: string, userId: string;
user: RoomMember, user: RoomMember;
lastActive: number, lastActive: number;
} }
export const KIND_DM = "dm"; export const KIND_DM = "dm";
@ -330,16 +330,16 @@ interface IInviteDialogProps {
// The kind of invite being performed. Assumed to be KIND_DM if // The kind of invite being performed. Assumed to be KIND_DM if
// not provided. // not provided.
kind: string, kind: string;
// The room ID this dialog is for. Only required for KIND_INVITE. // The room ID this dialog is for. Only required for KIND_INVITE.
roomId: string, roomId: string;
// The call to transfer. Only required for KIND_CALL_TRANSFER. // The call to transfer. Only required for KIND_CALL_TRANSFER.
call: MatrixCall, call: MatrixCall;
// Initial value to populate the filter with // Initial value to populate the filter with
initialText: string, initialText: string;
} }
interface IInviteDialogState { interface IInviteDialogState {
@ -356,8 +356,8 @@ interface IInviteDialogState {
consultFirst: boolean; consultFirst: boolean;
// These two flags are used for the 'Go' button to communicate what is going on. // These two flags are used for the 'Go' button to communicate what is going on.
busy: boolean, busy: boolean;
errorText: string, errorText: string;
} }
@replaceableComponent("views.dialogs.InviteDialog") @replaceableComponent("views.dialogs.InviteDialog")

View file

@ -46,19 +46,19 @@ interface ITermsDialogProps {
* Array of [Service, policies] pairs, where policies is the response from the * Array of [Service, policies] pairs, where policies is the response from the
* /terms endpoint for that service * /terms endpoint for that service
*/ */
policiesAndServicePairs: any[], policiesAndServicePairs: any[];
/** /**
* urls that the user has already agreed to * urls that the user has already agreed to
*/ */
agreedUrls?: string[], agreedUrls?: string[];
/** /**
* Called with: * Called with:
* * success {bool} True if the user accepted any douments, false if cancelled * * success {bool} True if the user accepted any douments, false if cancelled
* * agreedUrls {string[]} List of agreed URLs * * agreedUrls {string[]} List of agreed URLs
*/ */
onFinished: (success: boolean, agreedUrls?: string[]) => void, onFinished: (success: boolean, agreedUrls?: string[]) => void;
} }
interface IState { interface IState {

View file

@ -29,7 +29,7 @@ interface IProps {
// The minimum number of events needed to trigger summarisation // The minimum number of events needed to trigger summarisation
threshold?: number; threshold?: number;
// Whether or not to begin with state.expanded=true // Whether or not to begin with state.expanded=true
startExpanded?: boolean, startExpanded?: boolean;
// The list of room members for which to show avatars next to the summary // The list of room members for which to show avatars next to the summary
summaryMembers?: RoomMember[]; summaryMembers?: RoomMember[];
// The text to show as the summary of this event list // The text to show as the summary of this event list

View file

@ -44,31 +44,31 @@ const ZOOM_COEFFICIENT = 0.0025;
const ZOOM_DISTANCE = 10; const ZOOM_DISTANCE = 10;
interface IProps { interface IProps {
src: string, // the source of the image being displayed src: string; // the source of the image being displayed
name?: string, // the main title ('name') for the image name?: string; // the main title ('name') for the image
link?: string, // the link (if any) applied to the name of the image link?: string; // the link (if any) applied to the name of the image
width?: number, // width of the image src in pixels width?: number; // width of the image src in pixels
height?: number, // height of the image src in pixels height?: number; // height of the image src in pixels
fileSize?: number, // size of the image src in bytes fileSize?: number; // size of the image src in bytes
onFinished(): void, // callback when the lightbox is dismissed onFinished(): void; // callback when the lightbox is dismissed
// the event (if any) that the Image is displaying. Used for event-specific stuff like // the event (if any) that the Image is displaying. Used for event-specific stuff like
// redactions, senders, timestamps etc. Other descriptors are taken from the explicit // redactions, senders, timestamps etc. Other descriptors are taken from the explicit
// properties above, which let us use lightboxes to display images which aren't associated // properties above, which let us use lightboxes to display images which aren't associated
// with events. // with events.
mxEvent: MatrixEvent, mxEvent: MatrixEvent;
permalinkCreator: RoomPermalinkCreator, permalinkCreator: RoomPermalinkCreator;
} }
interface IState { interface IState {
zoom: number, zoom: number;
minZoom: number, minZoom: number;
maxZoom: number, maxZoom: number;
rotation: number, rotation: number;
translationX: number, translationX: number;
translationY: number, translationY: number;
moving: boolean, moving: boolean;
contextMenuDisplayed: boolean, contextMenuDisplayed: boolean;
} }
@replaceableComponent("views.elements.ImageView") @replaceableComponent("views.elements.ImageView")

View file

@ -30,14 +30,14 @@ function languageMatchesSearchQuery(query, language) {
} }
interface SpellCheckLanguagesDropdownIProps { interface SpellCheckLanguagesDropdownIProps {
className: string, className: string;
value: string, value: string;
onOptionChange(language: string), onOptionChange(language: string);
} }
interface SpellCheckLanguagesDropdownIState { interface SpellCheckLanguagesDropdownIState {
searchQuery: string, searchQuery: string;
languages: any, languages: any;
} }
@replaceableComponent("views.elements.SpellCheckLanguagesDropdown") @replaceableComponent("views.elements.SpellCheckLanguagesDropdown")

View file

@ -25,7 +25,7 @@ import { replaceableComponent } from "../../../utils/replaceableComponent";
interface IProps { interface IProps {
categories: ICategory[]; categories: ICategory[];
onAnchorClick(id: CategoryKey): void onAnchorClick(id: CategoryKey): void;
} }
@replaceableComponent("views.emojipicker.Header") @replaceableComponent("views.emojipicker.Header")

View file

@ -28,7 +28,7 @@ import EventTileBubble from "./EventTileBubble";
import { replaceableComponent } from "../../../utils/replaceableComponent"; import { replaceableComponent } from "../../../utils/replaceableComponent";
interface IProps { interface IProps {
mxEvent: MatrixEvent mxEvent: MatrixEvent;
} }
@replaceableComponent("views.messages.MKeyVerificationRequest") @replaceableComponent("views.messages.MKeyVerificationRequest")

View file

@ -67,7 +67,7 @@ interface IProps {
replacingEventId?: string; replacingEventId?: string;
/* callback for when our widget has loaded */ /* callback for when our widget has loaded */
onHeightChanged(): void, onHeightChanged(): void;
} }
interface IState { interface IState {

View file

@ -32,32 +32,32 @@ import { throttle } from 'lodash';
interface IProps { interface IProps {
// js-sdk room object // js-sdk room object
room: Room, room: Room;
userId: string, userId: string;
showApps: boolean, // Render apps showApps: boolean; // Render apps
// maxHeight attribute for the aux panel and the video // maxHeight attribute for the aux panel and the video
// therein // therein
maxHeight: number, maxHeight: number;
// a callback which is called when the content of the aux panel changes // a callback which is called when the content of the aux panel changes
// content in a way that is likely to make it change size. // content in a way that is likely to make it change size.
onResize: () => void, onResize: () => void;
fullHeight: boolean, fullHeight: boolean;
resizeNotifier: ResizeNotifier, resizeNotifier: ResizeNotifier;
} }
interface Counter { interface Counter {
title: string, title: string;
value: number, value: number;
link: string, link: string;
severity: string, severity: string;
stateKey: string, stateKey: string;
} }
interface IState { interface IState {
counters: Counter[], counters: Counter[];
} }
@replaceableComponent("views.rooms.AuxPanel") @replaceableComponent("views.rooms.AuxPanel")

View file

@ -287,10 +287,10 @@ interface IProps {
permalinkCreator?: RoomPermalinkCreator; permalinkCreator?: RoomPermalinkCreator;
// Symbol of the root node // Symbol of the root node
as?: string as?: string;
// whether or not to always show timestamps // whether or not to always show timestamps
alwaysShowTimestamps?: boolean alwaysShowTimestamps?: boolean;
} }
interface IState { interface IState {

View file

@ -22,7 +22,7 @@ import { useEventEmitter } from "../../../hooks/useEventEmitter";
import SpaceStore from "../../../stores/SpaceStore"; import SpaceStore from "../../../stores/SpaceStore";
interface IProps { interface IProps {
onVisibilityChange?: () => void onVisibilityChange?: () => void;
} }
const RoomListNumResults: React.FC<IProps> = ({ onVisibilityChange }) => { const RoomListNumResults: React.FC<IProps> = ({ onVisibilityChange }) => {

View file

@ -21,17 +21,17 @@ import { _t } from "../../../languageHandler";
import { replaceableComponent } from "../../../utils/replaceableComponent"; import { replaceableComponent } from "../../../utils/replaceableComponent";
interface ExistingSpellCheckLanguageIProps { interface ExistingSpellCheckLanguageIProps {
language: string, language: string;
onRemoved(language: string), onRemoved(language: string);
} }
interface SpellCheckLanguagesIProps { interface SpellCheckLanguagesIProps {
languages: Array<string>, languages: Array<string>;
onLanguagesChange(languages: Array<string>), onLanguagesChange(languages: Array<string>);
} }
interface SpellCheckLanguagesIState { interface SpellCheckLanguagesIState {
newLanguage: string, newLanguage: string;
} }
export class ExistingSpellCheckLanguage extends React.Component<ExistingSpellCheckLanguageIProps> { export class ExistingSpellCheckLanguage extends React.Component<ExistingSpellCheckLanguageIProps> {

View file

@ -23,7 +23,7 @@ import Field from "../elements/Field";
interface IProps { interface IProps {
avatarUrl?: string; avatarUrl?: string;
avatarDisabled?: boolean; avatarDisabled?: boolean;
name?: string, name?: string;
nameDisabled?: boolean; nameDisabled?: boolean;
topic?: string; topic?: string;
topicDisabled?: boolean; topicDisabled?: boolean;

View file

@ -20,7 +20,7 @@ import { logger } from 'matrix-js-sdk/src/logger';
import MediaDeviceHandler, { MediaDeviceHandlerEvent } from "../../../MediaDeviceHandler"; import MediaDeviceHandler, { MediaDeviceHandlerEvent } from "../../../MediaDeviceHandler";
interface IProps { interface IProps {
feed: CallFeed, feed: CallFeed;
} }
export default class AudioFeed extends React.Component<IProps> { export default class AudioFeed extends React.Component<IProps> {

View file

@ -35,10 +35,10 @@ import { replaceableComponent } from "../../../utils/replaceableComponent";
interface IProps { interface IProps {
// The call for us to display // The call for us to display
call: MatrixCall, call: MatrixCall;
// Another ongoing call to display information about // Another ongoing call to display information about
secondaryCall?: MatrixCall, secondaryCall?: MatrixCall;
// a callback which is called when the content in the CallView changes // a callback which is called when the content in the CallView changes
// in a way that is likely to cause a resize. // in a way that is likely to cause a resize.
@ -52,15 +52,15 @@ interface IProps {
} }
interface IState { interface IState {
isLocalOnHold: boolean, isLocalOnHold: boolean;
isRemoteOnHold: boolean, isRemoteOnHold: boolean;
micMuted: boolean, micMuted: boolean;
vidMuted: boolean, vidMuted: boolean;
callState: CallState, callState: CallState;
controlsVisible: boolean, controlsVisible: boolean;
showMoreMenu: boolean, showMoreMenu: boolean;
showDialpad: boolean, showDialpad: boolean;
feeds: CallFeed[], feeds: CallFeed[];
} }
function getFullScreenElement() { function getFullScreenElement() {

View file

@ -25,16 +25,16 @@ import { replaceableComponent } from "../../../utils/replaceableComponent";
interface IProps { interface IProps {
// What room we should display the call for // What room we should display the call for
roomId: string, roomId: string;
// maxHeight style attribute for the video panel // maxHeight style attribute for the video panel
maxVideoHeight?: number; maxVideoHeight?: number;
resizeNotifier: ResizeNotifier, resizeNotifier: ResizeNotifier;
} }
interface IState { interface IState {
call: MatrixCall, call: MatrixCall;
} }
/* /*

View file

@ -24,9 +24,9 @@ import MemberAvatar from "../avatars/MemberAvatar";
import { replaceableComponent } from "../../../utils/replaceableComponent"; import { replaceableComponent } from "../../../utils/replaceableComponent";
interface IProps { interface IProps {
call: MatrixCall, call: MatrixCall;
feed: CallFeed, feed: CallFeed;
// Whether this call view is for picture-in-picture mode // Whether this call view is for picture-in-picture mode
// otherwise, it's the larger call view when viewing the room the call is in. // otherwise, it's the larger call view when viewing the room the call is in.
@ -36,7 +36,7 @@ interface IProps {
// a callback which is called when the video element is resized // a callback which is called when the video element is resized
// due to a change in video metadata // due to a change in video metadata
onResize?: (e: Event) => void, onResize?: (e: Event) => void;
} }
interface IState { interface IState {

View file

@ -69,11 +69,11 @@ function setupEncryptionNeeded(kind: SetupEncryptionKind): boolean {
export interface ISecurityCustomisations { export interface ISecurityCustomisations {
examineLoginResponse?: typeof examineLoginResponse; examineLoginResponse?: typeof examineLoginResponse;
persistCredentials?: typeof persistCredentials; persistCredentials?: typeof persistCredentials;
createSecretStorageKey?: typeof createSecretStorageKey, createSecretStorageKey?: typeof createSecretStorageKey;
getSecretStorageKey?: typeof getSecretStorageKey, getSecretStorageKey?: typeof getSecretStorageKey;
catchAccessSecretStorageError?: typeof catchAccessSecretStorageError, catchAccessSecretStorageError?: typeof catchAccessSecretStorageError;
setupEncryptionNeeded?: typeof setupEncryptionNeeded, setupEncryptionNeeded?: typeof setupEncryptionNeeded;
getDehydrationKey?: typeof getDehydrationKey, getDehydrationKey?: typeof getDehydrationKey;
/** /**
* When false, disables the post-login UI from showing. If there's * When false, disables the post-login UI from showing. If there's
@ -83,7 +83,7 @@ export interface ISecurityCustomisations {
* encryption is set up some other way which would circumvent the default * encryption is set up some other way which would circumvent the default
* UI, such as by presenting alternative UI. * UI, such as by presenting alternative UI.
*/ */
SHOW_ENCRYPTION_SETUP_UI?: boolean, // default true SHOW_ENCRYPTION_SETUP_UI?: boolean; // default true
} }
// A real customisation module will define and export one or more of the // A real customisation module will define and export one or more of the

View file

@ -20,7 +20,7 @@ import { ActionPayload } from "../payloads";
import { Action } from "../actions"; import { Action } from "../actions";
interface IBaseComposerInsertPayload extends ActionPayload { interface IBaseComposerInsertPayload extends ActionPayload {
action: Action.ComposerInsert, action: Action.ComposerInsert;
} }
interface IComposerInsertMentionPayload extends IBaseComposerInsertPayload { interface IComposerInsertMentionPayload extends IBaseComposerInsertPayload {

View file

@ -20,34 +20,34 @@ export type ConfettiOptions = {
/** /**
* max confetti count * max confetti count
*/ */
maxCount: number, maxCount: number;
/** /**
* particle animation speed * particle animation speed
*/ */
speed: number, speed: number;
/** /**
* the confetti animation frame interval in milliseconds * the confetti animation frame interval in milliseconds
*/ */
frameInterval: number, frameInterval: number;
/** /**
* the alpha opacity of the confetti (between 0 and 1, where 1 is opaque and 0 is invisible) * the alpha opacity of the confetti (between 0 and 1, where 1 is opaque and 0 is invisible)
*/ */
alpha: number, alpha: number;
/** /**
* use gradient instead of solid particle color * use gradient instead of solid particle color
*/ */
gradient: boolean, gradient: boolean;
}; };
type ConfettiParticle = { type ConfettiParticle = {
color: string, color: string;
color2: string, color2: string;
x: number, x: number;
y: number, y: number;
diameter: number, diameter: number;
tilt: number, tilt: number;
tiltAngleIncrement: number, tiltAngleIncrement: number;
tiltAngle: number, tiltAngle: number;
}; };
export const DefaultOptions: ConfettiOptions = { export const DefaultOptions: ConfettiOptions = {

View file

@ -17,15 +17,15 @@ limitations under the License.
import { PerformanceEntryNames } from "./entry-names"; import { PerformanceEntryNames } from "./entry-names";
interface GetEntriesOptions { interface GetEntriesOptions {
name?: string, name?: string;
type?: string, type?: string;
} }
type PerformanceCallbackFunction = (entry: PerformanceEntry[]) => void; type PerformanceCallbackFunction = (entry: PerformanceEntry[]) => void;
interface PerformanceDataListener { interface PerformanceDataListener {
entryNames?: string[], entryNames?: string[];
callback: PerformanceCallbackFunction callback: PerformanceCallbackFunction;
} }
export default class PerformanceMonitor { export default class PerformanceMonitor {

View file

@ -27,10 +27,10 @@ const TYPING_SERVER_TIMEOUT = 30000;
export default class TypingStore { export default class TypingStore {
private typingStates: { private typingStates: {
[roomId: string]: { [roomId: string]: {
isTyping: boolean, isTyping: boolean;
userTimer: Timer, userTimer: Timer;
serverTimer: Timer, serverTimer: Timer;
}, };
}; };
constructor() { constructor() {

View file

@ -26,8 +26,8 @@ import { WidgetType } from "../widgets/WidgetType";
class WidgetEchoStore extends EventEmitter { class WidgetEchoStore extends EventEmitter {
private roomWidgetEcho: { private roomWidgetEcho: {
[roomId: string]: { [roomId: string]: {
[widgetId: string]: IWidget, [widgetId: string]: IWidget;
}, };
}; };
constructor() { constructor() {

View file

@ -152,7 +152,7 @@ export function objectClone<O extends {}>(obj: O): O {
export function objectFromEntries<K, V>(entries: Iterable<[K, V]>): {[k: K]: V} { export function objectFromEntries<K, V>(entries: Iterable<[K, V]>): {[k: K]: V} {
const obj: { const obj: {
// @ts-ignore - same as return type // @ts-ignore - same as return type
[k: K]: V} = {}; [k: K]: V;} = {};
for (const e of entries) { for (const e of entries) {
// @ts-ignore - same as return type // @ts-ignore - same as return type
obj[e[0]] = e[1]; obj[e[0]] = e[1];

View file

@ -17,10 +17,10 @@ limitations under the License.
import { isKeyComboMatch, KeyCombo } from '../src/KeyBindingsManager'; import { isKeyComboMatch, KeyCombo } from '../src/KeyBindingsManager';
function mockKeyEvent(key: string, modifiers?: { function mockKeyEvent(key: string, modifiers?: {
ctrlKey?: boolean, ctrlKey?: boolean;
altKey?: boolean, altKey?: boolean;
shiftKey?: boolean, shiftKey?: boolean;
metaKey?: boolean metaKey?: boolean;
}): KeyboardEvent { }): KeyboardEvent {
return { return {
key, key,