Back out "JS apps support 1/n"

Summary:
Original commit changeset: 56d1ca1a60ed

This broke Android support in some instances. We haven't had a chance to investigate this yet, but this should cleanly reapply, so we can figure out what happened after the release.

Reviewed By: cekkaewnumchai

Differential Revision: D18688590

fbshipit-source-id: ff84080d43fa481cc8c8c669a76aed15d0f8aa56
This commit is contained in:
John Knox
2019-11-25 09:53:16 -08:00
committed by realpassy
parent e50f900758
commit 2fd6301876
10 changed files with 10 additions and 496 deletions

View File

@@ -12,17 +12,11 @@ import {connect, ReactReduxContext} from 'react-redux';
import {spawn} from 'child_process';
import {dirname} from 'path';
import {selectDevice, preferDevice} from '../reducers/connections';
import {
setActiveSheet,
ActiveSheet,
ACTIVE_SHEET_JS_EMULATOR_LAUNCHER,
} from '../reducers/application';
import {default as which} from 'which';
import {showOpenDialog} from '../utils/exportData';
import BaseDevice from '../devices/BaseDevice';
import React, {Component} from 'react';
import {State} from '../reducers';
import GK from '../fb-stubs/GK';
type StateFromProps = {
selectedDevice: BaseDevice | null | undefined;
@@ -33,7 +27,6 @@ type StateFromProps = {
type DispatchFromProps = {
selectDevice: (device: BaseDevice) => void;
preferDevice: (device: string) => void;
setActiveSheet: (sheet: ActiveSheet) => void;
};
type OwnProps = {};
@@ -161,30 +154,17 @@ class DevicesButton extends Component<Props> {
label: name,
click: () => this.launchEmulator(name),
}));
// Launch JS emulator
if (GK.get('flipper_js_client_emulator')) {
if (emulators.length > 0) {
dropdown.push(
{type: 'separator' as 'separator'},
{
label: 'Launch Android emulators',
enabled: false,
},
...emulators,
);
}
if (emulators.length > 0) {
dropdown.push(
{type: 'separator' as 'separator'},
{
label: 'Launch JS Web App',
click: () =>
this.props.setActiveSheet(ACTIVE_SHEET_JS_EMULATOR_LAUNCHER),
label: 'Launch Android emulators',
enabled: false,
},
...emulators,
);
}
}
if (dropdown.length > 0) {
dropdown.push({type: 'separator' as 'separator'});
}
@@ -216,6 +196,5 @@ export default connect<StateFromProps, DispatchFromProps, OwnProps, State>(
{
selectDevice,
preferDevice,
setActiveSheet,
},
)(DevicesButton);

View File

@@ -1,122 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import {
FlexColumn,
Button,
styled,
Text,
FlexRow,
Spacer,
Input,
Label,
} from 'flipper';
import React, {Component} from 'react';
import {connect} from 'react-redux';
import {State as Store} from '../reducers';
import {launchJsEmulator} from '../utils/js-client/serverUtils';
const Container = styled(FlexColumn)({
padding: 20,
width: 800,
});
const Title = styled(Text)({
marginBottom: 18,
marginRight: 10,
fontWeight: 100,
fontSize: '40px',
});
const textareaStyle = {
margin: 0,
marginBottom: 10,
};
const TitleInput = styled(Input)({
...textareaStyle,
height: 30,
});
type OwnProps = {
onHide: () => void;
};
type StateFromProps = {};
type DispatchFromProps = {};
type State = {
url: string;
width: number;
height: number;
};
type Props = OwnProps & StateFromProps & DispatchFromProps;
class JSEmulatorLauncherSheet extends Component<Props, State> {
state: State = {
url: 'http://localhost:8888',
width: 800,
height: 600,
};
onUrlChange = (e: React.ChangeEvent<HTMLInputElement>) => {
this.setState({url: e.target.value});
};
onHeightChange = (e: React.ChangeEvent<HTMLInputElement>) => {
this.setState({height: Number(e.target.value)});
};
onWidthChange = (e: React.ChangeEvent<HTMLInputElement>) => {
this.setState({width: Number(e.target.value)});
};
render() {
const {url, height, width} = this.state;
return (
<Container>
<Title>Launch Web App</Title>
<Label>Url</Label>
<TitleInput value={url} onChange={this.onUrlChange} />
<Label>Height</Label>
<TitleInput value={height} onChange={this.onHeightChange} />
<Label>Width</Label>
<TitleInput value={width} onChange={this.onWidthChange} />
<br />
<FlexRow>
<Spacer />
<Button compact padded onClick={this.props.onHide}>
Cancel
</Button>
<Button
type="primary"
compact
padded
onClick={() => {
launchJsEmulator(
this.state.url,
this.state.height,
this.state.width,
);
this.props.onHide();
}}>
Launch
</Button>
</FlexRow>
</Container>
);
}
}
export default connect<StateFromProps, DispatchFromProps, OwnProps, Store>(
() => ({}),
{},
)(JSEmulatorLauncherSheet);