fix: full width & height
This commit is contained in:
parent
2d58d486e6
commit
29aa3208c6
1 changed files with 20 additions and 3 deletions
|
@ -11,7 +11,6 @@
|
||||||
import { handleError } from '$lib/utils/handle-error';
|
import { handleError } from '$lib/utils/handle-error';
|
||||||
|
|
||||||
export let asset: AssetResponseDto;
|
export let asset: AssetResponseDto;
|
||||||
export let element: HTMLDivElement | undefined = undefined;
|
|
||||||
export let haveFadeTransition = true;
|
export let haveFadeTransition = true;
|
||||||
|
|
||||||
// const orientationToRotation = (value: string): number => {
|
// const orientationToRotation = (value: string): number => {
|
||||||
|
@ -29,6 +28,18 @@
|
||||||
// }
|
// }
|
||||||
// };
|
// };
|
||||||
|
|
||||||
|
const isHorizontal = (zoom: number): boolean => {
|
||||||
|
return (((zoom % 360) + 360) / 90) % 2 === 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
$: {
|
||||||
|
if (isHorizontal($zoomImageWheelState.currentRotation)) {
|
||||||
|
[imgWidth, imgHeight] = [clientWidth, clientHeight];
|
||||||
|
} else {
|
||||||
|
[imgHeight, imgWidth] = [clientWidth, clientHeight];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const rotationToOrientation = (rotation: number): number => {
|
const rotationToOrientation = (rotation: number): number => {
|
||||||
switch (((rotation % 360) + 360) % 360) {
|
switch (((rotation % 360) + 360) % 360) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -56,6 +67,10 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let clientWidth: number;
|
||||||
|
let clientHeight: number;
|
||||||
|
let imgWidth: number;
|
||||||
|
let imgHeight: number;
|
||||||
let imgElement: HTMLDivElement;
|
let imgElement: HTMLDivElement;
|
||||||
let assetData: string;
|
let assetData: string;
|
||||||
let abortController: AbortController;
|
let abortController: AbortController;
|
||||||
|
@ -163,20 +178,22 @@
|
||||||
<svelte:window on:keydown={handleKeypress} on:copyImage={doCopy} on:zoomImage={doZoomImage} />
|
<svelte:window on:keydown={handleKeypress} on:copyImage={doCopy} on:zoomImage={doZoomImage} />
|
||||||
|
|
||||||
<div
|
<div
|
||||||
bind:this={element}
|
bind:clientHeight={clientHeight}
|
||||||
|
bind:clientWidth={clientWidth}
|
||||||
transition:fade={{ duration: haveFadeTransition ? 150 : 0 }}
|
transition:fade={{ duration: haveFadeTransition ? 150 : 0 }}
|
||||||
class="flex h-full select-none place-content-center place-items-center"
|
class="flex h-full select-none place-content-center place-items-center"
|
||||||
>
|
>
|
||||||
{#await loadAssetData({ loadOriginal: false })}
|
{#await loadAssetData({ loadOriginal: false })}
|
||||||
<LoadingSpinner />
|
<LoadingSpinner />
|
||||||
{:then}
|
{:then}
|
||||||
<div bind:this={imgElement} class="h-full w-full">
|
<div bind:this={imgElement}>
|
||||||
<img
|
<img
|
||||||
transition:fade={{ duration: haveFadeTransition ? 150 : 0 }}
|
transition:fade={{ duration: haveFadeTransition ? 150 : 0 }}
|
||||||
src={assetData}
|
src={assetData}
|
||||||
alt={asset.id}
|
alt={asset.id}
|
||||||
class="h-full w-full object-contain"
|
class="h-full w-full object-contain"
|
||||||
draggable="false"
|
draggable="false"
|
||||||
|
style={`width:${imgWidth}px;height:${imgHeight}px;`}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{/await}
|
{/await}
|
||||||
|
|
Loading…
Reference in a new issue