Iterate PR, merge types with @types/PushRules

pull/21833/head
Michael Telatynski 2021-08-10 11:03:03 +01:00
parent cd1b315ed6
commit d90321d813
4 changed files with 14 additions and 13 deletions

View File

@ -86,7 +86,7 @@ import { randomUppercaseString, randomLowercaseString } from "matrix-js-sdk/src/
import EventEmitter from 'events'; import EventEmitter from 'events';
import SdkConfig from './SdkConfig'; import SdkConfig from './SdkConfig';
import { ensureDMExists, findDMForUser } from './createRoom'; import { ensureDMExists, findDMForUser } from './createRoom';
import { IPushRule, RuleId, TweakName, Tweaks } from "matrix-js-sdk/src/@types/PushRules"; import { RuleId, TweakName, Tweaks } from "matrix-js-sdk/src/@types/PushRules";
import { PushProcessor } from 'matrix-js-sdk/src/pushprocessor'; import { PushProcessor } from 'matrix-js-sdk/src/pushprocessor';
import { WidgetLayoutStore, Container } from './stores/widgets/WidgetLayoutStore'; import { WidgetLayoutStore, Container } from './stores/widgets/WidgetLayoutStore';
import { getIncomingCallToastKey } from './toasts/IncomingCallToast'; import { getIncomingCallToastKey } from './toasts/IncomingCallToast';
@ -484,7 +484,7 @@ export default class CallHandler extends EventEmitter {
switch (newState) { switch (newState) {
case CallState.Ringing: { case CallState.Ringing: {
const incomingCallPushRule = ( const incomingCallPushRule = (
new PushProcessor(MatrixClientPeg.get()).getPushRuleById(RuleId.IncomingCall) as IPushRule new PushProcessor(MatrixClientPeg.get()).getPushRuleById(RuleId.IncomingCall)
); );
const pushRuleEnabled = incomingCallPushRule?.enabled; const pushRuleEnabled = incomingCallPushRule?.enabled;
const tweakSetToRing = incomingCallPushRule?.actions.some((action: Tweaks) => ( const tweakSetToRing = incomingCallPushRule?.actions.some((action: Tweaks) => (

View File

@ -35,7 +35,7 @@ interface IProps {
// matrix client to use for UI auth requests // matrix client to use for UI auth requests
matrixClient: MatrixClient; matrixClient: MatrixClient;
// response from initial request. If not supplied, will do a request on mount. // response from initial request. If not supplied, will do a request on mount.
authData: IAuthData; authData?: IAuthData;
// Inputs provided by the user to the auth process // Inputs provided by the user to the auth process
// and used by various stages. As passed to js-sdk // and used by various stages. As passed to js-sdk
// interactive-auth // interactive-auth
@ -72,11 +72,11 @@ interface IProps {
extra?: { emailSid?: string, clientSecret?: string }, extra?: { emailSid?: string, clientSecret?: string },
): void; ): void;
// As js-sdk interactive-auth // As js-sdk interactive-auth
requestEmailToken?(email: string, secret: string, attempt: number, session: string): Promise<{ sid: string }>, requestEmailToken?(email: string, secret: string, attempt: number, session: string): Promise<{ sid: string }>;
// Called when the stage changes, or the stage's phase changes. First // Called when the stage changes, or the stage's phase changes. First
// argument is the stage, second is the phase. Some stages do not have // argument is the stage, second is the phase. Some stages do not have
// phases and will be counted as 0 (numeric). // phases and will be counted as 0 (numeric).
onStagePhaseChange?(stage: string, phase: string | number): void, onStagePhaseChange?(stage: string, phase: string | number): void;
} }
interface IState { interface IState {
@ -91,7 +91,7 @@ interface IState {
@replaceableComponent("structures.InteractiveAuthComponent") @replaceableComponent("structures.InteractiveAuthComponent")
export default class InteractiveAuthComponent extends React.Component<IProps, IState> { export default class InteractiveAuthComponent extends React.Component<IProps, IState> {
private readonly authLogic: InteractiveAuth; private readonly authLogic: InteractiveAuth;
private readonly _intervalId: NodeJS.Timeout = null; private readonly intervalId: number = null;
private readonly stageComponent = createRef<IStageComponent>(); private readonly stageComponent = createRef<IStageComponent>();
private unmounted = false; private unmounted = false;
@ -121,14 +121,14 @@ export default class InteractiveAuthComponent extends React.Component<IProps, IS
}); });
if (this.props.poll) { if (this.props.poll) {
this._intervalId = setInterval(() => { this.intervalId = setInterval(() => {
this.authLogic.poll(); this.authLogic.poll();
}, 2000); }, 2000);
} }
} }
// TODO: [REACT-WARNING] Replace component with real class, use constructor for refs // TODO: [REACT-WARNING] Replace component with real class, use constructor for refs
UNSAFE_componentWillMount() { // eslint-disable-line camelcase UNSAFE_componentWillMount() { // eslint-disable-line @typescript-eslint/naming-convention, camelcase
this.authLogic.attemptAuth().then((result) => { this.authLogic.attemptAuth().then((result) => {
const extra = { const extra = {
emailSid: this.authLogic.getEmailSid(), emailSid: this.authLogic.getEmailSid(),
@ -152,8 +152,8 @@ export default class InteractiveAuthComponent extends React.Component<IProps, IS
componentWillUnmount() { componentWillUnmount() {
this.unmounted = true; this.unmounted = true;
if (this._intervalId !== null) { if (this.intervalId !== null) {
clearInterval(this._intervalId); clearInterval(this.intervalId);
} }
} }

View File

@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import React, { ChangeEvent, ComponentClass, createRef, FormEvent, MouseEvent, RefObject } from 'react'; import React, { ChangeEvent, createRef, FormEvent, MouseEvent } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
import { MatrixClient } from "matrix-js-sdk/src/client"; import { MatrixClient } from "matrix-js-sdk/src/client";
import { AuthType, IAuthDict, IInputs, IStageStatus } from 'matrix-js-sdk/src/interactive-auth'; import { AuthType, IAuthDict, IInputs, IStageStatus } from 'matrix-js-sdk/src/interactive-auth';

View File

@ -20,7 +20,8 @@ import { MatrixClientPeg } from '../../MatrixClientPeg';
import { SettingLevel } from "../SettingLevel"; import { SettingLevel } from "../SettingLevel";
// XXX: This feels wrong. // XXX: This feels wrong.
import { Action, PushProcessor } from "matrix-js-sdk/src/pushprocessor"; import { PushProcessor } from "matrix-js-sdk/src/pushprocessor";
import { PushRuleActionName } from "matrix-js-sdk/src/@types/PushRules";
// .m.rule.master being enabled means all events match that push rule // .m.rule.master being enabled means all events match that push rule
// default action on this rule is dont_notify, but it could be something else // default action on this rule is dont_notify, but it could be something else
@ -35,7 +36,7 @@ export function isPushNotifyDisabled(): boolean {
} }
// If the rule is enabled then check it does not notify on everything // If the rule is enabled then check it does not notify on everything
return masterRule.enabled && !masterRule.actions.includes(Action.Notify); return masterRule.enabled && !masterRule.actions.includes(PushRuleActionName.Notify);
} }
function getNotifier(): any { // TODO: [TS] Formal type that doesn't cause a cyclical reference. function getNotifier(): any { // TODO: [TS] Formal type that doesn't cause a cyclical reference.