mirror of https://github.com/vector-im/riot-web
Iterate PR, merge types with @types/PushRules
parent
cd1b315ed6
commit
d90321d813
|
@ -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) => (
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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';
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue