return fragment.innerHTML;
};
+const expiresInFromExpiresAt = expires_at => {
+ if (!expires_at) return 24 * 3600;
+ const delta = (new Date(expires_at).getTime() - Date.now()) / 1000;
+ return [300, 1800, 3600, 21600, 86400, 259200, 604800].find(expires_in => expires_in >= delta) || 24 * 3600;
+};
+
export default function compose(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
map.set('poll', ImmutableMap({
options: action.status.getIn(['poll', 'options']).map(x => x.get('title')),
multiple: action.status.getIn(['poll', 'multiple']),
- expires_in: 24 * 3600,
+ expires_in: expiresInFromExpiresAt(action.status.getIn(['poll', 'expires_at'])),
}));
}
});