mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-09 18:02:50 +01:00
click away for selected modifications
This commit is contained in:
parent
f1f1f79462
commit
2b10ab511c
1 changed files with 23 additions and 3 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import React from 'react';
|
||||
import React, {useContext, useEffect} from 'react';
|
||||
import connect from 'ui/connect';
|
||||
import Widget from 'ui/components/Widget';
|
||||
import decoratorChain from 'ui/decoratorChain';
|
||||
|
|
@ -11,12 +11,26 @@ import ButtonGroup from 'ui/components/controls/ButtonGroup';
|
|||
import Button from 'ui/components/controls/Button';
|
||||
import {removeAndDropDependants} from '../craftHistoryUtils';
|
||||
import RenderObject from 'ui/components/RenderObject';
|
||||
import {AppContext} from "cad/dom/components/AppContext";
|
||||
|
||||
function SelectedModificationInfo({ history, index,
|
||||
operationRegistry,
|
||||
locationHint: lh,
|
||||
drop, edit,
|
||||
close}) {
|
||||
const ctx = useContext(AppContext);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
function clickAwayHandler() {
|
||||
ctx.streams.ui.craft.modificationSelection.next(EMPTY_OBJECT);
|
||||
}
|
||||
|
||||
ctx.domService.viewerContainer.addEventListener('click', clickAwayHandler);
|
||||
return () => {
|
||||
ctx.domService.viewerContainer.removeEventListener('click', clickAwayHandler);
|
||||
}
|
||||
}, []);
|
||||
let m = history[index];
|
||||
let visible = !!m;
|
||||
if (!visible) {
|
||||
|
|
@ -57,8 +71,14 @@ export default decoratorChain(
|
|||
).map(merger)),
|
||||
mapContext((ctx, props) => ({
|
||||
close: () => ctx.streams.ui.craft.modificationSelection.next(EMPTY_OBJECT),
|
||||
drop: () => ctx.streams.craft.modifications.update(modifications => removeAndDropDependants(modifications, props.index)),
|
||||
edit: () => ctx.streams.craft.modifications.update(({history}) => ({history, pointer: props.index - 1}))
|
||||
drop: () => {
|
||||
ctx.streams.craft.modifications.update(modifications => removeAndDropDependants(modifications, props.index))
|
||||
ctx.streams.ui.craft.modificationSelection.next(EMPTY_OBJECT);
|
||||
},
|
||||
edit: () => {
|
||||
ctx.streams.craft.modifications.update(({history}) => ({history, pointer: props.index - 1}))
|
||||
ctx.streams.ui.craft.modificationSelection.next(EMPTY_OBJECT);
|
||||
}
|
||||
}))
|
||||
)(SelectedModificationInfo);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue