mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-09-22 19:46:39 +00:00

Switched to Embed pdf for viewer --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: James Brunton <james@stirlingpdf.com>
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { useEffect, useState } from 'react';
|
|
import { useRotate } from '@embedpdf/plugin-rotate/react';
|
|
import { useViewer } from '../../contexts/ViewerContext';
|
|
|
|
/**
|
|
* Component that runs inside EmbedPDF context and updates rotation state in ViewerContext
|
|
*/
|
|
export function RotateAPIBridge() {
|
|
const { provides: rotate, rotation } = useRotate();
|
|
const { registerBridge } = useViewer();
|
|
|
|
// Store state locally
|
|
const [_localState, setLocalState] = useState({
|
|
rotation: 0
|
|
});
|
|
|
|
useEffect(() => {
|
|
if (rotate) {
|
|
// Update local state
|
|
const newState = {
|
|
rotation
|
|
};
|
|
setLocalState(newState);
|
|
|
|
// Register this bridge with ViewerContext
|
|
registerBridge('rotation', {
|
|
state: newState,
|
|
api: {
|
|
rotateForward: () => rotate.rotateForward(),
|
|
rotateBackward: () => rotate.rotateBackward(),
|
|
setRotation: (rotationValue: number) => rotate.setRotation(rotationValue),
|
|
getRotation: () => rotation,
|
|
}
|
|
});
|
|
}
|
|
}, [rotate, rotation]);
|
|
|
|
return null;
|
|
} |