mirror of
https://github.com/chinchang/web-maker.git
synced 2025-07-31 10:40:10 +02:00
CreateNewModal: fix icon highlight on changing tabs.
Tabs: Also add support for onChange handler.
This commit is contained in:
@@ -11,14 +11,14 @@ export class CreateNewModal extends Component {
|
|||||||
super(props);
|
super(props);
|
||||||
this.modeChangeHandler = this.modeChangeHandler.bind(this);
|
this.modeChangeHandler = this.modeChangeHandler.bind(this);
|
||||||
}
|
}
|
||||||
modeChangeHandler(e) {
|
modeChangeHandler(selectedtabIndex) {
|
||||||
this.setState({
|
this.setState({
|
||||||
isFileModeSelected: e.target.checked
|
isFileModeSelected: !!selectedtabIndex
|
||||||
});
|
});
|
||||||
trackEvent(
|
trackEvent(
|
||||||
'ui',
|
'ui',
|
||||||
'newCreationModeChange',
|
'newCreationModeChange',
|
||||||
e.target.checked ? 'files' : '3panes'
|
!!selectedtabIndex ? 'files' : '3panes'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
@@ -39,9 +39,6 @@ export class CreateNewModal extends Component {
|
|||||||
version="1.1"
|
version="1.1"
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
style={`opacity:${!this.state.isFileModeSelected ? '1' : '0.4'}`}
|
style={`opacity:${!this.state.isFileModeSelected ? '1' : '0.4'}`}
|
||||||
onClick={() => {
|
|
||||||
this.setState({ isFileModeSelected: false });
|
|
||||||
}}
|
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<g
|
<g
|
||||||
@@ -99,9 +96,6 @@ export class CreateNewModal extends Component {
|
|||||||
version="1.1"
|
version="1.1"
|
||||||
style={`opacity:${this.state.isFileModeSelected ? '1' : '0.4'}`}
|
style={`opacity:${this.state.isFileModeSelected ? '1' : '0.4'}`}
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
onClick={() => {
|
|
||||||
this.setState({ isFileModeSelected: true });
|
|
||||||
}}
|
|
||||||
aria-hidden="true"
|
aria-hidden="true"
|
||||||
>
|
>
|
||||||
<g
|
<g
|
||||||
@@ -156,7 +150,7 @@ export class CreateNewModal extends Component {
|
|||||||
return (
|
return (
|
||||||
<Modal show={show} closeHandler={closeHandler}>
|
<Modal show={show} closeHandler={closeHandler}>
|
||||||
<h1 class="mt-0">Create New</h1>
|
<h1 class="mt-0">Create New</h1>
|
||||||
<Tabs horizontal>
|
<Tabs horizontal onChange={this.modeChangeHandler}>
|
||||||
<TabPanel label={option1}>
|
<TabPanel label={option1}>
|
||||||
<div class="d-f fxw-w">
|
<div class="d-f fxw-w">
|
||||||
<button
|
<button
|
||||||
|
@@ -40,6 +40,7 @@ export default class Tabs extends Component {
|
|||||||
this.state = {
|
this.state = {
|
||||||
selectedTab: 0
|
selectedTab: 0
|
||||||
};
|
};
|
||||||
|
this.switchTab = this.switchTab.bind(this);
|
||||||
}
|
}
|
||||||
isSelected(index) {
|
isSelected(index) {
|
||||||
return this.state.selectedTab === index;
|
return this.state.selectedTab === index;
|
||||||
@@ -47,6 +48,9 @@ export default class Tabs extends Component {
|
|||||||
switchTab(selectedTab) {
|
switchTab(selectedTab) {
|
||||||
this.setState({ selectedTab: selectedTab });
|
this.setState({ selectedTab: selectedTab });
|
||||||
this.tabListEl.querySelectorAll('[role=tab]')[selectedTab].focus();
|
this.tabListEl.querySelectorAll('[role=tab]')[selectedTab].focus();
|
||||||
|
if (this.props.onChange) {
|
||||||
|
this.props.onChange(this.state.selectedTab);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
keyUpHandler(e) {
|
keyUpHandler(e) {
|
||||||
let { selectedTab } = this.state;
|
let { selectedTab } = this.state;
|
||||||
@@ -77,7 +81,7 @@ export default class Tabs extends Component {
|
|||||||
isSelected={this.isSelected(index)}
|
isSelected={this.isSelected(index)}
|
||||||
label={child.props.label}
|
label={child.props.label}
|
||||||
onKeyUp={this.keyUpHandler.bind(this)}
|
onKeyUp={this.keyUpHandler.bind(this)}
|
||||||
onClick={() => this.setState({ selectedTab: index })}
|
onClick={() => this.switchTab(index)}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user