(server) Click to Expand in Multiple Selector
Summary: per title Changelog: Add multiple selector to layout inspector to allow user to select components at a position Reviewed By: mweststrate Differential Revision: D21214898 fbshipit-source-id: 7b52d9d3c93e7ec0d28124a3a675ccfdd014c54d
This commit is contained in:
committed by
Facebook GitHub Bot
parent
a6b69f7939
commit
6daff06e19
@@ -331,7 +331,7 @@ export default class Inspector extends Component<Props, State> {
|
|||||||
|
|
||||||
async getAndExpandPath(path: Array<ElementID>) {
|
async getAndExpandPath(path: Array<ElementID>) {
|
||||||
await Promise.all(path.map((id) => this.getChildren(id, {})));
|
await Promise.all(path.map((id) => this.getChildren(id, {})));
|
||||||
this.onElementSelected(path[path.length - 1]);
|
this.onElementSelected()(path[path.length - 1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
getElementLeaves(tree: ElementSelectorNode): Array<ElementID> {
|
getElementLeaves(tree: ElementSelectorNode): Array<ElementID> {
|
||||||
@@ -376,9 +376,32 @@ export default class Inspector extends Component<Props, State> {
|
|||||||
this.getAndExpandPath(this.getPathForNode(tree, null) ?? []);
|
this.getAndExpandPath(this.getPathForNode(tree, null) ?? []);
|
||||||
}
|
}
|
||||||
|
|
||||||
onElementSelected = debounce((selectedKey: ElementID) => {
|
onElementSelected = (option?: {
|
||||||
this.onElementHovered(selectedKey);
|
cancelSelector?: boolean;
|
||||||
this.props.onSelect(selectedKey);
|
expandPathToElement?: boolean;
|
||||||
|
}) =>
|
||||||
|
debounce(async (selectedKey: ElementID) => {
|
||||||
|
if (option?.cancelSelector) {
|
||||||
|
this.setState({elementSelector: null, axElementSelector: null});
|
||||||
|
}
|
||||||
|
if (option?.expandPathToElement) {
|
||||||
|
const data = this.props.ax
|
||||||
|
? this.state.axElementSelector
|
||||||
|
: this.state.elementSelector;
|
||||||
|
await this.getAndExpandPath(
|
||||||
|
this.getPathForNode(data?.tree ?? {}, selectedKey) ?? [],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.onElementHovered(selectedKey);
|
||||||
|
this.props.onSelect(selectedKey);
|
||||||
|
});
|
||||||
|
|
||||||
|
onElementSelectedAtMainSection = this.onElementSelected({
|
||||||
|
cancelSelector: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
onElementSelectedAndExpanded = this.onElementSelected({
|
||||||
|
expandPathToElement: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
onElementHovered = debounce((key: ElementID | null | undefined) => {
|
onElementHovered = debounce((key: ElementID | null | undefined) => {
|
||||||
@@ -417,7 +440,7 @@ export default class Inspector extends Component<Props, State> {
|
|||||||
return this.root() ? (
|
return this.root() ? (
|
||||||
<ElementsInspectorContainer>
|
<ElementsInspectorContainer>
|
||||||
<ElementsInspector
|
<ElementsInspector
|
||||||
onElementSelected={this.onElementSelected}
|
onElementSelected={this.onElementSelectedAtMainSection}
|
||||||
onElementHovered={this.onElementHovered}
|
onElementHovered={this.onElementHovered}
|
||||||
onElementExpanded={this.onElementExpanded}
|
onElementExpanded={this.onElementExpanded}
|
||||||
onValueChanged={this.props.onDataValueChanged}
|
onValueChanged={this.props.onDataValueChanged}
|
||||||
@@ -432,7 +455,7 @@ export default class Inspector extends Component<Props, State> {
|
|||||||
<MultipleSelectorSection
|
<MultipleSelectorSection
|
||||||
initialSelectedElement={this.selected()}
|
initialSelectedElement={this.selected()}
|
||||||
elements={selectorData.elements}
|
elements={selectorData.elements}
|
||||||
onElementSelected={this.onElementSelected}
|
onElementSelected={this.onElementSelectedAndExpanded}
|
||||||
onElementHovered={this.onElementHovered}
|
onElementHovered={this.onElementHovered}
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
|
|||||||
Reference in New Issue
Block a user