* feat: enable the left or right keyboard to switch image * fix: eslint errorpull/5649/head
parent
dead1a3753
commit
c7e079bd65
|
@ -15,6 +15,7 @@ import Dialog from '../../vc-dialog';
|
||||||
import { type IDialogChildProps, dialogPropTypes } from '../../vc-dialog/IDialogPropTypes';
|
import { type IDialogChildProps, dialogPropTypes } from '../../vc-dialog/IDialogPropTypes';
|
||||||
import { getOffset } from '../../vc-util/Dom/css';
|
import { getOffset } from '../../vc-util/Dom/css';
|
||||||
import addEventListener from '../../vc-util/Dom/addEventListener';
|
import addEventListener from '../../vc-util/Dom/addEventListener';
|
||||||
|
import KeyCode from '../../_util/KeyCode';
|
||||||
import { warning } from '../../vc-util/warning';
|
import { warning } from '../../vc-util/warning';
|
||||||
import useFrameSetState from './hooks/useFrameSetState';
|
import useFrameSetState from './hooks/useFrameSetState';
|
||||||
import getFixScaleEleTransPosition from './getFixScaleEleTransPosition';
|
import getFixScaleEleTransPosition from './getFixScaleEleTransPosition';
|
||||||
|
@ -221,6 +222,32 @@ const Preview = defineComponent({
|
||||||
lastWheelZoomDirection.value = { wheelDirection };
|
lastWheelZoomDirection.value = { wheelDirection };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onKeyDown = (event: KeyboardEvent) => {
|
||||||
|
if (!props.visible || !showLeftOrRightSwitches.value) return;
|
||||||
|
|
||||||
|
event.preventDefault();
|
||||||
|
if (event.keyCode === KeyCode.LEFT) {
|
||||||
|
if (currentPreviewIndex.value > 0) {
|
||||||
|
setCurrent(previewUrlsKeys.value[currentPreviewIndex.value - 1]);
|
||||||
|
}
|
||||||
|
} else if (event.keyCode === KeyCode.RIGHT) {
|
||||||
|
if (currentPreviewIndex.value < previewGroupCount.value - 1) {
|
||||||
|
setCurrent(previewUrlsKeys.value[currentPreviewIndex.value + 1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const onDoubleClick = () => {
|
||||||
|
if (props.visible) {
|
||||||
|
if (scale.value !== 1) {
|
||||||
|
scale.value = 1;
|
||||||
|
}
|
||||||
|
if (position.x !== initialPosition.x || position.y !== initialPosition.y) {
|
||||||
|
setPosition(initialPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let removeListeners = () => {};
|
let removeListeners = () => {};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
watch(
|
watch(
|
||||||
|
@ -235,6 +262,7 @@ const Preview = defineComponent({
|
||||||
const onScrollWheelListener = addEventListener(window, 'wheel', onWheelMove, {
|
const onScrollWheelListener = addEventListener(window, 'wheel', onWheelMove, {
|
||||||
passive: false,
|
passive: false,
|
||||||
});
|
});
|
||||||
|
const onKeyDownListener = addEventListener(window, 'keydown', onKeyDown, false);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Resolve if in iframe lost event
|
// Resolve if in iframe lost event
|
||||||
|
@ -257,6 +285,7 @@ const Preview = defineComponent({
|
||||||
onMouseUpListener.remove();
|
onMouseUpListener.remove();
|
||||||
onMouseMoveListener.remove();
|
onMouseMoveListener.remove();
|
||||||
onScrollWheelListener.remove();
|
onScrollWheelListener.remove();
|
||||||
|
onKeyDownListener.remove();
|
||||||
|
|
||||||
/* istanbul ignore next */
|
/* istanbul ignore next */
|
||||||
if (onTopMouseUpListener) onTopMouseUpListener.remove();
|
if (onTopMouseUpListener) onTopMouseUpListener.remove();
|
||||||
|
@ -310,6 +339,7 @@ const Preview = defineComponent({
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
onMousedown={onMouseDown}
|
onMousedown={onMouseDown}
|
||||||
|
onDblclick={onDoubleClick}
|
||||||
ref={imgRef}
|
ref={imgRef}
|
||||||
class={`${props.prefixCls}-img`}
|
class={`${props.prefixCls}-img`}
|
||||||
src={combinationSrc.value}
|
src={combinationSrc.value}
|
||||||
|
|
Loading…
Reference in New Issue