Enable @typescript-eslint/explicit-function-return-type in /src (#9788)

* Enable `@typescript-eslint/explicit-member-accessibility` on /src

* Prettier

* Enable `@typescript-eslint/explicit-function-return-type` in /src

* Fix types

* tsc strict fixes

* Delint

* Fix test

* Fix bad merge
This commit is contained in:
Michael Telatynski 2023-01-12 13:25:14 +00:00 committed by GitHub
parent 7a36ba0fde
commit 030b7e90bf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
683 changed files with 3459 additions and 3013 deletions

View file

@ -61,7 +61,7 @@ export default abstract class AudioPlayerBase<T extends IProps = IProps> extends
});
}
protected onKeyDown = (ev: React.KeyboardEvent) => {
protected onKeyDown = (ev: React.KeyboardEvent): void => {
let handled = true;
const action = getKeyBindingsManager().getAccessibilityAction(ev);
@ -88,7 +88,7 @@ export default abstract class AudioPlayerBase<T extends IProps = IProps> extends
}
};
private onPlaybackUpdate = (ev: PlaybackState) => {
private onPlaybackUpdate = (ev: PlaybackState): void => {
this.setState({ playbackPhase: ev });
};

View file

@ -43,7 +43,7 @@ export default class Clock extends React.Component<Props> {
return currentFloor !== nextFloor;
}
public render() {
public render(): JSX.Element {
return (
<span aria-live={this.props["aria-live"]} role={this.props.role} className="mx_Clock">
{this.props.formatFn(this.props.seconds)}

View file

@ -44,11 +44,11 @@ export default class DurationClock extends React.PureComponent<IProps, IState> {
this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate);
}
private onTimeUpdate = (time: number[]) => {
private onTimeUpdate = (time: number[]): void => {
this.setState({ durationSeconds: time[1] });
};
public render() {
public render(): JSX.Element {
return <Clock seconds={this.state.durationSeconds} />;
}
}

View file

@ -46,20 +46,20 @@ export default class LiveRecordingClock extends React.PureComponent<IProps, ISta
};
}
public componentDidMount() {
public componentDidMount(): void {
this.props.recorder.liveData.onUpdate((update: IRecordingUpdate) => {
this.seconds = update.timeSeconds;
this.scheduledUpdate.mark();
});
}
private updateClock() {
private updateClock(): void {
this.setState({
seconds: this.seconds,
});
}
public render() {
public render(): JSX.Element {
return <Clock seconds={this.state.seconds} aria-live="off" />;
}
}

View file

@ -51,7 +51,7 @@ export default class LiveRecordingWaveform extends React.PureComponent<IProps, I
};
}
public componentDidMount() {
public componentDidMount(): void {
this.props.recorder.liveData.onUpdate((update: IRecordingUpdate) => {
// The incoming data is between zero and one, so we don't need to clamp/rescale it.
this.waveform = arrayFastResample(Array.from(update.waveform), RECORDING_PLAYBACK_SAMPLES);
@ -59,11 +59,11 @@ export default class LiveRecordingWaveform extends React.PureComponent<IProps, I
});
}
private updateWaveform() {
private updateWaveform(): void {
this.setState({ waveform: this.waveform });
}
public render() {
public render(): JSX.Element {
return <Waveform relHeights={this.state.waveform} />;
}
}

View file

@ -39,12 +39,12 @@ export default class PlayPauseButton extends React.PureComponent<IProps> {
super(props);
}
private onClick = () => {
private onClick = (): void => {
// noinspection JSIgnoredPromiseFromCall
this.toggleState();
};
public async toggleState() {
public async toggleState(): Promise<void> {
await this.props.playback.toggle();
}

View file

@ -55,17 +55,17 @@ export default class PlaybackClock extends React.PureComponent<IProps, IState> {
this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate);
}
private onPlaybackUpdate = (ev: PlaybackState) => {
private onPlaybackUpdate = (ev: PlaybackState): void => {
// Convert Decoding -> Stopped because we don't care about the distinction here
if (ev === PlaybackState.Decoding) ev = PlaybackState.Stopped;
this.setState({ playbackPhase: ev });
};
private onTimeUpdate = (time: number[]) => {
private onTimeUpdate = (time: number[]): void => {
this.setState({ seconds: time[0], durationSeconds: time[1] });
};
public render() {
public render(): JSX.Element {
let seconds = this.state.seconds;
if (this.state.playbackPhase === PlaybackState.Stopped) {
if (Number.isFinite(this.props.defaultDisplaySeconds)) {

View file

@ -46,22 +46,22 @@ export default class PlaybackWaveform extends React.PureComponent<IProps, IState
this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate);
}
private toHeights(waveform: number[]) {
private toHeights(waveform: number[]): number[] {
const seed = arraySeed(0, PLAYBACK_WAVEFORM_SAMPLES);
return arrayTrimFill(waveform, PLAYBACK_WAVEFORM_SAMPLES, seed);
}
private onWaveformUpdate = (waveform: number[]) => {
private onWaveformUpdate = (waveform: number[]): void => {
this.setState({ heights: this.toHeights(waveform) });
};
private onTimeUpdate = (time: number[]) => {
private onTimeUpdate = (time: number[]): void => {
// Track percentages to a general precision to avoid over-waking the component.
const progress = Number(percentageOf(time[0], 0, time[1]).toFixed(3));
this.setState({ progress });
};
public render() {
public render(): JSX.Element {
return <Waveform relHeights={this.state.heights} progress={this.state.progress} />;
}
}

View file

@ -67,23 +67,23 @@ export default class SeekBar extends React.PureComponent<IProps, IState> {
this.props.playback.liveData.onUpdate(() => this.animationFrameFn.mark());
}
private doUpdate() {
private doUpdate(): void {
this.setState({
percentage: percentageOf(this.props.playback.timeSeconds, 0, this.props.playback.durationSeconds),
});
}
public left() {
public left(): void {
// noinspection JSIgnoredPromiseFromCall
this.props.playback.skipTo(this.props.playback.timeSeconds - ARROW_SKIP_SECONDS);
}
public right() {
public right(): void {
// noinspection JSIgnoredPromiseFromCall
this.props.playback.skipTo(this.props.playback.timeSeconds + ARROW_SKIP_SECONDS);
}
private onChange = (ev: ChangeEvent<HTMLInputElement>) => {
private onChange = (ev: ChangeEvent<HTMLInputElement>): void => {
// Thankfully, onChange is only called when the user changes the value, not when we
// change the value on the component. We can use this as a reliable "skip to X" function.
//
@ -91,7 +91,7 @@ export default class SeekBar extends React.PureComponent<IProps, IState> {
this.props.playback.skipTo(Number(ev.target.value) * this.props.playback.durationSeconds);
};
private onMouseDown = (event: React.MouseEvent<Element, MouseEvent>) => {
private onMouseDown = (event: React.MouseEvent<Element, MouseEvent>): void => {
// do not propagate mouse down events, because these should be handled by the seekbar
event.stopPropagation();
};

View file

@ -41,7 +41,7 @@ export default class Waveform extends React.PureComponent<IProps, IState> {
progress: 1,
};
public render() {
public render(): JSX.Element {
return (
<div className="mx_Waveform">
{this.props.relHeights.map((h, i) => {