weex-nuke
Version:
基于 Rax 、Weex 的高性能组件体系 ~~
144 lines (131 loc) • 3.81 kB
JSX
/** @jsx createElement */
import { createElement, Component, render } from 'rax';
import View from 'nuke-view';
import Env from 'nuke-env';
import Dialog from 'nuke-dialog';
import { StyleProvider } from 'nuke-theme-provider';
import {
decodeVar,
DemoContainer,
DemoSection,
Demo,
DemoItem,
initDemo,
} from '@alife/nuke-demo-helper';
const msg =
Env.appInfo.platform === 'iOS'
? 'A message should be a short, complete sentence.'
: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna wirl aliqua. Up exlaborum incididunt.';
const App = class NukeDemoIndex extends Component {
constructor() {
super();
}
componentDidMount() {
Dialog.confirm({
title: 'A Short Title is Best',
content: msg,
locale: { confirm: 'Primary' },
type: 'iOS',
renderMask: false,
container: this.refs.confirmRoot1,
});
Dialog.alert({
title: 'A Short Title is Best',
content: msg,
locale: { confirm: 'Primary' },
type: 'iOS',
renderMask: false,
container: this.refs.alertRoot1,
});
Dialog.alert({
title: 'A longer title can extend over multiple lines',
content: msg,
locale: { confirm: 'Primary' },
type: 'iOS',
renderMask: false,
container: this.refs.alertRoot2,
});
Dialog.confirm({
title: 'A Short Title is Best',
content: msg,
locale: { confirm: 'Primary' },
type: 'android',
renderMask: false,
container: this.refs.confirmRoot2,
});
Dialog.alert({
title: 'A Short Title is Best',
content: msg,
type: 'android',
locale: { confirm: 'Primary' },
renderMask: false,
container: this.refs.alertRoot3,
});
Dialog.alert({
title: 'A longer title can extend over multiple lines',
content: msg,
type: 'android',
locale: { confirm: 'Primary' },
renderMask: false,
container: this.refs.alertRoot4,
});
}
render() {
return (
<StyleProvider style={decodeVar(this.props.variable)}>
<DemoContainer>
<DemoSection title="Alert iOS">
<Demo>
<DemoItem direction="column">
<View ref="alertRoot1" style={styles.miniMask} />
</DemoItem>
<DemoItem direction="column">
<View ref="alertRoot2" style={styles.miniMask} />
</DemoItem>
</Demo>
</DemoSection>
<DemoSection title="Confirm iOS">
<Demo>
<DemoItem direction="column">
<View ref="confirmRoot1" style={styles.miniMask} />
</DemoItem>
</Demo>
</DemoSection>
<DemoSection title="Alert android">
<Demo>
<DemoItem direction="column">
<View ref="alertRoot3" style={styles.miniMask} />
</DemoItem>
<DemoItem direction="column">
<View ref="alertRoot4" style={styles.miniMask} />
</DemoItem>
</Demo>
</DemoSection>
<DemoSection title="Confirm android">
<Demo>
<DemoItem direction="column">
<View ref="confirmRoot2" style={styles.miniMask} />
</DemoItem>
</Demo>
</DemoSection>
</DemoContainer>
</StyleProvider>
);
}
};
const styles = {
btn: {
marginBottom: 30,
},
miniMask: {
height: 600,
backgroundColor: '#cccccc',
alignItems: 'center',
justifyContent: 'center',
},
};
window.renderDemo = function (lang, variable) {
render(<App variable={variable} />);
};
renderDemo('en-us', window.THEME_VARIABLE);
initDemo('dialog');