Skip to content

Commit 7e9486d

Browse files
authored
Merge pull request #609 from ZenUml/fix/avoid-duplicate-requests
Avoid duplicate sync-diagram request
2 parents e540485 + 0abc272 commit 7e9486d

File tree

3 files changed

+12
-18
lines changed

3 files changed

+12
-18
lines changed

src/components/SavedItemPane.jsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,13 @@ export default class SavedItemPane extends Component {
1111
super(props);
1212
this.items = [];
1313
this.state = {
14-
searchText: null
14+
searchText: null,
1515
};
1616
}
1717
componentWillUpdate(nextProps) {
18-
console.log('component will update');
1918
if (this.props.items !== nextProps.items) {
2019
this.items = Object.values(nextProps.items);
21-
this.items.sort(function(a, b) {
20+
this.items.sort(function (a, b) {
2221
return b.updatedOn - a.updatedOn;
2322
});
2423
}
@@ -90,7 +89,7 @@ export default class SavedItemPane extends Component {
9089
var file = e.target.files[0];
9190

9291
var reader = new FileReader();
93-
reader.addEventListener('load', progressEvent => {
92+
reader.addEventListener('load', (progressEvent) => {
9493
var items;
9594
try {
9695
items = JSON.parse(progressEvent.target.result);
@@ -123,13 +122,17 @@ export default class SavedItemPane extends Component {
123122
console.log('search input handler');
124123
const text = e.target.value;
125124
await this.setState({
126-
searchText: text
125+
searchText: text,
127126
});
128127
trackEvent('ui', 'searchInputType');
129128
}
130129

131130
filteredItems() {
132-
return this.items.filter(item => !this.state.searchText || item.title.toLowerCase().indexOf(this.state.searchText) !== -1);
131+
return this.items.filter(
132+
(item) =>
133+
!this.state.searchText ||
134+
item.title.toLowerCase().indexOf(this.state.searchText) !== -1
135+
);
133136
}
134137

135138
render() {
@@ -178,7 +181,7 @@ export default class SavedItemPane extends Component {
178181
{!this.filteredItems().length && this.items.length ? (
179182
<div class="mt-1">No match found.</div>
180183
) : null}
181-
{this.filteredItems().map(item => (
184+
{this.filteredItems().map((item) => (
182185
<ItemTile
183186
item={item}
184187
onClick={this.itemClickHandler.bind(this, item)}

src/components/SharePanel.jsx

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,7 @@ export class SharePanel extends Component {
1616
}
1717

1818
async componentDidMount() {
19-
await this.syncDiagram(this.props.currentItem);
20-
}
21-
22-
async componentDidUpdate(prevProps) {
23-
if (prevProps.currentItem !== this.props.currentItem) {
24-
await this.syncDiagram(this.props.currentItem);
25-
}
26-
}
27-
28-
async syncDiagram(currentItem) {
29-
const result = await syncDiagram(currentItem);
19+
const result = await syncDiagram(this.props.currentItem);
3020
if (!result) {
3121
return;
3222
}

src/services/syncService.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import firebase from 'firebase/app';
33
async function syncDiagram(currentItem) {
44
const { id, title, js, imageBase64 } = currentItem;
55
if (!js || !title || !imageBase64) {
6+
console.warn('Cannot sync diagram because of missing data');
67
return null;
78
}
89

0 commit comments

Comments
 (0)