diff --git a/CHANGELOG.md b/CHANGELOG.md index b8190b4..469e09a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.11.3 + +增加旋转回正功能。 + +优化鼠标样式。 + ## 0.11.2 优化拖拽速度 diff --git a/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md b/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md index 0bf8e8e..4a8f772 100644 --- a/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md +++ b/packages/dooringx-dumi-doc/docs/ChangeLog/index.en.md @@ -5,6 +5,9 @@ nav: title: change log order: 6 --- +## 0.11.3 +Add rotation return function. +Optimize mouse style. ## 0.11.2 Optimize drag speed ## 0.11.1 diff --git a/packages/dooringx-dumi-doc/docs/ChangeLog/index.md b/packages/dooringx-dumi-doc/docs/ChangeLog/index.md index e4f0264..0e105d8 100644 --- a/packages/dooringx-dumi-doc/docs/ChangeLog/index.md +++ b/packages/dooringx-dumi-doc/docs/ChangeLog/index.md @@ -5,6 +5,12 @@ nav: title: 变更日志 order: 6 --- +## 0.11.3 + +增加旋转回正功能。 + +优化鼠标样式。 + ## 0.11.2 优化拖拽速度 diff --git a/packages/dooringx-lib/package.json b/packages/dooringx-lib/package.json index 0613946..aab9ade 100644 --- a/packages/dooringx-lib/package.json +++ b/packages/dooringx-lib/package.json @@ -1,5 +1,5 @@ { - "version": "0.11.2", + "version": "0.11.3", "license": "MIT", "main": "dist/index.js", "module": "dist/dooringx-lib.esm.js", @@ -50,5 +50,9 @@ "react-color": "^2.19.3", "react-intl": "^5.20.10", "react-sortable-hoc": "^2.0.0" - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/H5-Dooring/dooringx.git" + } } diff --git a/packages/dooringx-lib/src/components/blocks.tsx b/packages/dooringx-lib/src/components/blocks.tsx index da84865..cd3e814 100644 --- a/packages/dooringx-lib/src/components/blocks.tsx +++ b/packages/dooringx-lib/src/components/blocks.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { transfer } from '../core/transfer'; import { UserConfig } from '../config'; import styles from '../index.less'; -import { RotateResizer } from '../core/rotateHandler'; +import { RotateReset, RotateResizer } from '../core/rotateHandler'; interface BlockProps { data: IBlockType; context: 'edit' | 'preview'; @@ -185,6 +185,7 @@ function Blocks(props: PropsWithChildren) { )} + ); } else { diff --git a/packages/dooringx-lib/src/components/container.tsx b/packages/dooringx-lib/src/components/container.tsx index ab36ac8..65a82e5 100644 --- a/packages/dooringx-lib/src/components/container.tsx +++ b/packages/dooringx-lib/src/components/container.tsx @@ -60,6 +60,7 @@ function Container(props: PropsWithChildren) { backgroundColor: bgColor(), position: 'relative', overflow: 'hidden', + cursor: 'default', ...editContainerStyle, }} {...(props.context === 'edit' ? containerDragResolve(props.config) : null)} diff --git a/packages/dooringx-lib/src/components/wrapperMove/event.ts b/packages/dooringx-lib/src/components/wrapperMove/event.ts index c552b68..fb1a1d0 100644 --- a/packages/dooringx-lib/src/components/wrapperMove/event.ts +++ b/packages/dooringx-lib/src/components/wrapperMove/event.ts @@ -64,7 +64,6 @@ export const wrapperEvent = (ref: RefObject, config: UserConfig) }; export const wrapperMoveMouseUp = (config: UserConfig) => { if (wrapperMoveState.ref && wrapperMoveState.ref.current) { - wrapperMoveState.ref.current.style.cursor = 'default'; } containerResizer.onMouseUp(config); wrapperMoveState.isDrag = false; diff --git a/packages/dooringx-lib/src/components/wrapperMove/index.tsx b/packages/dooringx-lib/src/components/wrapperMove/index.tsx index 49b25e6..bbe5c27 100644 --- a/packages/dooringx-lib/src/components/wrapperMove/index.tsx +++ b/packages/dooringx-lib/src/components/wrapperMove/index.tsx @@ -12,6 +12,7 @@ import React from 'react'; import Ticker from './ticker'; import UserConfig from '../../config'; import TimeLine from '../timeLine/timeline'; +import styles from '../../index.less'; export interface ContainerWrapperProps extends AllHTMLAttributes { config: UserConfig; @@ -25,7 +26,7 @@ function ContainerWrapper(props: PropsWithChildren) { const ticker = props.config.ticker; return (
{render}; } + +const resetResolve = (e: React.MouseEvent, item: IBlockType, config: UserConfig) => { + e.stopPropagation(); + const store = config.getStore(); + const clonedata: IStoreData = deepCopy(store.getData()); + clonedata.block.forEach((v) => { + if (v.id === item.id) { + v.rotate.value = 0; + } + }); + store.setData(clonedata); +}; + +export function RotateReset(props: RotateResizerProps) { + const render = useMemo(() => { + if (props.data.focus && props.data.rotate.canRotate && props.data.canDrag) { + return ( +
{ + resetResolve(e, props.data, props.config); + }} + className={styles.rotatereset} + title={'rotate reset'} + > + +
+ ); + } else { + return null; + } + }, [props.config, props.data]); + + return <>{render}; +} diff --git a/packages/dooringx-lib/src/index.less b/packages/dooringx-lib/src/index.less index 410a9e4..fd22260 100644 --- a/packages/dooringx-lib/src/index.less +++ b/packages/dooringx-lib/src/index.less @@ -72,6 +72,7 @@ } .yh_block_focus { + cursor: move; &::before { position: absolute; top: -3px; @@ -203,3 +204,16 @@ cursor: grab; font-size: 20px; } +.rotatereset { + position: absolute; + top: -35px; + left: calc(100% - 15px); + cursor: pointer; + font-size: 20px; + color: gray; +} +.yh_container_wrapper { + &:hover { + cursor: grab; + } +} diff --git a/packages/dooringx-plugin-template/package.json b/packages/dooringx-plugin-template/package.json index 9b5b337..28d69b9 100644 --- a/packages/dooringx-plugin-template/package.json +++ b/packages/dooringx-plugin-template/package.json @@ -1,6 +1,6 @@ { "name": "dooringx-plugin-template", - "version": "0.11.2", + "version": "0.11.3", "description": "> TODO: description", "author": "yehuozhili <673632758@qq.com>", "homepage": "https://github.com/H5-Dooring/dooringx#readme", diff --git a/packages/dooringx-plugin-template/template/template.json b/packages/dooringx-plugin-template/template/template.json index 21fc138..f504de4 100644 --- a/packages/dooringx-plugin-template/template/template.json +++ b/packages/dooringx-plugin-template/template/template.json @@ -40,7 +40,7 @@ "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@svgr/rollup": "^5.5.0", - "dooringx-lib": "^0.11.2", + "dooringx-lib": "^0.11.3", "postcss": "^8.3.6", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-postcss": "^4.0.1",