Alignment mode
Summary: Adding a toggle to enable/disable alignment mode Reviewed By: jknoxville Differential Revision: D14100534 fbshipit-source-id: e3a49f1f31112ca2c99c2246a12c4f34be1ec61a
This commit is contained in:
committed by
Facebook Github Bot
parent
53f3f2d40f
commit
4f425b05b4
@@ -22,6 +22,7 @@ type Props = {
|
|||||||
ax?: boolean,
|
ax?: boolean,
|
||||||
client: PluginClient,
|
client: PluginClient,
|
||||||
showsSidebar: boolean,
|
showsSidebar: boolean,
|
||||||
|
inAlignmentMode?: boolean,
|
||||||
selectedElement: ?ElementID,
|
selectedElement: ?ElementID,
|
||||||
selectedAXElement: ?ElementID,
|
selectedAXElement: ?ElementID,
|
||||||
onSelect: (ids: ?ElementID) => void,
|
onSelect: (ids: ?ElementID) => void,
|
||||||
@@ -196,6 +197,7 @@ export default class Inspector extends Component<Props> {
|
|||||||
onElementHovered = debounce((key: ?ElementID) =>
|
onElementHovered = debounce((key: ?ElementID) =>
|
||||||
this.props.client.call(this.call().SET_HIGHLIGHTED, {
|
this.props.client.call(this.call().SET_HIGHLIGHTED, {
|
||||||
id: key,
|
id: key,
|
||||||
|
isAlignmentMode: this.props.inAlignmentMode,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ type State = {|
|
|||||||
init: boolean,
|
init: boolean,
|
||||||
inTargetMode: boolean,
|
inTargetMode: boolean,
|
||||||
inAXMode: boolean,
|
inAXMode: boolean,
|
||||||
|
inAlignmentMode: boolean,
|
||||||
selectedElement: ?ElementID,
|
selectedElement: ?ElementID,
|
||||||
selectedAXElement: ?ElementID,
|
selectedAXElement: ?ElementID,
|
||||||
|};
|
|};
|
||||||
@@ -46,6 +47,7 @@ export default class Layout extends FlipperPlugin<State, void, PersistedState> {
|
|||||||
init: false,
|
init: false,
|
||||||
inTargetMode: false,
|
inTargetMode: false,
|
||||||
inAXMode: false,
|
inAXMode: false,
|
||||||
|
inAlignmentMode: false,
|
||||||
selectedElement: null,
|
selectedElement: null,
|
||||||
selectedAXElement: null,
|
selectedAXElement: null,
|
||||||
};
|
};
|
||||||
@@ -81,6 +83,16 @@ export default class Layout extends FlipperPlugin<State, void, PersistedState> {
|
|||||||
this.setState({inAXMode: !this.state.inAXMode});
|
this.setState({inAXMode: !this.state.inAXMode});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
onToggleAlignmentMode = () => {
|
||||||
|
if (this.state.selectedElement) {
|
||||||
|
this.client.send('setHighlighted', {
|
||||||
|
id: this.state.selectedElement,
|
||||||
|
inAlignmentMode: !this.state.inAlignmentMode,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.setState({inAlignmentMode: !this.state.inAlignmentMode});
|
||||||
|
};
|
||||||
|
|
||||||
onDataValueChanged = (path: Array<string>, value: any) => {
|
onDataValueChanged = (path: Array<string>, value: any) => {
|
||||||
const id = this.state.inAXMode
|
const id = this.state.inAXMode
|
||||||
? this.state.selectedAXElement
|
? this.state.selectedAXElement
|
||||||
@@ -96,6 +108,7 @@ export default class Layout extends FlipperPlugin<State, void, PersistedState> {
|
|||||||
render() {
|
render() {
|
||||||
const inspectorProps = {
|
const inspectorProps = {
|
||||||
client: this.client,
|
client: this.client,
|
||||||
|
inAlignmentMode: this.state.inAlignmentMode,
|
||||||
selectedElement: this.state.selectedElement,
|
selectedElement: this.state.selectedElement,
|
||||||
selectedAXElement: this.state.selectedAXElement,
|
selectedAXElement: this.state.selectedAXElement,
|
||||||
setPersistedState: this.props.setPersistedState,
|
setPersistedState: this.props.setPersistedState,
|
||||||
@@ -122,6 +135,12 @@ export default class Layout extends FlipperPlugin<State, void, PersistedState> {
|
|||||||
active={this.state.inAXMode}
|
active={this.state.inAXMode}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
<ToolbarIcon
|
||||||
|
onClick={this.onToggleAlignmentMode}
|
||||||
|
title="Toggle AlignmentMode to show alignment lines"
|
||||||
|
icon="borders"
|
||||||
|
active={this.state.inAlignmentMode}
|
||||||
|
/>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
|
|
||||||
<FlexRow grow={true}>
|
<FlexRow grow={true}>
|
||||||
|
|||||||
Reference in New Issue
Block a user