UI Console Errors and Git Errors Fixes, + recommendations (Take 2, careful with const vs var)
UI Console Errors and Git Errors Fixes, + recommendations Converted several variables to constants and removed unused function parameters in the AboutDialog component, addressing lint warnings Introduced strict JSON interfaces in AlsaDeviceInfo to replace untyped “any” parameters and ensured returned arrays use constants Simplified styling callbacks and defined props more strictly in App, while using constants for URL parsing Updated the WithStyles helper to accept unknown argument lists and return types rather than “any” Added a workflow step so CI runs npm run lint -- --fix inside the vite directory Testing
This commit is contained in:
@@ -62,7 +62,7 @@ const AboutDialog = class extends Component<AboutDialogProps, AboutDialogState>
|
||||
.then(jackStatus => {
|
||||
this.setState({ jackStatus: jackStatus });
|
||||
})
|
||||
.catch(_error => { /* ignore*/ });
|
||||
.catch(() => { /* ignore*/ });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,12 +116,12 @@ const AboutDialog = class extends Component<AboutDialogProps, AboutDialogState>
|
||||
this.mounted = false;
|
||||
this.updateNotifications();
|
||||
}
|
||||
componentDidUpdate(prevProps: Readonly<AboutDialogProps>, prevState: Readonly<AboutDialogState>, snapshot: any): void {
|
||||
componentDidUpdate(prevProps: Readonly<AboutDialogProps>, prevState: Readonly<AboutDialogState>, snapshot: unknown): void {
|
||||
super.componentDidUpdate?.(prevProps, prevState, snapshot);
|
||||
this.updateNotifications();
|
||||
}
|
||||
|
||||
handleDialogClose(_e: SyntheticEvent) {
|
||||
handleDialogClose() {
|
||||
this.props.onClose();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,19 @@
|
||||
|
||||
|
||||
interface AlsaDeviceInfoJson {
|
||||
cardId: number;
|
||||
id: number;
|
||||
name: string;
|
||||
longName: string;
|
||||
sampleRates: number[];
|
||||
minBufferSize: number;
|
||||
maxBufferSize: number;
|
||||
supportsCapture?: boolean;
|
||||
supportsPlayback?: boolean;
|
||||
}
|
||||
|
||||
export default class AlsaDeviceInfo {
|
||||
deserialize(input: any): AlsaDeviceInfo {
|
||||
deserialize(input: AlsaDeviceInfoJson): AlsaDeviceInfo {
|
||||
this.cardId = input.cardId;
|
||||
this.id = input.id;
|
||||
this.name = input.name;
|
||||
@@ -13,7 +25,7 @@ export default class AlsaDeviceInfo {
|
||||
this.supportsPlayback = input.supportsPlayback ? true : false;
|
||||
return this;
|
||||
}
|
||||
static deserialize_array(input: any): AlsaDeviceInfo[]
|
||||
static deserialize_array(input: AlsaDeviceInfoJson[]): AlsaDeviceInfo[]
|
||||
{
|
||||
let result: AlsaDeviceInfo[] = [];
|
||||
for (let i = 0; i < input.length; ++i)
|
||||
|
||||
@@ -22,13 +22,18 @@
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
interface AlsaMidiDeviceInfoJson {
|
||||
name: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export class AlsaMidiDeviceInfo {
|
||||
deserialize(input: any) : AlsaMidiDeviceInfo{
|
||||
deserialize(input: AlsaMidiDeviceInfoJson) : AlsaMidiDeviceInfo{
|
||||
this.name = input.name;
|
||||
this.description = input.description;
|
||||
return this;
|
||||
}
|
||||
static deserializeArray(input: any[]): AlsaMidiDeviceInfo[] {
|
||||
static deserializeArray(input: AlsaMidiDeviceInfoJson[]): AlsaMidiDeviceInfo[] {
|
||||
let result: AlsaMidiDeviceInfo[] = [];
|
||||
for (let i = 0; i < input.length; ++i) {
|
||||
result[i] = new AlsaMidiDeviceInfo().deserialize(input[i]);
|
||||
|
||||
@@ -17,14 +17,20 @@
|
||||
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
interface AlsaSequencerPortSelectionJson {
|
||||
id: string;
|
||||
name: string;
|
||||
sortOrder: number;
|
||||
}
|
||||
|
||||
export class AlsaSequencerPortSelection {
|
||||
deserialize(json: any) {
|
||||
deserialize(json: AlsaSequencerPortSelectionJson) {
|
||||
this.id = json.id;
|
||||
this.name = json.name;
|
||||
this.sortOrder = json.sortOrder;
|
||||
return this;
|
||||
};
|
||||
static deserialize_array(input: any): AlsaSequencerPortSelection[] {
|
||||
static deserialize_array(input: AlsaSequencerPortSelectionJson[]): AlsaSequencerPortSelection[] {
|
||||
let result: AlsaSequencerPortSelection[] = [];
|
||||
for (let i = 0; i < input.length; ++i) {
|
||||
result[i] = new AlsaSequencerPortSelection().deserialize(input[i]);
|
||||
@@ -36,12 +42,16 @@ export class AlsaSequencerPortSelection {
|
||||
sortOrder: number = 0;
|
||||
};
|
||||
|
||||
interface AlsaSequencerConfigurationJson {
|
||||
connections: AlsaSequencerPortSelectionJson[];
|
||||
}
|
||||
|
||||
export class AlsaSequencerConfiguration {
|
||||
deserialize(input: any) {
|
||||
deserialize(input: AlsaSequencerConfigurationJson) {
|
||||
this.connections = AlsaSequencerPortSelection.deserialize_array(input.connections);
|
||||
return this;
|
||||
}
|
||||
deserialize_array(input: any): AlsaSequencerConfiguration[] {
|
||||
deserialize_array(input: AlsaSequencerConfigurationJson[]): AlsaSequencerConfiguration[] {
|
||||
let result: AlsaSequencerConfiguration[] = [];
|
||||
for (let i = 0; i < input.length; ++i) {
|
||||
result[i] = new AlsaSequencerConfiguration().deserialize(input[i]);
|
||||
|
||||
@@ -54,12 +54,13 @@ export class FakeAndroidHost implements AndroidHostInterface
|
||||
return true;
|
||||
}
|
||||
setDisconnected(_isDisconnected: boolean): void {
|
||||
|
||||
void _isDisconnected;
|
||||
}
|
||||
showSponsorship() : void { }
|
||||
|
||||
launchExternalUrl(_url:string): boolean
|
||||
{
|
||||
void _url;
|
||||
return false;
|
||||
}
|
||||
private theme = 1;
|
||||
@@ -71,6 +72,7 @@ export class FakeAndroidHost implements AndroidHostInterface
|
||||
}
|
||||
setServerVersion(_serverVersion: string): void {
|
||||
// No-op for fake host
|
||||
void _serverVersion;
|
||||
}
|
||||
|
||||
private keepScreenOn = false;
|
||||
|
||||
@@ -154,7 +154,7 @@ const theme = createTheme(
|
||||
/* make the selection state for MuiListItemButtons a smidgen darker (light theme only) */
|
||||
MuiListItemButton: {
|
||||
styleOverrides: {
|
||||
root: ({ theme }) => ({
|
||||
root: () => ({
|
||||
'&.Mui-selected': {
|
||||
backgroundColor: 'rgba(0, 0, 0, 0.2)', // Adjust for desired darkness
|
||||
'&:hover': {
|
||||
|
||||
@@ -82,8 +82,7 @@ import { IDialogStackable, popDialogStack, pushDialogStack } from './DialogStack
|
||||
|
||||
|
||||
|
||||
interface AppProps extends WithStyles<typeof appStyles> {
|
||||
};
|
||||
type AppProps = WithStyles<typeof appStyles>;
|
||||
|
||||
const appStyles = ((theme: Theme) => (
|
||||
{
|
||||
|
||||
@@ -30,7 +30,7 @@ export function createStyles<T>(style: T): T {
|
||||
}
|
||||
|
||||
export default
|
||||
interface WithStyles<T extends (...args: any) => any> {
|
||||
interface WithStyles<T extends (...args: unknown[]) => unknown> {
|
||||
className?: string;
|
||||
classes?: Partial<Record<keyof ReturnType<T>, string>>;
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ const ZoomedDial = withStyles(
|
||||
|
||||
}
|
||||
|
||||
onTouchStart(e: TouchEvent<SVGSVGElement>) {
|
||||
onTouchStart() {
|
||||
//must be defined to get onTouchMove
|
||||
}
|
||||
onTouchMove(e: TouchEvent<SVGSVGElement>) {
|
||||
@@ -377,8 +377,7 @@ const ZoomedDial = withStyles(
|
||||
}
|
||||
|
||||
|
||||
onBodyPointerDownCapture(e_: any): any {
|
||||
let e = e_ as PointerEvent;
|
||||
onBodyPointerDownCapture(e: PointerEvent): any {
|
||||
if (this.isExtraTouch(e)) {
|
||||
this.captureElement!.setPointerCapture(e.pointerId);
|
||||
this.capturedPointers.push(e.pointerId);
|
||||
|
||||
@@ -142,7 +142,7 @@ const ZoomedUiControl = withTheme(withStyles(
|
||||
|
||||
}
|
||||
|
||||
componentDidUpdate(oldProps: ZoomedUiControlProps, oldState: ZoomedUiControlState) {
|
||||
componentDidUpdate(oldProps: ZoomedUiControlProps) {
|
||||
if (this.hasControlChanged(oldProps, this.props)) {
|
||||
let currentValue = this.getCurrentValue();
|
||||
if (this.state.value !== currentValue) {
|
||||
|
||||
Reference in New Issue
Block a user