removed eslint unused ignore lines, config handles ignoring it now
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
||||||
import React, { KeyboardEvent, useCallback, useEffect, useMemo, useState } from 'react';
|
import React, { KeyboardEvent, useCallback, useEffect, useMemo, useState } from 'react';
|
||||||
import { Box, Chip, color, config, Icon, Icons, Text, toRem } from 'folds';
|
import { Box, Chip, color, config, Icon, Icons, Text, toRem } from 'folds';
|
||||||
import { RelationsEvent } from 'matrix-js-sdk/lib/models/relations';
|
import { RelationsEvent } from 'matrix-js-sdk/lib/models/relations';
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ export function DeveloperTools({ requestClose }: DeveloperToolsProps) {
|
|||||||
|
|
||||||
const submitAccountData: AccountDataSubmitCallback = useCallback(
|
const submitAccountData: AccountDataSubmitCallback = useCallback(
|
||||||
async (type, content) => {
|
async (type, content) => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
await mx.setRoomAccountData(room.roomId, type as any, content);
|
await mx.setRoomAccountData(room.roomId, type as any, content);
|
||||||
},
|
},
|
||||||
[mx, room.roomId],
|
[mx, room.roomId],
|
||||||
|
|||||||
@@ -55,7 +55,6 @@ export function RoomQuality({ permissions }: RoomQualityProps) {
|
|||||||
const [submitState, submit] = useAsyncCallback(
|
const [submitState, submit] = useAsyncCallback(
|
||||||
useCallback(
|
useCallback(
|
||||||
async (next: RoomQualityContent) => {
|
async (next: RoomQualityContent) => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
await sendStateEvent(mx, room.roomId, StateEvent.LotusRoomQuality, next);
|
await sendStateEvent(mx, room.roomId, StateEvent.LotusRoomQuality, next);
|
||||||
},
|
},
|
||||||
[mx, room.roomId],
|
[mx, room.roomId],
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ export function RoomRetention({ permissions }: RoomRetentionProps) {
|
|||||||
const content: RetentionContent = ms > 0 ? { max_lifetime: ms } : {};
|
const content: RetentionContent = ms > 0 ? { max_lifetime: ms } : {};
|
||||||
// Lotus custom-state convention: cast the type key (RoomRetention isn't a
|
// Lotus custom-state convention: cast the type key (RoomRetention isn't a
|
||||||
// typed key in the SDK's StateEvents map).
|
// typed key in the SDK's StateEvents map).
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
await sendStateEvent(mx, room.roomId, StateEvent.RoomRetention, content);
|
await sendStateEvent(mx, room.roomId, StateEvent.RoomRetention, content);
|
||||||
},
|
},
|
||||||
[mx, room.roomId],
|
[mx, room.roomId],
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ const extractText = (event: MatrixEvent): ExtractedText | null => {
|
|||||||
const content = event.getContent();
|
const content = event.getContent();
|
||||||
|
|
||||||
if (POLL_START_TYPES.includes(evType)) {
|
if (POLL_START_TYPES.includes(evType)) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const poll = (content['m.poll'] ?? content['org.matrix.msc3381.poll.start']) as any;
|
const poll = (content['m.poll'] ?? content['org.matrix.msc3381.poll.start']) as any;
|
||||||
if (!poll) return null;
|
if (!poll) return null;
|
||||||
const qBody =
|
const qBody =
|
||||||
@@ -57,7 +56,6 @@ const extractText = (event: MatrixEvent): ExtractedText | null => {
|
|||||||
.map(
|
.map(
|
||||||
(a) =>
|
(a) =>
|
||||||
((a['m.text'] as Array<{ body: string }> | undefined)?.[0]?.body ??
|
((a['m.text'] as Array<{ body: string }> | undefined)?.[0]?.body ??
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
(a['org.matrix.msc3381.poll.answer'] as any)?.body ??
|
(a['org.matrix.msc3381.poll.answer'] as any)?.body ??
|
||||||
'') as string,
|
'') as string,
|
||||||
)
|
)
|
||||||
@@ -104,7 +102,6 @@ const rowToResultItem = (row: SearchCacheRow): ResultItem => {
|
|||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
rank: 0,
|
rank: 0,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
event: syntheticEvent as any,
|
event: syntheticEvent as any,
|
||||||
context: { events_before: [], events_after: [], profile_info: {} },
|
context: { events_before: [], events_after: [], profile_info: {} },
|
||||||
};
|
};
|
||||||
@@ -227,7 +224,6 @@ export const useLocalMessageSearch = () => {
|
|||||||
};
|
};
|
||||||
memoryItems.push({
|
memoryItems.push({
|
||||||
rank: 0,
|
rank: 0,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
event: syntheticEvent as any,
|
event: syntheticEvent as any,
|
||||||
context: { events_before: [], events_after: [], profile_info: {} },
|
context: { events_before: [], events_after: [], profile_info: {} },
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -146,7 +146,6 @@ export const useMessageSearch = (params: MessageSearchParams) => {
|
|||||||
...(fromTs !== undefined && { from_ts: fromTs }),
|
...(fromTs !== undefined && { from_ts: fromTs }),
|
||||||
...(toTs !== undefined && { to_ts: toTs }),
|
...(toTs !== undefined && { to_ts: toTs }),
|
||||||
...(containsUrl !== undefined && { contains_url: containsUrl }),
|
...(containsUrl !== undefined && { contains_url: containsUrl }),
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
} as any,
|
} as any,
|
||||||
include_state: false,
|
include_state: false,
|
||||||
order_by: order as SearchOrderBy.Recent,
|
order_by: order as SearchOrderBy.Recent,
|
||||||
|
|||||||
@@ -318,7 +318,6 @@ export function ForwardMessageDialog({ mEvent, onClose }: Props) {
|
|||||||
const results = await Promise.allSettled(
|
const results = await Promise.allSettled(
|
||||||
ids.map((id) => {
|
ids.map((id) => {
|
||||||
// threadId-aware overload (P3-8): explicit null = send to the main timeline.
|
// threadId-aware overload (P3-8): explicit null = send to the main timeline.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const sendForward = () => mx.sendEvent(id, null, mEvent.getType() as any, fwdContent);
|
const sendForward = () => mx.sendEvent(id, null, mEvent.getType() as any, fwdContent);
|
||||||
// Send the optional comment first so it reads as a note above the
|
// Send the optional comment first so it reads as a note above the
|
||||||
// forwarded content. The room counts as failed if either send rejects.
|
// forwarded content. The room counts as failed if either send rejects.
|
||||||
@@ -327,7 +326,6 @@ export function ForwardMessageDialog({ mEvent, onClose }: Props) {
|
|||||||
const needsComment = commentBody && !commentSentRef.current.has(id);
|
const needsComment = commentBody && !commentSentRef.current.has(id);
|
||||||
const step = needsComment
|
const step = needsComment
|
||||||
? mx
|
? mx
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
.sendMessage(id, null, { msgtype: MsgType.Text, body: commentBody } as any)
|
.sendMessage(id, null, { msgtype: MsgType.Text, body: commentBody } as any)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
commentSentRef.current.add(id);
|
commentSentRef.current.add(id);
|
||||||
|
|||||||
@@ -1390,7 +1390,6 @@ export const Message = React.memo(
|
|||||||
after={<Icon size="100" src={Icons.Send} />}
|
after={<Icon size="100" src={Icons.Send} />}
|
||||||
radii="300"
|
radii="300"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
(mx as any).resendEvent(mEvent, room);
|
(mx as any).resendEvent(mEvent, room);
|
||||||
closeMenu();
|
closeMenu();
|
||||||
}}
|
}}
|
||||||
@@ -1409,7 +1408,6 @@ export const Message = React.memo(
|
|||||||
after={<Icon size="100" src={Icons.Cross} />}
|
after={<Icon size="100" src={Icons.Cross} />}
|
||||||
radii="300"
|
radii="300"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
(mx as any).cancelPendingEvent(mEvent);
|
(mx as any).cancelPendingEvent(mEvent);
|
||||||
closeMenu();
|
closeMenu();
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -187,7 +187,6 @@ export const MessageEditor = as<'div', MessageEditorProps>(
|
|||||||
rel_type: RelationType.Replace,
|
rel_type: RelationType.Replace,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
return mx.sendMessage(roomId, content as any);
|
return mx.sendMessage(roomId, content as any);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,7 +235,6 @@ export const MessageEditor = as<'div', MessageEditorProps>(
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
return mx.sendMessage(roomId, content as any);
|
return mx.sendMessage(roomId, content as any);
|
||||||
}, [
|
}, [
|
||||||
mx,
|
mx,
|
||||||
|
|||||||
@@ -564,7 +564,6 @@ export function ThreadTimeline({ room, thread, editor }: ThreadTimelineProps) {
|
|||||||
mx.sendEvent(
|
mx.sendEvent(
|
||||||
room.roomId,
|
room.roomId,
|
||||||
thread.id,
|
thread.id,
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
MessageEvent.Reaction as any,
|
MessageEvent.Reaction as any,
|
||||||
getReactionContent(targetEventId, key, rShortcode),
|
getReactionContent(targetEventId, key, rShortcode),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ export function WidgetsPanel({ room, requestClose }: WidgetsPanelProps) {
|
|||||||
data: {},
|
data: {},
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
await sendStateEvent(mx, room.roomId, StateEvent.Widget, content, id);
|
await sendStateEvent(mx, room.roomId, StateEvent.Widget, content, id);
|
||||||
setAdding(false);
|
setAdding(false);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -96,7 +95,6 @@ export function WidgetsPanel({ room, requestClose }: WidgetsPanelProps) {
|
|||||||
|
|
||||||
const handleRemove = (id: string) => {
|
const handleRemove = (id: string) => {
|
||||||
if (viewingId === id) setViewingId(null);
|
if (viewingId === id) setViewingId(null);
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
sendStateEvent(mx, room.roomId, StateEvent.Widget, {}, id).catch(() => undefined);
|
sendStateEvent(mx, room.roomId, StateEvent.Widget, {}, id).catch(() => undefined);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ export function getLocalRoomNamesContent(
|
|||||||
raw &&
|
raw &&
|
||||||
typeof raw === 'object' &&
|
typeof raw === 'object' &&
|
||||||
'rooms' in raw &&
|
'rooms' in raw &&
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
typeof (raw as any).rooms === 'object'
|
typeof (raw as any).rooms === 'object'
|
||||||
) {
|
) {
|
||||||
return raw as LocalRoomNamesContent;
|
return raw as LocalRoomNamesContent;
|
||||||
|
|||||||
@@ -25,10 +25,8 @@ export const setMarkedUnread = (
|
|||||||
unread: boolean,
|
unread: boolean,
|
||||||
): Promise<unknown> =>
|
): Promise<unknown> =>
|
||||||
Promise.all([
|
Promise.all([
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
mx.setRoomAccountData(roomId, AccountDataEvent.MarkedUnread as any, { unread }),
|
mx.setRoomAccountData(roomId, AccountDataEvent.MarkedUnread as any, { unread }),
|
||||||
// Best-effort mirror for older servers; never fail the primary write on it.
|
// Best-effort mirror for older servers; never fail the primary write on it.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
mx.setRoomAccountData(roomId, UNSTABLE_MARKED_UNREAD as any, { unread }).catch(() => undefined),
|
mx.setRoomAccountData(roomId, UNSTABLE_MARKED_UNREAD as any, { unread }).catch(() => undefined),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ export function getAccountData<T>(
|
|||||||
mx: MatrixClient,
|
mx: MatrixClient,
|
||||||
eventType: AccountDataEvent | string,
|
eventType: AccountDataEvent | string,
|
||||||
): T | undefined {
|
): T | undefined {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const event = (mx as any).getAccountData(eventType) as MatrixEvent | undefined;
|
const event = (mx as any).getAccountData(eventType) as MatrixEvent | undefined;
|
||||||
return event?.getContent() as T | undefined;
|
return event?.getContent() as T | undefined;
|
||||||
}
|
}
|
||||||
@@ -23,6 +22,5 @@ export function setAccountData<T>(
|
|||||||
eventType: AccountDataEvent | string,
|
eventType: AccountDataEvent | string,
|
||||||
content: T,
|
content: T,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
return (mx as any).setAccountData(eventType, content);
|
return (mx as any).setAccountData(eventType, content);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ export async function buildModelNode(
|
|||||||
model: DenoiseModelId,
|
model: DenoiseModelId,
|
||||||
): Promise<DenoiseNode> {
|
): Promise<DenoiseNode> {
|
||||||
if (model === 'dtln') {
|
if (model === 'dtln') {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const mod: any = await import(/* @vite-ignore */ `${BASE}workadventure/audio-worklet.js`);
|
const mod: any = await import(/* @vite-ignore */ `${BASE}workadventure/audio-worklet.js`);
|
||||||
const handle = await mod.createNoiseSuppressionAudioWorklet(ctx, { bypassUntilReady: true });
|
const handle = await mod.createNoiseSuppressionAudioWorklet(ctx, { bypassUntilReady: true });
|
||||||
return { node: handle.node, dispose: () => handle.dispose() };
|
return { node: handle.node, dispose: () => handle.dispose() };
|
||||||
@@ -81,7 +80,6 @@ export async function buildModelNode(
|
|||||||
// deepfilternet/v2/... Override its cdnUrl to our absolute base so nothing
|
// deepfilternet/v2/... Override its cdnUrl to our absolute base so nothing
|
||||||
// hits the upstream CDN. DeepFilterNet3Core builds the worklet node directly.
|
// hits the upstream CDN. DeepFilterNet3Core builds the worklet node directly.
|
||||||
const dfnBase = new URL(`${BASE}deepfilternet`, window.location.href).href;
|
const dfnBase = new URL(`${BASE}deepfilternet`, window.location.href).href;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
const mod: any = await import(/* @vite-ignore */ `${BASE}deepfilternet/index.esm.js`);
|
const mod: any = await import(/* @vite-ignore */ `${BASE}deepfilternet/index.esm.js`);
|
||||||
const core = new mod.DeepFilterNet3Core({
|
const core = new mod.DeepFilterNet3Core({
|
||||||
sampleRate: sampleRateFor(model),
|
sampleRate: sampleRateFor(model),
|
||||||
|
|||||||
@@ -44,12 +44,10 @@ test('onTabPress fires only on Tab', () => {
|
|||||||
|
|
||||||
test('preventScrollWithArrowKey prevents default only on arrows', () => {
|
test('preventScrollWithArrowKey prevents default only on arrows', () => {
|
||||||
const up = evt('ArrowUp', 38);
|
const up = evt('ArrowUp', 38);
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
preventScrollWithArrowKey(up as any);
|
preventScrollWithArrowKey(up as any);
|
||||||
assert.equal(up.prevented, true);
|
assert.equal(up.prevented, true);
|
||||||
|
|
||||||
const a = evt('a', 65);
|
const a = evt('a', 65);
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
preventScrollWithArrowKey(a as any);
|
preventScrollWithArrowKey(a as any);
|
||||||
assert.equal(a.prevented, false);
|
assert.equal(a.prevented, false);
|
||||||
});
|
});
|
||||||
@@ -95,14 +93,12 @@ test('stopPropagation: stops unless an editable element is focused', () => {
|
|||||||
// nothing focused → stops, returns true
|
// nothing focused → stops, returns true
|
||||||
withActive(null);
|
withActive(null);
|
||||||
let k = makeKeyEvt();
|
let k = makeKeyEvt();
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
assert.equal(stopPropagation(k.ev as any), true);
|
assert.equal(stopPropagation(k.ev as any), true);
|
||||||
assert.equal(k.wasStopped(), true);
|
assert.equal(k.wasStopped(), true);
|
||||||
|
|
||||||
// input focused → does not stop, returns false
|
// input focused → does not stop, returns false
|
||||||
withActive({ nodeName: 'INPUT', getAttribute: () => null });
|
withActive({ nodeName: 'INPUT', getAttribute: () => null });
|
||||||
k = makeKeyEvt();
|
k = makeKeyEvt();
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
assert.equal(stopPropagation(k.ev as any), false);
|
assert.equal(stopPropagation(k.ev as any), false);
|
||||||
assert.equal(k.wasStopped(), false);
|
assert.equal(k.wasStopped(), false);
|
||||||
|
|
||||||
@@ -112,6 +108,5 @@ test('stopPropagation: stops unless an editable element is focused', () => {
|
|||||||
getAttribute: (a: string) => (a === 'contenteditable' ? 'true' : null),
|
getAttribute: (a: string) => (a === 'contenteditable' ? 'true' : null),
|
||||||
});
|
});
|
||||||
k = makeKeyEvt();
|
k = makeKeyEvt();
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
assert.equal(stopPropagation(k.ev as any), false);
|
assert.equal(stopPropagation(k.ev as any), false);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ const makeMx = (
|
|||||||
if (opts.forgetRejects) throw new Error('forget failed');
|
if (opts.forgetRejects) throw new Error('forget failed');
|
||||||
return {};
|
return {};
|
||||||
},
|
},
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
} as any;
|
} as any;
|
||||||
return { mx, calls };
|
return { mx, calls };
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
||||||
import { M_POLL_KIND_DISCLOSED } from 'matrix-js-sdk';
|
import { M_POLL_KIND_DISCLOSED } from 'matrix-js-sdk';
|
||||||
|
|
||||||
// Pure helpers for poll display. matrix-js-sdk 41.7.0's PollStartEvent /
|
// Pure helpers for poll display. matrix-js-sdk 41.7.0's PollStartEvent /
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ export function sendStateEvent<T extends object>(
|
|||||||
content: T,
|
content: T,
|
||||||
stateKey = '',
|
stateKey = '',
|
||||||
): Promise<ISendEventResponse> {
|
): Promise<ISendEventResponse> {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
return mx.sendStateEvent(roomId, eventType as any, content, stateKey);
|
return mx.sendStateEvent(roomId, eventType as any, content, stateKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
||||||
import { globalStyle, keyframes, style } from '@vanilla-extract/css';
|
import { globalStyle, keyframes, style } from '@vanilla-extract/css';
|
||||||
|
|
||||||
const glitch1 = keyframes({
|
const glitch1 = keyframes({
|
||||||
|
|||||||
Reference in New Issue
Block a user