Skip to content

Commit 4360387

Browse files
authored
Merge pull request #1054 from erikaperugachi/feed
Feed
2 parents 91f2119 + 6de9d08 commit 4360387

File tree

7 files changed

+42
-62
lines changed

7 files changed

+42
-62
lines changed

electron_app/src/ipc/mailbox.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,13 @@ ipc.answerRenderer(
8282
openFolderWhenDone: !isInlineImage
8383
}
8484
);
85-
return downloadedItem.getSavePath();
85+
const newFilePath = downloadedItem.getSavePath();
86+
return { filePath: newFilePath, filename };
8687
} catch (e) {
87-
if (!isInlineImage)
88-
return mailboxWindow.send('display-message-error-download');
88+
if (!isInlineImage) {
89+
mailboxWindow.send('display-message-error-download');
90+
return {};
91+
}
8992
}
9093
if (!isInlineImage) mailboxWindow.showFileExplorer(filename);
9194
}

email_mailbox/src/components/FileWrapper.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
setCryptoInterfaces
1010
} from './../utils/FileManager';
1111
import File, { FileStatus } from './File';
12-
import { downloadFileInFileSystem } from '../utils/ipc';
12+
import { downloadFileInFileSystem, openFileExplorer } from '../utils/ipc';
1313

1414
class FileWrapper extends Component {
1515
constructor(props) {
@@ -75,12 +75,13 @@ class FileWrapper extends Component {
7575
status: FileStatus.DOWNLOADED
7676
},
7777
async () => {
78-
await downloadFileInFileSystem({
78+
const { filename } = await downloadFileInFileSystem({
7979
url,
8080
filename: this.props.file.name,
8181
downloadType: 'attachment',
8282
filesize: this.props.file.size
8383
});
84+
if (filename) openFileExplorer(filename);
8485
}
8586
);
8687
}

email_mailbox/src/containers/ActivityPanel.js

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,22 @@
11
import { connect } from 'react-redux';
22
import { loadFeedItems } from './../actions/index';
33
import ActivityPanelView from './../components/ActivityPanel';
4-
import * as TimeUtils from './../utils/TimeUtils';
5-
import { FeedItemType } from './../utils/const';
6-
import string from '../lang';
74

85
const orderFeedsByDate = feeds => {
96
return feeds.sortBy(feed => feed.get('date')).reverse();
107
};
118

12-
const setFeedTime = (feed, field) => {
13-
return feed.set(field, TimeUtils.defineTimeByToday(feed.get(field)));
14-
};
15-
169
const clasifyFeeds = feeds => {
1710
const newFeeds = feeds.filter(feed => !feed.get('seen'));
1811
const oldFeeds = feeds.filter(feed => feed.get('seen'));
1912
return { newFeeds, oldFeeds };
2013
};
2114

22-
const defineFeedAction = feed => {
23-
switch (feed.get('type')) {
24-
case FeedItemType.DOWNLOADED.value:
25-
return feed.set('action', string.activity.downloaded);
26-
default:
27-
return feed.set('action', string.activity.opened);
28-
}
29-
};
30-
31-
const setFeedTitle = (state, feed) => {
32-
const feedContact = state.get('contacts').get(`${feed.get('contactId')}`);
33-
if (!feedContact)
34-
return feed.set(
35-
'title',
36-
`${string.activity.someone} ${feed.get('action')}`
37-
);
38-
39-
const contactData = feedContact.toJS();
40-
const { name, email } = contactData;
41-
const title = `${name || email} ${feed.get('action')}`;
42-
return feed.set('title', title);
43-
};
44-
45-
const populateFeeds = (state, feeds) => {
46-
return feeds
47-
.map(feed => {
48-
const emailData = feed.get('emailData');
49-
if (emailData) {
50-
feed = feed.set('isMuted', emailData.get('isMuted'));
51-
feed = setFeedTime(feed, 'date');
52-
feed = defineFeedAction(feed);
53-
return setFeedTitle(state, feed);
54-
}
55-
return null;
56-
})
57-
.filter(item => item !== null);
58-
};
59-
6015
const mapStateToProps = state => {
6116
const feedItems = state.get('feeditems');
6217
const feeds = feedItems.get('list').toList();
6318
const orderedFeeds = orderFeedsByDate(feeds);
64-
const populated = populateFeeds(state, orderedFeeds);
65-
const { newFeeds, oldFeeds } = clasifyFeeds(populated);
19+
const { newFeeds, oldFeeds } = clasifyFeeds(orderedFeeds);
6620
const newFeedsPlain = newFeeds.toJS();
6721
const feedItemIds = newFeedsPlain.map(feedItem => feedItem.id);
6822
return {

email_mailbox/src/containers/Email.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,8 @@ const mapDispatchToProps = (dispatch, ownProps) => {
255255
filename,
256256
url
257257
};
258-
const filePath = await downloadFileInFileSystem(downloadParams);
259-
addFilePathToResponseObject(filePath, cid);
258+
const { filePath } = await downloadFileInFileSystem(downloadParams);
259+
if (filePath) addFilePathToResponseObject(filePath, cid);
260260
}
261261
};
262262
setFileSuccessHandler(handleSuccessDownloadInlineImage);

email_mailbox/src/containers/FeedItem.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,21 @@ import { connect } from 'react-redux';
22
import { removeFeedItem, updateFeedItem } from '../actions/index';
33
import FeedItemWrapperView from '../components/FeedItemWrapper';
44
import { loadContacts } from '../actions/contacts';
5+
import { myAccount } from './../utils/electronInterface';
6+
import { appDomain } from './../utils/const';
7+
import string from './../lang';
58

69
const mapStateToProps = (state, ownProps) => {
7-
const { id, title, emailData, seen, date } = ownProps.feed;
10+
const { id, action, contactId, emailData, seen, date } = ownProps.feed;
811
const { subject, threadId } = emailData;
12+
const contact = state.get('contacts').get(`${contactId}`);
13+
const name = contact ? contact.get('name') : '';
14+
const email = contact ? contact.get('email') : '';
15+
const myEmailAddress = myAccount.recipientId.includes('@')
16+
? myAccount.recipientId
17+
: `${myAccount.recipientId}@${appDomain}`;
18+
const contactName = email === myEmailAddress ? string.activity.someone : name;
19+
const title = contact ? `${contactName} ${action}` : '';
920
const subtitle = subject;
1021
return {
1122
id,

email_mailbox/src/utils/FeedItemUtils.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1+
import { FeedItemType } from './const';
12
import {
23
getAllFeedItems,
34
getEmailsByArrayParam,
45
getFeedItemsCounterBySeen
56
} from './ipc';
7+
import { defineTimeByToday } from './TimeUtils';
8+
import string from './../lang';
69

710
export const defineFeedItems = async () => {
811
const allFeeds = await getAllFeedItems();
912
const badge = await getFeedItemsCounterBySeen(0);
1013
const feeds = await Promise.all(
1114
allFeeds.map(async feed => {
1215
const [emailData] = await getEmailsByArrayParam({ ids: [feed.emailId] });
13-
return { ...feed, emailData };
16+
const action = defineFeedAction(feed.type);
17+
const date = defineTimeByToday(feed.date);
18+
return { ...feed, action, date, emailData };
1419
})
1520
);
1621
const feedItems = feeds.reduce(
@@ -23,3 +28,12 @@ export const defineFeedItems = async () => {
2328

2429
return { feedItems, badge: badge[0].count };
2530
};
31+
32+
const defineFeedAction = type => {
33+
switch (type) {
34+
case FeedItemType.DOWNLOADED.value:
35+
return string.activity.downloaded;
36+
default:
37+
return string.activity.opened;
38+
}
39+
};

email_mailbox/src/utils/electronEventInterface.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -631,12 +631,9 @@ const handleEmailTrackingUpdate = async ({ rowid, params }) => {
631631
const { domain, recipientId } = fromDomain;
632632
const isOpened = type === EmailStatus.READ;
633633
if (isOpened) {
634-
let contactId = undefined;
635-
if (domain === appDomain) {
636-
const contactEmail = `${recipientId}@${appDomain}`;
637-
const [contact] = await getContactByEmails([contactEmail]);
638-
contactId = contact.id;
639-
}
634+
const contactEmail = `${recipientId}@${domain}`;
635+
const [contact] = await getContactByEmails([contactEmail]);
636+
const contactId = contact.id;
640637
const feedItemParams = {
641638
date,
642639
type,

0 commit comments

Comments
 (0)