Merge branch 'V2' into booklet

This commit is contained in:
Reece Browne 2025-09-22 12:19:04 +01:00 committed by GitHub
commit b126fb3bd6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 50 additions and 117 deletions

View File

@ -19,8 +19,8 @@ const viewOptionStyle = {
// Build view options showing text always
const createViewOptions = (currentView: WorkbenchType, switchingTo: WorkbenchType | null) => [
{
const createViewOptions = (currentView: WorkbenchType, switchingTo: WorkbenchType | null, isToolSelected: boolean) => {
const viewerOption = {
label: (
<div style={viewOptionStyle as React.CSSProperties}>
{switchingTo === "viewer" ? (
@ -32,8 +32,9 @@ const createViewOptions = (currentView: WorkbenchType, switchingTo: WorkbenchTyp
</div>
),
value: "viewer",
},
{
};
const pageEditorOption = {
label: (
<div style={viewOptionStyle as React.CSSProperties}>
{currentView === "pageEditor" ? (
@ -50,8 +51,9 @@ const createViewOptions = (currentView: WorkbenchType, switchingTo: WorkbenchTyp
</div>
),
value: "pageEditor",
},
{
};
const fileEditorOption = {
label: (
<div style={viewOptionStyle as React.CSSProperties}>
{currentView === "fileEditor" ? (
@ -68,8 +70,15 @@ const createViewOptions = (currentView: WorkbenchType, switchingTo: WorkbenchTyp
</div>
),
value: "fileEditor",
},
};
// Build options array conditionally
return [
viewerOption,
...(isToolSelected ? [] : [pageEditorOption]),
fileEditorOption,
];
};
interface TopControlsProps {
currentView: WorkbenchType;
@ -111,10 +120,9 @@ const TopControls = ({
return (
<div className="absolute left-0 w-full top-0 z-[100] pointer-events-none">
{!isToolSelected && (
<div className="flex justify-center mt-[0.5rem]">
<SegmentedControl
data={createViewOptions(currentView, switchingTo)}
data={createViewOptions(currentView, switchingTo, isToolSelected)}
value={currentView}
onChange={handleViewChange}
color="blue"
@ -143,7 +151,6 @@ const TopControls = ({
}}
/>
</div>
)}
</div>
);
};

View File

@ -8,26 +8,6 @@ import { FileId, BaseFileMetadata } from './file';
// Re-export FileId for convenience
export type { FileId };
export type ModeType =
| 'viewer'
| 'pageEditor'
| 'fileEditor'
| 'merge'
| 'split'
| 'compress'
| 'ocr'
| 'convert'
| 'sanitize'
| 'addPassword'
| 'changePermissions'
| 'addWatermark'
| 'removePassword'
| 'single-large-page'
| 'repair'
| 'unlockPdfForms'
| 'removeCertificateSign'
| 'auto-rename-pdf-file';
// Normalized state types
export interface ProcessedFilePage {
thumbnail?: string;
@ -209,32 +189,6 @@ export function revokeFileResources(record: StirlingFileStub): void {
}
}
export type OperationType = 'merge' | 'split' | 'compress' | 'add' | 'remove' | 'replace' | 'convert' | 'upload' | 'ocr' | 'sanitize';
export interface FileOperation {
id: string;
type: OperationType;
timestamp: number;
fileIds: FileId[];
status: 'pending' | 'applied' | 'failed';
data?: any;
metadata?: {
originalFileName?: string;
outputFileNames?: string[];
fileSize?: number;
pageCount?: number;
error?: string;
};
}
export interface FileOperationHistory {
fileId: FileId;
fileName: string;
operations: (FileOperation | PageOperation)[];
createdAt: number;
lastModified: number;
}
export interface ViewerConfig {
zoom: number;
currentPage: number;

View File

@ -1,28 +0,0 @@
import { FileId } from '../types/file';
import { FileOperation } from '../types/fileContext';
/**
* Creates operation tracking data for FileContext integration
*/
export const createOperation = <TParams = void>(
operationType: string,
_params: TParams,
selectedFiles: File[]
): { operation: FileOperation; operationId: string; fileId: FileId } => {
const operationId = `${operationType}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
const fileId = selectedFiles.map(f => f.name).join(',') as FileId;
const operation: FileOperation = {
id: operationId,
type: operationType,
timestamp: Date.now(),
fileIds: selectedFiles.map(f => f.name),
status: 'pending',
metadata: {
originalFileName: selectedFiles[0]?.name,
fileSize: selectedFiles.reduce((sum, f) => sum + f.size, 0)
}
} as any /* FIX ME*/;
return { operation, operationId, fileId };
};