diff --git a/dprint.json b/dprint.json
index a6ee10293e33..cb951c4626c1 100644
--- a/dprint.json
+++ b/dprint.json
@@ -9,7 +9,7 @@
"./node_modules/dprint-plugin-yaml/plugin.wasm"
],
"includes": [
- "**/*.{svelte,css,gql,yml,ts,js}",
+ "**/*.{svelte,css,gql,yml,ts,js,tsx}",
"dprint.json"
],
"useTabs": true,
diff --git a/eslint.config.js b/eslint.config.js
index ceabd9169a04..4a8ccbf609ff 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -303,7 +303,7 @@ export default defineConfig([
},
},
{
- files: ['**/*.js', '**/*.ts'],
+ files: ['**/*.js', '**/*.ts', '**/*.tsx'],
// TODO: Use global `/flat` config
rules: eslintConfigPrettier.rules,
},
diff --git a/source/feature-manager.tsx b/source/feature-manager.tsx
index f4927b592ed1..f9e83b3073c3 100644
--- a/source/feature-manager.tsx
+++ b/source/feature-manager.tsx
@@ -12,9 +12,7 @@ import {messageRuntime} from 'webext-msg';
import asyncForEach from './helpers/async-for-each.js';
import bisectFeatures from './helpers/bisect.js';
import {catchErrors, disableErrorLogging} from './helpers/errors.js';
-import {
- getFeatureId, listenToAjaxedLoad, log, shortcutMap,
-} from './helpers/feature-helpers.js';
+import {getFeatureId, listenToAjaxedLoad, log, shortcutMap} from './helpers/feature-helpers.js';
import {isFeaturePrivate, type RunConditions, shouldFeatureRun} from './helpers/feature-utils.js';
import {
applyStyleHotfixes,
diff --git a/source/features/actionable-pr-view-file.tsx b/source/features/actionable-pr-view-file.tsx
index f08e48e40773..92f15eac32dc 100644
--- a/source/features/actionable-pr-view-file.tsx
+++ b/source/features/actionable-pr-view-file.tsx
@@ -1,13 +1,11 @@
import delegate, {type DelegateEvent} from 'delegate-it';
import * as pageDetect from 'github-url-detection';
-import {
- $, $closest, $optional, elementExists,
-} from 'select-dom';
+import {$, $closest, $optional, elementExists} from 'select-dom';
import features from '../feature-manager.js';
import {getBranches} from '../github-helpers/pr-branches.js';
-import observe from '../helpers/selector-observer.js';
import {frame} from '../helpers/dom-utils.js';
+import observe from '../helpers/selector-observer.js';
/** Rebuilds the "View file" link to point to the head repo and its branch instead of the base repo and the commit */
function rebuildFileLink(viewFileLink: HTMLAnchorElement, filePath: string): void {
@@ -31,7 +29,7 @@ function getFilePath(fileHeader: HTMLElement): string {
return (
// Tooltip doesn't exist if the file wasn't renamed
renamedTooltip?.textContent.split(' renamed to ')[1]
- ?? fileNameElement.textContent
+ ?? fileNameElement.textContent
).replaceAll(/\u200E|\u200F/g, '').trim();
}
diff --git a/source/features/batch-mark-files-as-viewed.tsx b/source/features/batch-mark-files-as-viewed.tsx
index 984851fdb2ef..99dbe0606df5 100644
--- a/source/features/batch-mark-files-as-viewed.tsx
+++ b/source/features/batch-mark-files-as-viewed.tsx
@@ -1,9 +1,7 @@
import {onAbort} from 'abort-utils';
import delegate, {type DelegateEvent} from 'delegate-it';
import * as pageDetect from 'github-url-detection';
-import {
- $, $$, $closest, elementExists,
-} from 'select-dom';
+import {$, $$, $closest, elementExists} from 'select-dom';
import features from '../feature-manager.js';
import showToast from '../github-helpers/toast.js';
diff --git a/source/features/clean-conversation-sidebar.tsx b/source/features/clean-conversation-sidebar.tsx
index 66036a83f838..c975901c346c 100644
--- a/source/features/clean-conversation-sidebar.tsx
+++ b/source/features/clean-conversation-sidebar.tsx
@@ -2,9 +2,7 @@ import './clean-conversation-sidebar.css';
import React from 'dom-chef';
import * as pageDetect from 'github-url-detection';
-import {
- $, $closest, $optional, elementExists,
-} from 'select-dom';
+import {$, $closest, $optional, elementExists} from 'select-dom';
import features from '../feature-manager.js';
import {removeTextNodeContaining} from '../helpers/dom-utils.js';
@@ -93,7 +91,7 @@ async function cleanSidebarLegacy(sidebar: HTMLElement): Promise
&& commitTitleElement.childElementCount < 1
) {
@@ -38,7 +37,6 @@ function renderLabelInCommitTitle(commitTitleElement: HTMLElement): void {
{commit.type}
,
-
// Keep scope outside because that's how they're rendered in release notes as well
commit.scope ? {commit.scope} : '',
);
diff --git a/source/features/conversation-activity-filter.tsx b/source/features/conversation-activity-filter.tsx
index 76ba0140a923..71025c88e80f 100644
--- a/source/features/conversation-activity-filter.tsx
+++ b/source/features/conversation-activity-filter.tsx
@@ -7,21 +7,15 @@ import CheckIcon from 'octicons-plain-react/Check';
import EyeIcon from 'octicons-plain-react/Eye';
import EyeClosedIcon from 'octicons-plain-react/EyeClosed';
import TriangleDownIcon from 'octicons-plain-react/TriangleDown';
-import {
- $,
- $$,
- $$optional,
- $closest,
- elementExists,
-} from 'select-dom';
+import {$, $$, $$optional, $closest, elementExists} from 'select-dom';
import features from '../feature-manager.js';
import getCommentAuthor from '../github-helpers/get-comment-author.js';
import {registerHotkey} from '../github-helpers/hotkey.js';
import delay from '../helpers/delay.js';
import {isSmallDevice, wrap} from '../helpers/dom-utils.js';
-import observe from '../helpers/selector-observer.js';
import onetime from '../helpers/onetime.js';
+import observe from '../helpers/selector-observer.js';
const minorFixesIssuePages = [
'https://github.com/refined-github/refined-github/issues/3686',
diff --git a/source/features/cross-deleted-pr-branches.tsx b/source/features/cross-deleted-pr-branches.tsx
index c25367b77c30..6da3be0fa003 100644
--- a/source/features/cross-deleted-pr-branches.tsx
+++ b/source/features/cross-deleted-pr-branches.tsx
@@ -2,9 +2,7 @@ import './cross-deleted-pr-branches.css';
import React from 'dom-chef';
import * as pageDetect from 'github-url-detection';
-import {
- $, $$, $closest, $optional, lastElementOptional,
-} from 'select-dom';
+import {$, $$, $closest, $optional, lastElementOptional} from 'select-dom';
import features from '../feature-manager.js';
import {wrap} from '../helpers/dom-utils.js';
diff --git a/source/features/deep-reblame.tsx b/source/features/deep-reblame.tsx
index b483709a90f4..f92fed9d4e1c 100644
--- a/source/features/deep-reblame.tsx
+++ b/source/features/deep-reblame.tsx
@@ -5,9 +5,7 @@ import React from 'dom-chef';
import * as pageDetect from 'github-url-detection';
import mem from 'memoize';
import VersionsIcon from 'octicons-plain-react/Versions';
-import {
- $, $$, $closest, $optional,
-} from 'select-dom';
+import {$, $$, $closest, $optional} from 'select-dom';
import features from '../feature-manager.js';
import api from '../github-helpers/api.js';
diff --git a/source/features/default-branch-button.tsx b/source/features/default-branch-button.tsx
index 3474f5f6476d..2d32ec20b30a 100644
--- a/source/features/default-branch-button.tsx
+++ b/source/features/default-branch-button.tsx
@@ -80,7 +80,6 @@ async function add(branchSelector: HTMLElement): Promise {
// https://github.com/refined-github/refined-github/issues/6554
// Inlined listener because `mouseenter` is too heavy for `delegate`
onMouseEnter={updateUrl}
-
// Don't enable AJAX on this behavior because we need a full page reload to drop the button, same reason as above #6554
// data-turbo-frame="repo-content-turbo-frame"
>
diff --git a/source/features/embed-gist-inline.tsx b/source/features/embed-gist-inline.tsx
index 7d357805bd9b..a2cca15c9913 100644
--- a/source/features/embed-gist-inline.tsx
+++ b/source/features/embed-gist-inline.tsx
@@ -16,14 +16,14 @@ type GistData = {
// Fetch via background.js due to CORB policies. Also memoize to avoid multiple requests.
const fetchGist = mem(
- async (url: string): Promise =>
- messageRuntime({fetchJson: `${url}.json`}),
+ async (url: string): Promise => messageRuntime({fetchJson: `${url}.json`}),
);
-const isOnlyChild = (link: HTMLAnchorElement): boolean => link.textContent.trim() === link.parentElement!.textContent.trim();
+const isOnlyChild = (link: HTMLAnchorElement): boolean =>
+ link.textContent.trim() === link.parentElement!.textContent.trim();
async function embedGist(link: HTMLAnchorElement): Promise {
- const info = (loading);
+ const info = (loading);
link.after(info);
try {
@@ -39,7 +39,8 @@ async function embedGist(link: HTMLAnchorElement): Promise {
} else {
const container = ;
container.attachShadow({mode: 'open'}).append(
-