Switch to use ESLint 10 (#5794)

This commit is contained in:
James Brunton
2026-02-25 14:30:40 +00:00
committed by GitHub
parent 5c39acecd8
commit c9dafc85fd
20 changed files with 173 additions and 317 deletions
@@ -217,7 +217,7 @@ export function usePageDocument(): PageDocumentHook {
});
// Build pages by interleaving original pages with insertions
let pages: PDFPage[] = [];
let pages: PDFPage[];
// Helper function to create pages from a file (or placeholder if deselected)
const createPagesFromFile = (fileId: FileId, startPageNumber: number, isSelected: boolean): PDFPage[] => {
@@ -242,11 +242,10 @@ export function usePageDocument(): PageDocumentHook {
}
const processedFile = stirlingFileStub.processedFile;
let filePages: PDFPage[] = [];
if (processedFile?.pages && processedFile.pages.length > 0) {
// Use fully processed pages with thumbnails
filePages = processedFile.pages.map((page, pageIndex) => ({
return processedFile.pages.map((page, pageIndex) => ({
id: `${fileId}-${pageIndex + 1}`,
pageNumber: startPageNumber + pageIndex,
thumbnail: page.thumbnail || null,
@@ -259,9 +258,11 @@ export function usePageDocument(): PageDocumentHook {
originalFileId: fileId,
isPlaceholder: false,
}));
} else if (processedFile?.totalPages) {
}
if (processedFile?.totalPages) {
// Fallback: create pages without thumbnails but with correct count
filePages = Array.from({ length: processedFile.totalPages }, (_, pageIndex) => ({
return Array.from({ length: processedFile.totalPages }, (_, pageIndex) => ({
id: `${fileId}-${pageIndex + 1}`,
pageNumber: startPageNumber + pageIndex,
originalPageNumber: pageIndex + 1,
@@ -272,23 +273,21 @@ export function usePageDocument(): PageDocumentHook {
splitAfter: false,
isPlaceholder: false,
}));
} else {
// No processedFile yet - create a single loading placeholder
// This will be replaced when processing completes
filePages = [{
id: `${fileId}-loading`,
pageNumber: startPageNumber,
originalPageNumber: 1,
originalFileId: fileId,
rotation: 0,
thumbnail: null,
selected: false,
splitAfter: false,
isPlaceholder: true,
}];
}
return filePages;
// No processedFile yet - create a single loading placeholder
// This will be replaced when processing completes
return [{
id: `${fileId}-loading`,
pageNumber: startPageNumber,
originalPageNumber: 1,
originalFileId: fileId,
rotation: 0,
thumbnail: null,
selected: false,
splitAfter: false,
isPlaceholder: true,
}];
};
// Collect all pages from original files, respecting their previous positions
@@ -4,13 +4,12 @@ import iconSet from '../../../assets/material-symbols-icons.json'; // eslint-dis
// Load icons synchronously at import time - guaranteed to be ready on first render
let iconsLoaded = false;
let localIconCount = 0;
try {
if (iconSet) {
addCollection(iconSet);
iconsLoaded = true;
localIconCount = Object.keys(iconSet.icons || {}).length;
const localIconCount = Object.keys(iconSet.icons || {}).length;
console.info(`✅ Local icons loaded: ${localIconCount} icons (${Math.round(JSON.stringify(iconSet).length / 1024)}KB)`);
}
} catch {
@@ -110,7 +110,7 @@ export function computeStampPreviewStyle(
// Convert measured px width back to PDF points using horizontal scale
widthPtsContent = measuredWidthPx / scaleX;
let adjustmentFactor = 1.0;
let adjustmentFactor: number;
switch (parameters.alphabet) {
case 'roman':
adjustmentFactor = 0.90;
@@ -126,6 +126,7 @@ export function computeStampPreviewStyle(
break;
default:
adjustmentFactor = 0.93;
break;
}
widthPtsContent *= adjustmentFactor;
}
@@ -22,7 +22,7 @@ const CompactToolItem: React.FC<CompactToolItemProps> = ({ id, tool, isSelected,
const iconBg = getIconBackground(categoryColor, false);
const iconClasses = 'tool-panel__fullscreen-list-icon';
let iconNode: React.ReactNode = null;
let iconNode: React.ReactNode;
if (React.isValidElement<{ style?: React.CSSProperties }>(tool.icon)) {
const element = tool.icon as React.ReactElement<{ style?: React.CSSProperties }>;
iconNode = React.cloneElement(element, {
@@ -120,4 +120,3 @@ const CompactToolItem: React.FC<CompactToolItemProps> = ({ id, tool, isSelected,
export default CompactToolItem;
@@ -21,7 +21,7 @@ const DetailedToolItem: React.FC<DetailedToolItemProps> = ({ id, tool, isSelecte
const iconBg = getIconBackground(categoryColor, true);
const iconClasses = 'tool-panel__fullscreen-icon';
let iconNode: React.ReactNode = null;
let iconNode: React.ReactNode;
if (React.isValidElement<{ style?: React.CSSProperties }>(tool.icon)) {
const element = tool.icon as React.ReactElement<{ style?: React.CSSProperties }>;
iconNode = React.cloneElement(element, {
@@ -70,7 +70,7 @@ const DetailedToolItem: React.FC<DetailedToolItemProps> = ({ id, tool, isSelecte
color="orange"
>
{/* we can add more translations for different badges in future, like beta, etc. */}
{t('toolPanel.alpha', 'Alpha')}
{t('toolPanel.alpha', 'Alpha')}
</Badge>
)}
</div>
@@ -106,4 +106,3 @@ const DetailedToolItem: React.FC<DetailedToolItemProps> = ({ id, tool, isSelecte
export default DetailedToolItem;